const - служит в С++ для создания констант.
Для того, чтобы пользователи не подсчитывали количество символов в строках, в Си, строки определили, как особый массив символов с добавлением символа \0 в самый конец. Это позволяет компилятору всегда самостоятельно понять, где заканчивается строка. Принято работать со строками через указатели.
10) программа Dc_9.c
Передача параметров функции
Смотрим на этой программе работу отладчика оболочки
Когда в Фортране функции передаются параметры, необходимо описать типы этих параметров в блоке описания переменных функции. В Си типы переменных необходимо сразу указать там, где описаны формальные параметры. Каждый параметр должен быть описан отдельно. Читать такое описание проще так, как сразу ясно, что функция получает.
В Фортране функция может изменять переменные в вызывающей компоненте из-за того, что передача фактических параметров осуществляется с помощью передачи адреса параметра. В Си явно указывают, что передается адрес:
&index - фактический параметр – адрес переменной index
int *in2 - формальный параметр - указатель, который может «работать» с адресом
Передача параметра эквивалентна: in2 = &index
Если такого явного описания нет, то передается только значение переменной.
Передача параметра эквивалентна обычному оператору присваивания: count = in1;
Выполните программу по шагам. Добавьте переменные в окно просмотра.
11) программа Dc_10.c
A[3][4] - так вводится матрица из 3-х строк по 4 столбца
char* A[3][4] - в каждый элемент матрицы мы записываем строку.
Отредактируйте этот файл так, чтобы в массиве хранились целые (байты) или просто целые:
- char * ---> char (или int)
- "00" ---> 00 и аналогично
(выделите редактируемый кусок и Replace – Selection " на "пусто" )
- поменяйте формат вывода
%3s ---> %3d
12) программа Dc_11.c
Массив: чтение и вывод
Как и на Фортране резервируем место в памяти под массив «побольше»
int A[40] ;
Открываем файл для чтения:
inf = fopen("input.txt", "rt"); - будем читать данные из файла input.txt
Обратите внимание, что для того чтобы все программные компонеты (т.е. все функции) могли бы работать с входным и выходным файлом, последние объявляются на ГЛОБАЛЬНОМ уровне.
На ГЛОБАЛЬНОМ уровне объвлена и функция print_Array(int N, int A[40]), так как она сразу не
определяется, но мы хотим, чтобы функция main() могла её использовать.
Массивы, с которыми мы работаем, организованы также, как и те массивы, с которыми мы работали на Фортане: в начале – размер массива, а затем его элементвы.
В начале читаем сколько элементов в массиве:
fscanf(inf, "%d", &N);
Затем, в цикле читаем все элементы массива:
for( i=0; i<N; i++)
fscanf(inf, "%d", &A[i]);
Как и на Фортране передаем функции размер массива и сам массив (имя массива).
Функция должна знать, как устроена ПАМЯТЬ отведенная под хранение массива. Поэтому мы, как и на фортране, задаем размер ПАМЯТИ под мкассив:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.