Рассмотрим работу с двумерными массивами (в алгебре они называются матрицами):
Дадим таблице имя - Tab
Каждое число в таблице имеет тип Integer. Это - тип злементов (M).
Индексы данной таблицы изменяются от 1 до 8 . У двумерных массивов два списка (B1,B2).
Таким образом, описание этого массива (в разделе Var) выглядит так : Tab:Array[1..3,1..4] of Integer;
Задав конкретные значения индексов, можно выбрать определенный элемент массива. Например оператор:
N:=A[1,3];
Присвоит переменной N значение элемента массива, имеющего индекс строки 1, индекс столбца 3, т.е. число 15.
Задача 4.
Задан массив из целых чисел, размерностьюN*M (N-строки, M-столбцы). Вывести на экран:
а) N-ю строку; б) M-й столбец; в) весь массив.
Решение:
Program Mass4;
Var Tab:Array[1..10,1..10] of Integer;
N,M,X,Y:Integer;
Begin
Writeln(’Введите количество строк массива (N<=10)’);
Readln(N);
Writeln(’Введите количество столбцов массива (M<=10)’);
Readln(M);
For X:=1 to N do
For Y:=1 to M do Readln(Tab[X,Y]);
Writeln(’Вывод ’,N,’ строки’);
For X:=1 to M do Write(’Tab[’,N,’,’,X,’]=’,Tab[N,X],’ ’:2);
Writeln;
Writeln(’Вывод ’,M,’ столбца’);
For X:=1 to N do Writeln(’Tab[’,X,’,’,M,’]=’,Tab[X,M]);
Writeln(’Вывод массива’);
For X:=1 to N do
Begin
For Y:=1 to M do Write(’Tab[’,X,’,’,Y,’]=’,Tab[X,Y],’ ’:2);
Writeln;
End;
Задача 5.
Задан массив из строк, размерностьюN*M (N-строки, M-столбцы). Отсортировать все элементы массива по возрастанию.
Решение:
Program Mass5;
Var A:Array[1..10,1..10] of String;
I,N,M,X,Y:Integer;
P:String;
F:boolean;
Begin
{Ввести двумерный массив}
F:=False;
While F=False do
Begin
F:=True;
For X:=1 to N do
For Y:=1 to M-1 do
Begin
If A[X,Y]>A[X,Y+1] Then
Begin
{Поменять местами 2 соседних элемента строки}
End;
If (X<N)and(Y=(M-1))and(A[X,Y+1]>A[X+1,1])Then
Begin
P:=A[X,Y+1];
A[X,Y+1]:=A[X+1,1];
A[X+1,1]:=P;
F:=False;
End;
End;
End;
{Вывести отсортированный массив}
End.