Двумерный
массив – структура данных, хранящая
прямоугольную матрицу. В матрице каждый
элемент определяется номером строки и
номером столбца, на пересечении которых он
расположен. В Паскале двумерный массив
представляется массивом, элементами
которого являются одномерные массивы. Два
следующих описания двумерных массивов
тождественны:
Var
a: array [1..10] of array [1.. 20] of real;
Var
a: array [1..10, 1..20] of real;
Чаще
всего при описании двумерного массива
используют второй способ. Доступ
к каждому отдельному элементу
осуществляется обращением к имени массива
с указанием индексов (первый индекс – номер
строки, второй индекс – номер столбца). Все
действия над элементами двумерного массива
идентичны действиям
над элементами линейного массива.
Только для инициализации двумерного
массива используется вложенный цикл for.
Например,
For i:= 1 to 10 do
For j:= 1 to 20 do
A[i, j] := 0;
При
организации вложенных (сложных) циклов
необходимо учитывать:
·
Все правила, присущие простому
циклу, должны соблюдаться
·
Имена параметров для циклов,
вложенных один в другой, должны быть
различными
·
Внутренний цикл должен полностью
входить в тело внешнего цикла. Пересечение
циклов недопустимо
Пример
1.
Сформировать таблицу Пифагора (таблица
умножения) и вывести ее на экран.
Program
Pifagor;
Uses
crt;
Var
p: array[1..9, 1..9] of integer; i, j:integer;
Begin
Clrscr;
for
i:=1 to 9 do
for
j:= 1 to 9 do
p[i,j]:=
i*j;
for
i:=1 to 9 do
begin
for
j:=1 to 9 do
write(p[i,j],
‘ ‘);
writeln
end;
end.
Пример
2.
Задан двумерный массив
В(10, 10), заполненный случайными числами
из
[-10,10].
Найти и вывести на экран те элементы
массива, которые больше заданного числа k.
Program
massiv;
Uses
crt;
Var
b: array[1..10, 1..10] of integer; i, j, k :integer;
Begin
Clrscr;
for
i:=1 to 10 do
begin
for
j:= 1 to 10 do
begin
b
[i,j]:= random(20)-10;
write(b[i,j],
‘ ‘);
end;
writeln;
end;
write(‘Введите
число k’);
readln
(k);
For
i:=1 to 10 do
For
j:=1 to 10 do
If
b[i, j] >k then write (b[i, j]);
End.
<<<Предыдущий урок | К содержанию | Следующий урок>>>