
- •Описание двумерного массива Рассмотрим описание массива на конкретном примере
- •Заполнение двумерного массива.
- •Поиск максимального (минимального) элементов каждой строки (столбца) и их индексов.
- •Квадратные матрицы
- •Основные алгоритмы для работы с квадратными матрицами
- •Найти минимальный элемент побочной диагонали.
ДВУМЕРНЫЕ МАССИВЫ
Двумерные массивы условно можно изобразить в виде таблицы ( матрицы) . С информацией, представленной в виде таблицы, мы очень часто встречаемся в различных областях знаний – экономике, статистике, математике, физике, химии и т.д.
Каждый элемент таблицы имеет два индекса, значения которых позволяют указать местоположение элемента (его координаты). В математике квадратные и прямоугольные таблицы называют матрицами. Первый индекс – это номер строки, который изменяется только с переходом на следующую строку; второй индекс – номер столбца. По таблицу, имеющую m строк и n столбцов, говорят, что она имеет размер m*n.
А[1,1] |
А[1,2] |
А[1,3] |
А[1,4] |
А[1,5] |
А[1,6] |
А[2,1] |
А[2,2] |
А[2,3] |
А[2,4] |
А[2,5] |
А[2,6] |
А[3,1] |
А[3,2] |
А[3,3] |
А[3,4] |
А[3,5] |
А[3,6] |
При решении задач с использованием двумерных массивов во всех случаях (кроме некоторых частных) организуются вложенные циклы.
Перемещение по строке: FOR i:=1 to m DO внешний цикл, изменяется номер строки … FOR j:=1 to n DO внутренний цикл, изменяется номер столбца … |
Перемещение по столбцу: FOR j:=1 to n DO внешний цикл, изменяется номер столбца … FOR i:=1 to m DO внутренний цикл, изменяется номер строки … |
Описание двумерного массива Рассмотрим описание массива на конкретном примере
Переменная А является двумерным массивом, имеющим 3 строки и 4 столбца
-
1
3
-6
7
8
-5
3
12
2
-7
8
10
В разделе переменных на языке Паскаль массив описывается следующим образом:
Var
A: array [1..3,1..4] of integer;
{все элементы массива в данном случае являются целыми числами}
ОСНОВНЫЕ АЛГОРИТМЫ ДЛЯ РАБОТЫ С ДВУМЕРНЫМИ МАССИВАМИ
Заполнение двумерного массива.
Массив А содержит 3 строки и 4 столбца, т.е. 3*4=12 элементов.
Заполнение по строке: FOR i:=1 to 3 DO внешний цикл, изменяется номер строки FOR j:=1 to 4 DO внутренний цикл, изменяется номер столбца Read (A[i,j]); заполнение с клавиатуры |
Заполнение по столбцу: FOR j:=1 to 4 DO внешний цикл, изменяется номер столбца FOR i:=1 to 3 DO внутренний цикл, изменяется номер строки Read (A[i,j]); заполнение с клавиатуры |
Печать в виде таблицы.
FOR i:=1 to 3 DO
begin
FOR j:=1 to 4 DO
WRITE(A[i,j],’ ‘); печатаем элементы строки,
не перемещая курсор
WRITELN; перемещаем курсор
End;
Сумма элементов массива.
…
S:=0;
FOR i:=1 to 3 DO
FOR j:=1 to 4 DO
S:=S+A[i,j];
…
Вычисление суммы элементов каждой строки и каждого столбца.
Мы используем базовый алгоритм вычисления суммы элементов одномерного массива (у нас это будут строки) и повторим его столько раз, сколько имеется строк.
FOR i:=1 to 3 DO
begin
S:=0;
FOR j:=1 to 4 DO
S:=S+A[i,j];
WRITELN(‘сумма ‘,i,’ – строки=‘, S);
End;
Для того, чтобы перемещаться по строке мы меняем индекс j.
Сумма каждого столбца находится аналогично.
Максимальный (минимальный) элемент массива.
Построим алгоритм поиска максимального элемента таким образом: введем три дополнительные переменные с именами max и Imax_m, Imax_n. Присвоим им начальные значения – переменной max значение первого элемента массива A[1,1], Imax_m - номер первой строки, Imax_n - номер первого столбца. Затем сравниваем каждый элемент с переменной max, если его значение оказывается больше, то присваиваем его переменной max, переменной Imax_m присваиваем индекс строки этого элемента и переменной Imax_n присваиваем индекс столбца этого элемента.
Max:=[1,1];
Imax_m:=1;
Imax_n:=1;
FOR i:=1 to 3 DO
FOR j:=1 to 4 DO
If A[i,j]>Max then begin Max:=A[i,j]; Imax_m:=i;
Imax_n:=j; end;
WRITELN(‘Max =‘, Max,’ строка=’,Imax_m,’ столбец=’,Imax_n);