Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
285
Добавлен:
04.03.2014
Размер:
1.34 Кб
Скачать
Задача:
Задана матрица A (n, n) действительных чисел. "Перевернуть" в ней главную и побочную диагонали (переписать цифры в обратном порядке).

Алгоритм решения задачи:
Чтобы у матрицы были диагонали, она должна быть квадратной, т.е. n = m.

Элементы главной диагонали имеют индекс [i,i]. Побочной [i,n-i+1].

Для того, чтобы "перевернуть" диагонали, не надо перебирать всю матрицу. Достаточно перебрать половину

Программа на языке Паскаль:
const
n = 5;
var
arr: array[1..n,1..n] of real;
i,j: byte;
a: real;
begin
randomize;
for i:=1 to n do begin
for j:=1 to n do begin
arr[i,j] := random();
write(arr[i,j]:4:1);
end;
writeln;
end;
writeln;
for i:=1 to n div 2 do
for j:=1 to n div 2 do
if i = j then begin
a := arr[i,j];
arr[i,j] := arr[n-i+1,n-j+1];
arr[n-i+1,n-j+1] := a;
end;

for i:= (n div 2)+1 to n do
for j:=1 to n div 2 do
if j = n-i+1 then begin
a := arr[i,j];
arr[i,j] := arr[j,i];
arr[j,i] := a;
end;

for i:=1 to n do begin
for j:=1 to n do
write(arr[i,j]:4:1);
writeln;
end;

readln;
end.
Соседние файлы в папке Циклы в массивах и строках