Даны две матрицы А(3,5),В(7,7).присвоить переменной В1 значение 1 если элементы матрицы А симметричны относительно главной диагонали и значение 0 в противном случае.значение переменной В2 определить аналогично для матрицы В — Pascal(Паскаль)

uses crt;
type  matr=array[1..7,1..7] of integer;
procedure Vvod(var mt:matr;x:byte;c:char);{создание матриц, матрица, ее размер и имя}
var i,j:byte;
begin
writeln('Введите ',x*x,' елементов матрицы ',c);
for i:=1 to x do
for j:=1 to x do
 begin
  write('el[',i,',',j,']=');{поскольку симметричную матрицу рандомно не ввести, придется ручками}
  readln(mt[i,j]);
 end;
clrscr;
end;
procedure Vyvod(var mt:matr;x:byte;c:char);{выврд матриц на экран}
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to x do
 begin
  for j:=1 to x do
  write(mt[i,j]:5);
  writeln;
 end;
end;
procedure Simm(mt:matr;x:byte;var k:byte);{проверка симметричности, выходной параметр к 1 или 0}
var i,j:byte;
begin
k:=1;
i:=2;{начнем со второй строки, в первой 1 элемент на диагонали, проверять не нужно}
while (k=1) and(i<=x) do{пока симметрично и не кончились строки}
 begin
  j:=1;{с первого элемента в строке}
  while (k=1) and(j<=i-1) do{пока симметрично и не дошли до главной диагонали}
  if mt[i,j]<>mt[j,i] then k:=0{проверяем, если елементы не совпадают над диагональю и под ней,
 то не симметричная к=0}
  else j:=j+1;{иначе идем дальше}
  i:=i+1;
 end;
end;
 
var a,b:matr;
    b1,b2:byte;
begin
clrscr;
Vvod(a,5,'A');{создаем матрицу с фактическими параметрами}
Vyvod(a,5,'A');{выводим ее}
Simm(a,5,b1);{проверяем на симметричность, выводим 0 или 1}
writeln('B1=',b1);
Vvod(b,7,'B');
Vyvod(b,7,'B');
Simm(b,7,b2);
writeln('B2=',b2);
readln
end.

Leave a Comment

7 + 3 =