Программирование на Cи |
![]() Содержание:
|
Часто при разработке программ требуется ввод, хранение и обработка большого числа данных одинакового типа (однотипных данных). Для работы с большим количеством однотипных данных в языке Си предусмотрены массивы. Массив, это именованная переменная определённого типа, имеющая индекс. Индекс это адрес ячейки памяти, в которой хранится эта переменная. Число элементов массива задаётся при объявлении массива. В общем виде объявление массива записывается так: Тип_переменной имя_переменной [размер массива]; Например: int array_x [100]; /*Объявлен массив array_x целых чисел размером 100 элементов */ char ch[40]; /*Объявлен массив ch символьных переменных размером 40 элементов */ Индексация элементов массива начинается с нуля. Так объявленный массив array_x будет иметь индексы от 0 до 99. При объявлении массива, его можно сразу инициализировать, то есть задать определённые значения элементам массива, например: int xy[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; Здесь мы создали массив xy целых чисел из десяти элементов и сразу задали значения каждого элемента массива. При начальной инициализации массива, размер массива в квадратных скобках можно не указывать, например: int xy[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; char ch1[] = "Hello, World"; |
Доступ к элементам массива
|
Для доступа к элементу массива достаточно указать имя переменной массива и в квадратных скобках его индекс. Напишем такую программу: #include <stdio.h> void main() { int ar1[] = {1,2,3,4,5,6,7,8,9,10}; printf("Element 4 = %d", ar1[4]); } При выполнении этой программы, мы видим, что элементу массива ar1 с индексом 4 соответствует число 5. Это связано с тем, что индексация начинается с нуля: ![]() Если посмотреть элемент массива с индексом 10, который выходит за предел диапазона индексов, то его значение будет не определено, то есть будет ошибка выполнения программы. Это обстоятельство следует учитывать при разработке программ. ![]() Для инициализации элементов массива в процессе выполнения программы можно воспользоваться оператором ввода, помещённым в цикл: #include <stdio.h> void main() { int ar1[5]; /* Объявляем массив из 5-и элементов */ int n; clrscr(); /* Создаём цикл */ for (n=0; n<=4; n++) { printf("Vvedi Element%d ",n); /* Вводим значения элементов массива */ scanf("%d",&ar1[n]); } /* Проверяем начичие в памяти введённых значений массива */ for (n=0; n<=4; n++) printf("\nElement %d %d",n,ar1[n]); } ![]() |
Многомерные массивы
|
В языке Си можно использовать многомерные массивы, простейшим из них является двумерный массив - прямоугольная матрица. Для объявления многомерных массивов достаточно за именем переменной записать необходимое количество элементов, например: int ar1[3][2]; /* Объявлен двумерный массив с размерностью 3х2 элемента */ Двумерный массив легко представить в виде таблицы, в ячейках которой записаны определённые значения. Доступ к значениям таблицы осуществляется по индексам - пересечение столбика и строки таблицы. ![]() В таблице столбики помечены переменной x, с строки переменной y. Так, например, что бы получить доступ к числу 58 записанному в ячейке следует обратиться к массиву с такими индексами: ar1[2][1]; Для инициализации такого массива напишем программу, в которой будем вводить данные по номерам индексов, а затем выведем полученную матрицу на экран. Для этого нам потребуется два цикла, один для изменения значений индексной переменной x и второй для изменения индексной переменной y. По правилам программирования, происходит первая итерация наружного цикла, затем выполняются все итерации внутреннего цикла, затем происходит очередная итерация наружного цикла и так далее. #include <stdio.h> void main() { int ar1[3][2]; /* Объявляем двумерный массив целых чисел */ int x,y; /* Создаём две индексные переменные */ clrscr(); /* Создаём два цикла для ввода данных в матрицу*/ for (x=0; x<=2; x++) { for (y=0; y<=1; y++) { printf("Vvedi Element %d%d ",x,y); scanf("%d",&ar1[x][y]); } } /* Создаём два цикла для вывода матрицы на экран*/ for (y=0; y<=1; y++) { printf("\n"); for (x=0; x<=2; x++) printf("%d ",ar1[x][y]); } } Введём данные согласно предлагаемым номерам индексов и содержимого таблицы: ![]() Для создания многомерных массивов, достаточно объявить массив с нужным количеством измерений и элементов, например: double ar1[3][3][7]; Объявлен 3-х мерный массив с размерностью 3х3х7 |
©Гуков Константин Михайлович 2006 - 2013 Почта: [email protected] |