Pascal. Двумерные массивы

Тем, кто знакомым с математическими матрицами, будет не трудно освоить и двумерные массивы в Pascal. Матрица – это математический объект, представляющий собой прямоугольную таблицу. Таблица состоит из элементов, которые находятся на пересечении строк и столбцов, определяющих их, то есть i-ая строка и j-ый столбец задают адрес k-ому элементу матрицы (kij). Двумерные массивы абсолютно аналогичны математическим матрицам, поэтому их можно представить так:

Snap 2013-04-11 at 16.36.04

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

Mas[m, n], где Mas – имя массива, n – номер строки, а m – номер столбца.

Описать матрицу в программе можно несколькими способами:

1) В разделе описания переменных:

Var Mas: Array[1..n, 1..m] of <тип элементов>;

2) При помощи одномерного массива, элементами которого являются одномерные массивы.

Пример:

Const
n = 5; m = 10;
Type
Arr1 = Array[1..m] of <тип элементов >;
Arr2 = Array[1..n] of arr1;
Var Mas: arr2;

Переменная Mas – матрица, состоящая из пяти строк, в каждую из которых включено по десять элементов.

3) Предыдущий способ можно упростить так:

Const n = 5; m = 10;
Турe arr=Array[1..n] Of Аrrау[1..m] of <тип элементов>;
Var Mas: arr;

4) И снова сократив запись, получим:

Const n = 5; m = 10;
Type arr = Array[1..n,1..m] of <тип элементов>;
Var Mas: arr;

Для обработки содержимого матрицы, удобно пользоваться вложенными циклами:

For i:= 1 To n Do
For j:= 1 To m Do

В следующей программе массив сначала заполняется числами с клавиатуры, а затем выводиться на экран.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program input_and_output_array;
uses crt;
const n=3; m=3;
var i, j: integer;
mas: array[1..n, 1..m] of integer;
begin
{ввод массива}
for i:=1 to n do
for j:=1 to m do
begin
write(‘ Элемент ‘, i,‘ строки, ‘,j,‘ столбца = ‘);
readln(mas[i, j]);
end;
writeln(‘ Получившаяся матрица: ‘);
{вывод массива}
for i:=1 to n do
begin
for j:=1 to m do
begin
write(mas[i, j]:5);
end;
writeln
end;
end.

Стоит отметить, что для вывода двумерного массива в виде таблицы необходимо указать перевод строки после выхода из внутреннего цикла.

Количество элементов в массиве (его размерность) можно узнать, умножив количество строк на количество столбцов.

Рейтинг
( Пока оценок нет )
Загрузка ...