Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационные технологии.doc
Скачиваний:
59
Добавлен:
11.04.2015
Размер:
1.31 Mб
Скачать
        1. К п.3.М ассивы.

Массивы - это последовательная группа ячеек памяти, имеющих одинаковое имя, при этом обратится к элементу массива можно, указав в квадратных скобкахиндекс, который указывает на его относительную позицию. Число элементов массива назначается при его определении и в дальнейшем не изменяется. Массивы определяются так же, как и переменные:

int a[100];

char b[20];

float d[50];

В первой строке объявлен массив а из 100 элементов целого типа: а[0], а[1], ..., а[99] (индексация всегда начинается с нуля). Во второй строке элементы массива b имеют тип char, а в третьей - float.

Язык Си также позволяет инициализировать массив при его определении. Для этого используется следующая форма:

тип имя_массива[...] ... [...] = {список значений};

Примеры:

int a[5] = {0, 1, 2, 3, 4};

char ch[3] = {'d', 'e', '9'};

int b[2][3] = {1, 2, 3, 4, 5, 6};

В последнем случае представлен двумерный массив: b[0][0] = 1, b[0][1] = 2, b[0][2] = 3, b[1][0] = 4, b[1][1] = 5, b[1][2] = 6.

Двумерные массивы состоят из строк и столбцов, содержащих элементы одного типа, пример двумерного массива - матрица размерностью nxn. Объявление двумерного массива в программе имеет следующийформат:

тип_данных название_массива[размер_по_у][размер_по_х];

Примеры:

int A[10][10];/объявление целочисленного массива размерностью 10х10 элементов

float MyArray[5][5]; /матрица из действительных чисел, размерность матрицы 5х5

char An_Array_For_Char_Data[1000][1000]; /это двумерный массив (матрица) из

/ символов, размерность1000х1000.

Отдельный элемент матрицы – это по сути переменная того типа данных, который указан при объявлении массива.

Обратиться к элементу матрицы можно по его номеру, у элемента матрицы есть два номера – номер строки (i) и номер столбца (j).

Пример1:

A[0][0], A[5][5] – элементы матрицы с номерами (0;0) и (5;5) соответственно.

 Пример 2: Присвоить элементу матрицы А с номером (1;4) значение 5.

Решение:

...

A[1][4]=5;

...

Пример 3: Если элемент матрицы MyArray с номером (5;1) равен 8, вывести на экран сообщение “Элемент равен восьми”

Решение:

...

if(MyArray[5][1]==8)

{

printf(“\n Элемент равен восьми”);

}

...

Так же, как и для одномерных массивов, при вводе и выводе значений элементов массивов необходимо перебирать весь диапазон индексов. В случае двумерного массива – два диапазона индексов.

 Фрагмент кода, реализующий ввод значений элементов двумерного массива А(5х6):

...

int i,j;

Int a[5][6]; // Объявляем матрицу из 5 строк и 6 столбцов

for(i=0;i<5;i++) // i от 0 до 5, поскольку матрица содержит 5 строк

{

for(j=0;j<6;j++) // j до 6, поскольку в каждой строке 6 элементов

{

printf("Input please A[%d][%d]: ", i, j);

scanf("%d", &A[i][j]); // Ввод одного элемента матрицы...

}

}

...

 Фрагмент кода, реализующий вывод значений элементов массива А(5х6) на экран:

...

for(i=0;i<5;i++)

{

for(j=0;j<6;j++)

{

printf("%5d", A[i][j]);

}

printf("\n");

}

...

Пример: Подсчитать количество элементов матрицы, значение которых больше пяти.

Решение:

...

int A[3][2];

int i,j;

printf("Massive A 3x2: \n");

for(i=0;i<3;i++)

{

for(j=0;j<2;j++)

{

printf("Input A[%d][%d]: ", i, j);

scanf("%d", &A[i][j]);

}

}

int kolichestvo=0;

for(i=0;i<3;i++)

{

for(j=0;j<2;j++)

{

if(A[i][j]>5)

{

kolichestvo++;

}

}

}

printf("Bolshe 5 bilo %d elementov \n", kolichestvo);

...