Определить, является ли симметричными в квадратной матрице главная и побочная диагонали

prais

написать процедуру и функцию,которая определяет, является ли симметричными в квадратной матрице главная и побочная диагонали.В основной программе проверить работу подпрограмм.
1 ответ

prais

uses crt;
const nmax=10;
type mtr=array[1..nmax,1..nmax] of integer;
procedure Psimm(a:mtr;n:byte);
var i,k:byte;
begin
k:=0;
i:=1;
while(i<=n)and(k=0)do
if a[i,i]<>a[n-i+1,n-i+1] then k:=1
else inc(i);
if k=0 then writeln('Диагонали симметричны')
else writeln('Диагонали не симметричны');
end;
function Fsimm(a:mtr;n:byte):boolean;
var i:byte;
    k:boolean;
begin
k:=true;
i:=1;
while(i<=n)and k do
if a[i,i]<>a[n-i+1,n-i+1] then k:=false
else inc(i);
Fsimm:=k;
end;
var a:mtr;
    n,i,j:byte;
begin
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите элементы матрицы целые числа');
for i:=1 to n do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  readln(a[i,j]);
 end;
clrscr;
writeln('Полученная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:5);
  writeln;
 end;
Psimm(a,n);
if Fsimm(a,n) then writeln('Диагонали симметричны')
else writeln('Диагонали не симметричны');
end.