Задать вопрос
18 сентября, 02:46

Дана квадратная матрица n порядка. определить является ли она магическим квадратом

+4
Ответы (1)
  1. 18 сентября, 05:09
    0
    В магическом квадрате сумма по каждой строке, по каждому столбцу и по обоим диагоналям равна одному и тому же числу, называемому константой магического квадрата. Программе достаточно найти одну любую сумму, принять её в качестве упомянутой константы, а затем обнаружить хотя бы один случай неравенства очередной вычисленной суммы с принятой константой. Если нарушений обнаружено не будет, квадрат является магическим.

    const

    n2 = 10;

    var

    a: array[1 ... n2, 1 ... n2] of integer;

    i, j, n: integer;

    k, s: longint;

    magic: boolean;

    begin

    Write ('Введите число строк (cтолбцов) в магическом квадрате: ') ;

    Readln (n) ;

    for i : = 1 to n do

    begin

    Write ('Введите через пробел элементы строки ', i, ': ') ;

    for j : = 1 to n do Read (a[i, j])

    end;

    s : = 0;

    for j : = 1 to n do s : = s + a[1, j];

    k : = s; i : = 2; magic : = true;

    while magic and (i < = n) do

    begin

    s : = 0;

    for j : = 1 to n do s : = s + a[i, j];

    magic : = (s = k) ;

    i : = i + 1

    end;

    j : = 1;

    while magic and (j < = n) do

    begin

    s : = 0;

    for i : = 1 to n do s : = s + a[i, j];

    magic : = (s = k) ;

    j : = j + 1

    end;

    if magic then begin

    s : = 0;

    for i : = 1 to n do s : = s + a[i, i];

    magic : = (s = k) ;

    end;

    if magic then begin

    s : = 0;

    for i : = 1 to n do s : = s + a[i, n - i + 1];

    magic : = (s = k) ;

    end;

    if magic then Writeln ('Квадрат является магическим, k=', k)

    else Writeln ('Квадрат не является магическим')

    end.

    Тестовое решение:

    Введите число строк (cтолбцов) в магическом квадрате: 5

    Введите через пробел элементы строки 1: 11 24 7 20 3

    Введите через пробел элементы строки 2: 4 12 25 8 16

    Введите через пробел элементы строки 3: 17 5 13 21 9

    Введите через пробел элементы строки 4: 10 18 1 14 22

    Введите через пробел элементы строки 5: 23 6 19 2 15

    Квадрат является магическим, k=65

    Введите число строк (cтолбцов) в магическом квадрате: 4

    Введите через пробел элементы строки 1: 1 1 1 1

    Введите через пробел элементы строки 2: 1 1 1 1

    Введите через пробел элементы строки 3: 1 1 1 1

    Введите через пробел элементы строки 4: 1 1 2 - 1

    Квадрат не является магическим
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Дана квадратная матрица n порядка. определить является ли она магическим квадратом ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы