Здесь мы указали, что константы IARRAY_MAX и FARRAY_MAX имеют значение 20 и 15 соответственно. Теперь при объявлении массивов. мы можем использовать их как размерность:
int iarray[IARRAY_MAX]; /*соответствуют int iarray[20] */
float farray[FARRAY_MAX];
char carray[FARRAY_MAX];
При объявлении массивов возможна также их инициализация, т.е. присваивание начальных значений их элементам. Инициализация позволяет не указывать явно количество элементов массива, а только перечислить их начальные значения:
double d[ ]={1.0, 2.0, 3.5, 8.2, 9.5};
Здесь задан массив из пяти элементов, имеющих тип double, где d[0]=1.0, d[1]=2.0, d[2]=3.5, d[3]=8.2, d[4]=9.5.
При объявлении переменной, в памяти машины происходит резервирование ячеек, а в специальную таблицу лексем программы заносится имя переменной и адрес связанных с ней ячеек памяти. Например, для переменной целого типа, объявленной как int iarr в памяти резервируется ячейка с именем iarr.
Если задается массив с тем же именем, например из семи элементов, с тем же именем int iarr[7], то происходит резервирование не одной, а семи ячеек с тем же именем.
Теперь, если мы хотим обратиться к седьмому элемента массива, то мы должны указать его имя и номер iarr[6], а если мы хотим присвоить седьмому элементу массива значение 25, мы также должны указать его имя и номер:
iarr[6]=25;
То есть наибольшее значение номера элемента массива на единицу меньше числа объявленного количества элементов, содержащихся в массиве.
Присваивать значения элементам массива можно также и при его инициализации, как было рассмотрено ранее или в процессе выполнения программы:
iarr[2]=3*iarr[6];
здесь третьему элементу массива присваивается значение седьмого элемента умноженного на три.
Доступ к элементам массива может осуществляться и таким способом:
tears[2*i+1]=tears[i]*smile[k+i];
smile[j]=sqrt(exp(a[m+3]));
Важно чтобы индексы элементов не выходили за пределы заданной длины массива
Под размерностью массива понимают число индексов, которое следует указать для получения доступа к отдельному элементу массива.
Массивы размерностью более единицы, называются многомерными.
Пример:
Присвоить значения 1, 3, 5, 7, 9 элементам третьей строки матрицы размерности 5*5.
Решение: . Так будут представлены элементы матрицы, в случае, если нумерация ее элементов начинается с 0,0. На языке Си это будет выглядеть следующим образом:
a[2][0]=1, a[2][1]=3, a[2][2]=5, a[2][3]=7, a[2][4]=9.
Инициализация этого массива может осуществляться следующим образом:
#define Rows 5
#define Columns 5
……………………….
int a[Rows][Columns]
Присвоить начальные значения элементам третьей строки массива можно с помощью непараметрического цикла:
for(col=0; col<=4;col++)
{a[2][col]=2*col+1;
printf(“\n a[2,%2d]=%@d”,col,a[2][col]);}
результатом действия этого оператора будет:
a[2][0]=1
a[2][1]=3
a[2][3]=5
a[2][4]=7
a[2][5]=9.
1. Что такое массивы и какими они обладают свойствами?
2. Найдите ошибки в следующем фрагменте программы:
# define z 12;
……………………
float mass[z];
…………………….
for (i=1;z=0;i<=0; i++)
{ mass[i]=z+1; …..
3. Как можно объявить массив? Приведите пример.
4. Инициализируйте двумерный массив размерности 3х3 с именем xmass.
5. Напишите как будут представлены следующие выражения на языке Си:
а) ;
б) ;
в) .
Как уже было сказано ранее (см. гл. 2 «Структура программы на языке Си») программа состоит из директив препроцессора и функций (см. рис. 2.1 а)). Пока мы использовали только одну из них – главную.
Что представляют собой другие функции – не главные, и зачем они нужны?
Эти не главные функции в некоторых языках программирования называются еще подпрограммами.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.