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

Вводится с клавиатуры матрица 7x7.Надо определить,является ли матрица магическим квадратом(сумма строк и столбцов должны быть одинаковыми)

code: #pascal
const n=7;
var x:array[1..n,1..n] of integer;
   i,j,s,snew:integer;
   bo:boolean;
Begin
 
  randomize;
 {*************************************}
  for i:=1 to n do
   begin
      for j:=1 to n do
       begin
          x[i,j] := random(10);
          write(x[i,j]);
          write(' ');
       end;
       writeln;
   end;
 {**************************************}
   bo:=true;
   s:=0;
   j:=1;
 {**************************************}
   for i:=1 to n do
    s:=s+x[i,j];
   writeln('s=',s);
 {**************************************}
  j:=1;
  while j<=n do
   begin
      snew:=0;
      for i:=1 to n do
       snew:=snew+x[i,j];
      if snew<>s then
       bo:=false;
      if bo=false then break;
      inc(j);
   end;
 {***************************************}
 i:=1;
 while i<=n do
  begin
     snew:=0;
     for j:=1 to n do
      snew:=snew+x[i,j];
     if snew<>s then
      bo:=false;
     if bo=false then break;
     inc(i);
  end;
 
 {***************************************}
 snew:=0;
 for i:=1 to n do
  snew:=snew+x[i,i];
 if snew<>s then
  bo:=false;
 {***************************************}
 snew:=0;
  j:=1;
for i:=n downto 1 do
 begin
    snew:=snew+x[i,j];
    inc(j);
 end;
 if snew<>s then
  bo:=false;
 {***************************************}
 writeln(bo);
 if bo=true then writeln('Magichesky')
  else writeln('Ne mahichsky');
 
readln;
 end.
end.  

автор: kommunist

Поделиться:

Похожие статьи: