Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 77 стр.

UptoLike

Составители: 

1 2
3
1,2,3
1,2,3
1,2,3
1,2,3
+
+
1,2,3
1,2,3
1
2
3
+
+
+
+
6
6
6
6
6
6
-
-
-
-
-
-
"Магический
квадрат"
2 4 "Да"
"Нет"
1 +
-
(кц)
1,2
1
-
(кц)
- 3 + "Не
магический
квадрат"
Turbo Pascal
Program MagicSquare;
Uses Crt;
Var A : Array [1..20, 1..20] of Integer;
i, j, N : Integer;
Standard, S : Integer; {Standard - сумма-эталон, S - текущая
сумма}
Flag : Boolean;
{-------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода
матрицы}
Begin
ClrScr;
Write('Количество строк и столбцов - ');
ReadLn(N);
For i := 1 to N do
For j := 1 to N do
begin Write('A[' , i , ', ' , j , '] = ');
ReadLn(A[i, j])
end;
ClrScr;
WriteLn('Исходная матрица :'); WriteLn;
For i := 1 to N do
begin
For j := 1 to N do Write(A[i, j] : 5);
WriteLn
end; WriteLn
End; { of InputOutput }
{-------------------------------------------}
Procedure MagicOrNot(Var Flag : Boolean); {описание
процедуры, }
{в которой выясняется, является ли квадрат
"магическим"}
Begin {вычисление суммы элементов главной диагонали}
{в качестве эталонной суммы}
Standard:=0;
For i := 1 to N do Standard := Standard + A[i,i];
Flag:=TRUE; i:=1;
While (i<=N) and Flag do {вычисление сумм элементов строк}
begin
S:=0;
For j := 1 to N do S := S+A[i, j];
If S<>Standard then Flag := FALSE else i:=i+1
    1                  2      +     1,2,3              6   -
                       3      +     1,2,3    +     +   6   -
                     1,2,3            1      +         6   -   "Магический
                     1,2,3            2      +         6   -     квадрат"
                     1,2,3            3                6   -
                     1,2,3                             6   -
    2    4    "Да"     1       +     1,2      -    -   3   +       "Не
             "Нет"             -      1     (кц)               магический
                             (кц)                               квадрат"
Turbo Pascal
Program MagicSquare;
Uses Crt;
Var A : Array [1..20, 1..20] of Integer;
     i, j, N : Integer;
     Standard, S : Integer; {Standard - сумма-эталон, S - текущая
сумма}
     Flag : Boolean;
{-------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода
матрицы}
Begin
  ClrScr;
  Write('Количество строк и столбцов - ');
  ReadLn(N);
  For i := 1 to N do
     For j := 1 to N do
       begin Write('A[' , i , ', ' , j , '] = ');
               ReadLn(A[i, j])
       end;
  ClrScr;
  WriteLn('Исходная матрица :'); WriteLn;
  For i := 1 to N do
     begin
       For j := 1 to N do Write(A[i, j] : 5);
       WriteLn
     end; WriteLn
End; { of InputOutput }
{-------------------------------------------}
Procedure MagicOrNot(Var Flag : Boolean);             {описание
процедуры, }
                    {в которой выясняется, является ли квадрат
"магическим"}
 Begin      {вычисление суммы элементов главной диагонали}
            {в качестве эталонной суммы}
  Standard:=0;
  For i := 1 to N do Standard := Standard + A[i,i];
  Flag:=TRUE; i:=1;
  While (i<=N) and Flag do {вычисление сумм элементов строк}
     begin
       S:=0;
       For j := 1 to N do S := S+A[i, j];
       If S<>Standard then Flag := FALSE else i:=i+1