Вводится с клавиатуры матрица 7×7.Надо определить,является ли матрица магическим квадратом(сумма строк и столбцов должны быть одинаковыми) — 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.

Leave a Comment

4 + = 7