Кто сможет решить данную задачу?
Организовать заполнение целочисленного двумерного квадратного массива D случайными числами, используя функцию Random. Переставить элементы главной и побочной диагоналей. Вывести на экран исходную и результирующую матрицы.
Всем заранее спасибо!
Вот так можно, но лучше проверь. Правда, я не понял что именно нужно переставлять: эл-ты в каждой диагонали или эл-ты диагоналей между собой. Здесь перестановка в каждой диагонали.
program mass;
const N = 6;
var
D:array [1..N, 1..N] of integer;
i, j:integer;
swap:integer; {Переменная для временного хранения эл-ов массива}
begin
randomize;
writeln;
{Заполнение массива и вывод его исходного вида}
for i:=1 to N do
begin
for j:=1 to N do
begin
D[i,j]:=random(100);
write(D[i,j]:3, ' ');
end;
writeln;
end;
{Пререстановка}
for i:=1 to N div 2 do
begin
swap:=D[i,i];
D[i,i]:=D[N-i+1, N-i+1];
D[N-i+1, N-i+1]:=swap;
end;
for i:=1 to N div 2 do
begin
swap:=D[i, N-i+1];
D[i, N-i+1]:=D[N-i+1, i];
D[N-i+1, i]:=swap;
end;
{Вывод результата}
writeln('---------------------');
for i:=1 to N do
begin
for j:=1 to N do
write(D[i,j]:3, ' ');
writeln;
end;
readln;
end.
program mass;
const N = 6;
var
D:array [1..N, 1..N] of integer;
i, j:integer;
swap:integer; {Переменная для временного хранения эл-ов массива}
begin
randomize;
writeln;
{Заполнение массива и вывод его исходного вида}
for i:=1 to N do
begin
for j:=1 to N do
begin
D[i,j]:=random(100);
write(D[i,j]:3, ' ');
end;
writeln;
end;
{Пререстановка}
for i:=1 to N div 2 do
begin
swap:=D[i,i];
D[i,i]:=D[N-i+1, N-i+1];
D[N-i+1, N-i+1]:=swap;
end;
for i:=1 to N div 2 do
begin
swap:=D[i, N-i+1];
D[i, N-i+1]:=D[N-i+1, i];
D[N-i+1, i]:=swap;
end;
{Вывод результата}
writeln('---------------------');
for i:=1 to N do
begin
for j:=1 to N do
write(D[i,j]:3, ' ');
writeln;
end;
readln;
end.
А чем тебе div не нравится? Если хочеш перед циклом считай это значение в отдельную переменную,но делать новый кривой драндулет,когда есть нормальный ...овчинка выделки не стоит.
{Пререстановка}
for i:=1 to N do begin
swap:= D[i,i];
D[i,i]:= D[i, N-i+1];
D[i, N-i+1]:= swap;
end;
{Пререстановка}
m:= N+1;
for i:=1 to N do begin
swap:= D[i,i];
D[i,i]:= D[i,m-i];
D[i,m-i]:= D[m-i,m-i];
D[m-i,m-i]:= D[m-i,i];
D[m-i,i]:= swap
end;