zadach166.PAS

{* Задача 166 *}

Unit ZADACH166;
Interface
Implementation
Begin
 writeln('Вычислить суммы элементов, стоящих выше главных диагоналей матриц A(n, n) и B(m, m).');
End.

Program Project1;

Uses zadach166.pas; {* Эту строку можно удалить *}
Uses CRT; {* Вызов внешних функций *}
Const {* Константы *}
  m = 10;
  n = 15;
Type {* Типы переменных *}
  ArrayM = Array [1..m, 1..m] Of Integer;
  ArrayN = Array [1..n, 1..n] Of Integer;
Var {* Объявление переменных *}
  S                  : Integer;
  A                  : ArrayN;
  B                  : ArrayM;
  i                  : Integer;
  j                  : Integer;
Procedure Summa(AA : ArrayN;
BB                 : ArrayM;
a                  : Integer;
b                  : Integer;
Var {* В работе нам потребуются переменные: *}
  Sm : Integer);
Var {* В работе нам потребуются переменные: *}
  ii : Integer;
  jj : Integer;
Begin
  For ii := 2 To n Do {* Цикл для ii => [2 .. n] *}
    For jj := 1 To n Do {* Цикл для jj => [1 .. n] *}
      If jj < ii Then
        Sm := Sm + AA[ii, jj];
  For ii := 2 To m Do {* Увеличиваем ii от 2 до m с шагом 1 *}
    For jj := 1 To m Do {* Цикл для jj => [1 .. m] *}
      If jj < ii Then
        Sm := Sm + BB[ii, jj];
End;
Begin
  Clrscr; {* Очистка экрана *}
  Randomize;
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
    For j := 1 To n Do {* Цикл для j => [1 .. n] *}
      A[i, j] := - 1000 + Random(2000);
  For i := 1 To m Do {* Увеличиваем i от 1 до m с шагом 1 *}
    For j := 1 To m Do {* Увеличиваем j от 1 до m с шагом 1 *}
      B[i, j] := - 1000 + Random(2000);
  S := 0;
  Summa(A, B, n, m, S);
  Writeln('Summa ravna = ', S);
  Readln; {* Ждем нажатия Enter *}
End.