Написать программу, использующую подпрограмму, которая проверяет, является ли введенная матрица магическим квадратом. Магическим квадратом называется матрица, сумма элементов которой в каждой строке, в каждом столбце и по каждой диагонали одинакова — Pascal(Паскаль)

program magic_mt;
var a: array [1..100] of array [1..100] of integer;
n, i, j, sum, lsum: 1..100;
is_magic: boolean;
begin
// Ввод матрицы
sum := 0; lsum := 0;
is_magic := true;
// Строки
for i := 1 to n do begin
  sum := 0;
  if sum <> lsum then is_magic := false;
  for j := 1 to n do 
    sum := sum + a[i, j];
  lsum := sum;
end;
if sum <> lsum then is_magic := false;
 
// Колонки
for i := 1 to n do begin
  sum := 0;
  if sum <> lsum then is_magic := false;
  for j := 1 to n do 
    sum := sum + a[j, i];
  lsum := sum;
end;
if sum <> lsum then is_magic := false;
 
sum := 0;
for i := 1 to n do
  sum := sum + a[i, i];
if sum <> lsum then is_magic := false;
 
sum := 0;
for i := 1 to n do
  sum := sum + a[n - i, i];
if sum <> lsum then is_magic := false;
 
if is_magic then writeln('magic') else writeln('not magic');
readln;
 
end.

Leave a Comment

− 6 = 1