Паскаль
Дана матрица (двумерный массив) размером 20 × 20. Каждый элемент может принимать
целочисленные значения от 0 до 200. Опишите на русском языке или на одном из языков
программирования алгоритм, который позволяет определить, является ли данная матрица
симметричной относительно своей главной диагонали. Исходные данные объявлены так, как
показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не
использовать часть из них.
Паскаль Бейсик
const N=20;
var
a: array [0..N-1,0..N-1]
of integer;
i, j: integer;
begin
for i := 0 to N-1 do
for j := 0 to N-1 do
readln(a[i,j]);
...
end.
Ответы
Ответ дал:
0
const N=20;
var
a: array [0..N-1,0..N-1] of integer;
i, j: integer;
begin
for i := 0 to N-1 do
for j := 0 to N-1 do read(a[i,j]);
for i := 0 to N-1 do
begin
for j := 0 to N-1 do write(a[i,j],' ');
writeln;
end;
i:=0; j:=0;
while (i<n-1)and(a[i,j]=a[j,i]) do
begin
i:=i+1;
j:=0;
while (j<i)and(a[i,j]=a[j,i]) do j:=j+1;
end;
if a[i,j]=a[j,i] then writeln('Yes')
else writeln('No');
end.
Пример (для N=5):
1 2 3 4 5
2 8 7 9 0
3 7 4 3 1
4 9 3 2 6
5 0 1 6 8
Yes
var
a: array [0..N-1,0..N-1] of integer;
i, j: integer;
begin
for i := 0 to N-1 do
for j := 0 to N-1 do read(a[i,j]);
for i := 0 to N-1 do
begin
for j := 0 to N-1 do write(a[i,j],' ');
writeln;
end;
i:=0; j:=0;
while (i<n-1)and(a[i,j]=a[j,i]) do
begin
i:=i+1;
j:=0;
while (j<i)and(a[i,j]=a[j,i]) do j:=j+1;
end;
if a[i,j]=a[j,i] then writeln('Yes')
else writeln('No');
end.
Пример (для N=5):
1 2 3 4 5
2 8 7 9 0
3 7 4 3 1
4 9 3 2 6
5 0 1 6 8
Yes
Ответ дал:
0
Можно было проще
Ответ дал:
0
for i := 0 to N - 1 do
for j := i to N - 1 do
if a[i, j] <> a[j, i] then begin
writeln(false);
Halt;
end;
writeln(true);
for j := i to N - 1 do
if a[i, j] <> a[j, i] then begin
writeln(false);
Halt;
end;
writeln(true);
Вас заинтересует
2 года назад
2 года назад
6 лет назад
6 лет назад
9 лет назад