Определить является ли матрица магическим квадратом - Turbo Pascal
Формулировка задачи:
Помогите пожалуйста составить программу.
Дана целая квадратная матрица n-го порядка. Определить является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.
Решение задачи: «Определить является ли матрица магическим квадратом»
textual
Листинг программы
const MAX=5; var a:array[1..MAX,1..MAX] of integer; n:integer; ok:boolean; i,j:integer; sum:integer; temp:integer; begin Write('Введите рамер матрицы (3..4)'); Readln(n); Writeln('Введите строки матрицы!'); Writeln('После ввода ',n,' целых чисел нажимайте Enter!'); for i:=1 to n do begin Write('->'); for j:=1 to n-1 do read(a[i,j]); readln(a[i,n]); end; Ok:=True; sum:=0; for i:=1 to n do sum:=sum+a[i,i]; {Вычисляем сумму по строкам} i:=1; repeat temp:=0; for j:=1 to n do temp:=temp+a[i,j]; i:=i+1; if temp <> sum then ok:=False; until (not ok) or (i>n); if ok then begin j:=1; repeat temp:=0; for i:=1 to n do temp:=temp+a[i,j]; j:=j+1; if temp <> sum then ok:=False; until (not ok) or (j>n); if ok then begin temp:=0; j:=n; for i:=1 to n do begin temp:=temp+a[i,j]; j:=j-1; end; if temp<> sum then ok:=False; end; end; Write('Введенная матрица'); if not ok then write('не'); Writeln('является магическим квадратом!'); readln; end.
Объяснение кода листинга программы
- Объявляются переменные: MAX, a, n, ok, i, j, sum, temp.
- Вводится размер матрицы (n).
- Читаются строки матрицы.
- Вычисляется сумма элементов главной диагонали.
- Вычисляется сумма элементов побочной диагонали.
- Проверяется условие для каждой диагонали.
- Если условие выполняется, выводится сообщение о том, что матрица является магическим квадратом.
- Если условие не выполняется, выводится сообщение о том, что матрица не является магическим квадратом.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д