• Магический, или волшебный, квадрат — это квадратная таблица NxN, заполненная N 2 числами таким образом, что сумма чисел в каждой строке, каждом столбце и на обеих диагоналях одинакова.
    Задан двумерный массив размерностью NxN. Определить, является ли он магическим квадратом.
    Составить блок схему, описание решения и программу на Паскаль

Ответы 5

  • А можно составить алгоритм выполнение программы, также описание выполнение программы и скриншоты работы программы.
    • Автор:

      stormy
    • 6 лет назад
    • 0
  • я решал так, где ошибка ?
    • Автор:

      rhysr6ig
    • 6 лет назад
    • 0
  • я решал так, где ошибка ? Магический, или волшебный, квадрат— это квадратная таблица NxN, заполненная N2 числами таким образом, что сумма чисел в каждой строке, каждом столбце и на обеих диагоналях одинакова. Задан двумерный массив размерностью NxN. Определить, является ли он магическим квадратом.Решение:Для определения, является ли заданный массив магическим квадратом можно взять за образец сумму чисел в первом столбце или строке и сравнивать все последующие суммы с ней: если она не равна су
    • Автор:

      kirby90
    • 6 лет назад
    • 0
  • Программа для решения поставленной задачи - в прилагаемом файле. Отмечу, что программа далеко не оптимальная. Например, совсем не обязательно искать все суммы. Если хотя бы одна не совпала с предыдущими, то вычисления можно закончить. В комментарии в начале программы дан пример магического квадрата для проверки.
    answer img
  • var  i,j,n:integer;  m: array[1..10,1..10] of integer;  flag:boolean;  sum: array[0..1] of longint; begin  readln(n);  flag:=true;  for i:=1 to n do   begin    for j:=1 to n do     read(m[i,j]);    readln;   end;     //Проверяем строки  i:=1;  for j:=1 to n do      sum[i mod 2]:=sum[i mod 2]+m[i,j];  while ((i<n) and flag) do    begin     i:=i+1;     for j:=1 to n do      sum[i mod 2]:=sum[i mod 2]+m[i,j];     if sum[0]<>sum[1] then flag:=false;     sum[(i+1) mod 2]:=0;    end;    //Проверяем столбцы  sum[0]:=0;  sum[1]:=0;  j:=1;  for i:=1 to n do      sum[j mod 2]:=sum[j mod 2]+m[i,j];  while ((j<n) and flag) do    begin     j:=j+1;     for i:=1 to n do      sum[j mod 2]:=sum[j mod 2]+m[i,j];     if sum[0]<>sum[1] then flag:=false;     sum[(j+1) mod 2]:=0;    end;  sum[0]:=0;  sum[1]:=0;  j:=1;  for i:=1 to n do   begin    sum[0]:=sum[0]+m[i,j];    sum[1]:=sum[1]+m[n-i+1,j];    j:=j+1;   end;  if  sum[0]<>sum[1] then flag:=false;  if flag then writeln('Магический'); end.
    answer img
    • Автор:

      elliethtl
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years