Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры ОАиП(теория).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
151.01 Кб
Скачать

3. Обработка двумерных массивов.

Из нескольких одномерных массивов одной длины можно "соорудить" двухмерный массив:

В двухмерных массивах каждая ячейка имеет два индекса: строка и столбец. Элементы данного двухмерного массива А записываются так:

А(1,1), А(1,2), А(1,3), А(1,4), А(2,1),..., А(2,4), А(3,1),..., А(3,4)

Действия над элементами двухмерного массива осуществляются аналогично действиям над элементами одномерного массива:

А(1,2) + А(2,3) = 7 + 0 = 7

При работе с двухмерными массивами (так же как и при работе с одномерными массивами) возникает необходимость в отведении места памяти компьютера под массив (говорят о резервировании памяти под массив). Для этого также используется описание примерно следующего вида:

const

m = 10; {число строк}

n = 15; {число столбцов}

var

A : array[1..m,1..n] of Integer;

При решении задач удобно изображать массив в виде соответствующей алгебраической матрицы A(N,M) где N - это колличество строк, M - это колличество столбцов

Ввод массива

Ввод элементов двумерного массива осуществляется поэлементно, как и в случае одномерного массива. Зададим с помощью двух циклов перебор всех элементов массива (один цикл (по переменной I) будет осуществлять перебор строк, другой (по переменной J) перебор элементов в строке:

for I:=1 to N do

for J:=1 to M do

ввод элемента A(I,J)

Как видно цикл по J находится внутри цикла по I (они так и называются внутренний и внешний), поэтому на один шаг "сработает" цикл по I, затем полностью цикл по J, снова на один шаг цикл I и опять полностью цикл по J и т.д. Таким образом выбирается строка 1 и начинается перемещение вдоль этой строки (по столбцам). Далее выбирается строка 2 и начинается ввод всех ее элементов и т.д., т.е. обработка элементов массива осуществляется по строкам. Если же циклы поменять местами, т.е. цикл по J сделать внешним, а цикл по I - внутренним обработка массива будет происходить по столбцам.

Вывод массива

Вывод элементов двумерного массива осуществляется поэлементно, как и в случае ввода. Зададим с помощью двух циклов перебор всех элементов массива (один цикл (по переменной I) будет осуществлять перебор строк, другой (по переменной J) перебор элементов в строке:

for I:=1 to N do

begin

for J:=1 to M do

вывод элемента A(I,J)

writeln;

end;

Как видно цикл по J находится внутри цикла по I (они так и называются внутренний и внешний), поэтому на один шаг "сработает" цикл по I, затем полностью цикл по J, снова на один шаг цикл I и опять полностью цикл по J и т.д. Таким образом выбирается строка 1 и начина- ется перемещение вдоль этой строки (по столбцам). Далее выбирается строка 2 и начинается вывод всех ее элементов и т.д., т.е. обработка элементов массива осуществляется по строкам. Если же циклы поменять местами, т.е. цикл по J сделать внешним, а цикл по I - внутренним обработка массива будет происходить по столбцам.