"Зеркальный разворот" столбца матрицы, в которой находится наибольший элемент побочной диагонали - Pascal
Формулировка задачи:
Дана вещественная квадратная матрица А порядка 8. Произвести "Зеркальный разворот" столбца матрицы, в которой находится наибольший элемент среди элементов побочной диагонали.
Решение задачи: «"Зеркальный разворот" столбца матрицы, в которой находится наибольший элемент побочной диагонали»
textual
Листинг программы
const n=8;
var a:array[1..n,1..n] of real;
i,j,jmx:byte;
max,x:real;
begin
randomize;
writeln('Исходная матрица');
jmx:=n;
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=10*random;
write(a[i,j]:6:2);
end;
writeln;
end;
max:=a[1,n];
jmx:=n;
for i:=1 to n do
if a[i,n-i+1]>max then
begin
max:=a[i,n-i+1];
jmx:=n-i+1;
end;
writeln('Максимальный элемент побочной диагонали=',a[n-jmx+1,jmx]:0:2,' в столбце ',jmx);
for i:=1 to n div 2 do
begin
x:=a[i,jmx];
a[i,jmx]:=a[n-i+1,jmx];
a[n-i+1,jmx]:=x;
end;
writeln('Перестановка столбца ',jmx);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:6:2);
writeln;
end;
end.
Объяснение кода листинга программы
- Создается константа n, которая определяет размерность матрицы.
- Создается переменная a, которая представляет собой матрицу размером n на n.
- Создаются три байтовых переменных i, j и jmx.
- Выводится исходная матрица.
- Переменная jmx устанавливается равной n.
- Для каждого i от 1 до n выполняется цикл.
- Внутри цикла выполняется цикл для каждого j от 1 до n.
- В каждой итерации вычисляется значение a[i,j] и выводится его.
- После завершения внутреннего цикла выводится символ новой строки.
- Вычисляется максимальное значение в текущем столбце.
- Если текущее значение a[i,n-i+1] больше максимального, то обновляется максимальное значение и переменная jmx.
- Выводится значение максимального элемента побочной диагонали.
- Для каждого i от 1 до n/2 выполняется цикл.
- В каждой итерации обновляется значение x.
- Обновляется значение a[i,jmx] и a[n-i+1,jmx] на основе значения x.
- Выводится переставленная часть столбца jmx.
- Для каждого i от 1 до n выполется цикл.
- В каждой итерации выводятся значения a[i,j] с пробелами и символом новой строки.