Проверка матрицы на «магический квадрат» — Pascal(Паскаль)

Program Pr34 (Input, Output); 
Var 
X : Array [1..20, 1..20] Of Integer; 
N : Integer; 
i, j: Integer; 
S, T : Integer; 
Flag: Boolean;
 
Begin
 
WriteLn ('PASCAL: Проверка матрицы на "магический квадрат".'); 
Write ('Введите размерность квадратной матрицы: '); 
ReadLn (N); 
 
WriteLn ('Введите поочередно элементы таблицы:'); 
For i := 1 To N Do
For j := 1 To N Do
Begin
Write ('X[', i, ',', j, '] = ');
ReadLn (X [i, j] );
End;
 
WriteLn;
For i := 1 To N Do
Begin
For j := 1 To N Do
Write (X [i, j] : 5);
WriteLn;
End;
 
S := 0;
For i := 1 To N Do
S := S + X [1, i]; 
 
Flag := True;
 
For i := 1 To N Do
Begin
T := 0; 
For j := 1 To N Do
T := T + X [i, j]; 
If T <> S Then Flag := False; 
End;
 
For j := 1 To N Do
Begin
T := 0; 
For i := 1 To N Do
T := T + X [i, j]; 
If T <> S Then Flag := False; 
End;
 
T := 0; 
For i := 1 To N Do T := T + X [i, i];
If T <> SThenFlag := False; 
T := 0; 
For i := 1 To N Do T := T + X [i, N - i + 1]; 
If T <> SThenFlag := False; 
 
If (Flag = True)
Then Writeln('Матрица является "магическим квадратом".')
Else Writeln('Матрица не является "магическим квадратом".'); 
 
ReadLn;
End. 

Leave a Comment

+ 20 = 22