Переставить строки матрицы симметрично горизонтальной оси - Turbo Pascal
Формулировка задачи:
Здравствуйте, ув. пользователи!
Прошу у вас помощи с:
Задано двумерный массив A размером NxM. Целые числа и элементы массива задать самостоятельно. Переставить строки матрицы A симметрично горизонтальной оси.
Буду премного признателен!
Спасибо за внимание 0/
Решение задачи: «Переставить строки матрицы симметрично горизонтальной оси»
textual
Листинг программы
uses Crt;
type Tmass=array[1..10,1..10] of integer;
var a:Tmass;
i,j,n,m,k,t:integer;
begin
ClrScr;
repeat
Write('0 < N < 11 = ');
Readln(n);
Write('0 < M < 11 = ');
Readln(m);
Writeln;
until (n>0) and (n<11) and (m>0) and (m<11);
Writeln('Matrix A:');
Writeln;
Randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=Random(51);
Write(a[i,j]:4);
end;
Writeln;
end;
Writeln;
Writeln;
i:=1; k:=n;
repeat
for j:=1 to m do
begin
t:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=t;
end;
Inc(i);
Dec(k);
until i>k;
Writeln('Matrix A:');
Writeln;
for i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:4);
Writeln;
end;
ReadKey;
end.
Объяснение кода листинга программы
- Создается тип данных Tmass, который представляет собой массив целых чисел размером 10x10.
- Создается переменная a типа Tmass.
- Создаются переменные i, j, n, m, k, t, которые представляют собой индексы массива и счетчики для цикла.
- Выполняется итерация цикла до тех пор, пока условия (n>0) и (n<11) и (m>0) и (m<11) выполняются.
- Выводится сообщение
Matrix A:и пробел. - Инициализируется генератор случайных чисел.
- Для каждого i от 1 до n выполняется цикл.
- Внутри цикла для каждого j от 1 до m выполняется вложенный цикл.
- В каждой итерации вложенного цикла переменной t присваивается значение элемента массива a[i,j], а значениям a[i,j] и a[k,j] присваиваются значения переменной t.
- Индексы i и k изменяются с помощью операций Inc и Dec соответственно.
- После завершения вложенного цикла выводится сообщение
Matrix A:. - Цикл завершается, когда i становится больше k.
- Выводится последняя строка матрицы.