mas_7.PAS

{* Сумма элементов по диагоналям *}

Unit MAS_7;
Interface
Implementation
Begin
 writeln('Посчитать сумму элементов по диагоналям');
End.

Program mas_7;

Uses mas_7.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключаем внешние файлы *}
Const {* Постоянные значения *}
  n = 5;
Var {* В работе нам потребуются переменные: *}
  a     : Array[1..n, 1..n] Of byte;
  c     : Array[1..n] Of byte;
  v     : Array[1..n] Of byte;
  i     : byte;
  j     : byte;
  u     : byte;
  b     : byte;
  s1    : byte;
  s2    : byte;
  summa : byte;
Begin
  clrscr; {* Очистка экрана *}
  randomize;
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
    For j := 1 To n Do {* Увеличиваем j от 1 до n с шагом 1 *}
    Begin
      a[i, j] := random(9);
      gotoxy(i * 2 + 17, j + 2);
      write(a[i, j]);
    End;
  writeln; {Diagonal pravelnaia}
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
    For j := 1 To n Do {* Увеличиваем j от 1 до n с шагом 1 *}
      If i = j Then
        v[i] := v[i] + a[i, j]; {Diagonal nepravelnaia}
  For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
    For j := n Downto 1 Do
    Begin
      gotoxy(i * 2 + 17, j + 14);
      For u := 1 To 4 Do {* Увеличиваем u от 1 до 4 с шагом 1 *}
      Begin
        i := i + 1;
        j := j - 1;
        b := a[1, n];
        c[i] := c[i] + a[i, j];
      End;
      
    End;
  writeln; {* Пропускаем одну строку *}
  For i := 1 To 5 Do {* Цикл для i => [1 .. 5] *}
  Begin
    c[1] := b;
    write(c[i]);
    s1 := s1 + c[i];
  End;
  writeln; {* Вывод пустой строки *}
  For i := 1 To 5 Do {* Переменная i увеличивается с 1 до 5 *}
  Begin
    write(v[i]);
    s2 := s2 + v[i];
  End;
  writeln; {* Вывод пустой строки *}
  summa := s1 + s2;
  writeln('summa diagonalei = ', summa);
  readkey; {* Ждем нажатия любой клавиши *}
End.