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

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

+2
Ответы (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 порядка. определить является ли она магическим квадратом ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Дана целая квадратная матрица, n - го порядка. Определить, является ли она магическим квадратом, т. е. такой, в которой сумма элементов во всех строках и столбцах одинаковая. Нужна адекватная программа уровня 11 класса на паскале.
Ответы (1)
Дана квадратная матрица 9-ого порядка. Получить квадратную матрицу того же порядка, в которой элемент равен единице, если соответствующий ему элемент исходной матрицы меньше элемента, расположенного в его строке на главной диагонали, и равен нулю в
Ответы (1)
23. Дана действительная квадратная матрица порядка n. Выяснить, верно ли, что наибольшее из значений элементов главной диагонали больше, чем наименьшее из значений элементов побочной диагонали.
Ответы (1)
Написать программу для решения следующей задачи: дана квадратная матрица порядка N. Заменить единицами все элементы, стоящие на главной диагонали и выше ее.
Ответы (1)
Написать программу для паскаля. Дана квадратная матрица порядка n (n=5). Если в данной матрице a нет отрицательных элементов, то транспонировать её, иначе выдать сообщение.
Ответы (1)