Есть ответ 👍

Магический, или волшебный, квадрат — это квадратная таблица nxn, заполненная n 2 числами таким образом, что сумма чисел в каждой строке, каждом столбце и на обеих диагоналях одинакова. задан двумерный массив размерностью nxn. определить, является ли он магическим квадратом. составить блок схему, описание решения и программу на паскаль

140
413
Посмотреть ответы 3

Ответы на вопрос:

ehadid
4,5(87 оценок)

Программа для решения поставленной - в прилагаемом файле. отмечу, что программа далеко не оптимальная. например, совсем не обязательно искать все суммы. если хотя бы одна не совпала с предыдущими, то вычисления можно закончить. в комментарии в начале программы дан пример магического квадрата для проверки.

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.

Var  a: array[1..10] of integer;   i,j,k: integer; begin  for i: = 1 to 10 do  begin      a[i]: =random(81)-40;     write(a[i],' ');   end;   writeln;   for i: = 1 to 10 do    for j: = 1 to 9 do      if a[j]> a[j+1] then      begin        k: =a[j];         a[j]: =a[j+1];         a[j+1]: =k;       end;   for i: = 10 downto 1 do  write(a[i],' '); end.  

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS