zadach25.PAS

{* Задача 25 *}

Unit ZADACH25;
Interface
Implementation
Begin
 writeln('Матрица состоит из слов длиной в 5 символов. Получить полную матрицу, слова в которой записаны наоборот и на обоих диагоналях удалены из слов все гласные буквы. Для каждой строки подсчитать количество слов, начинающихся с гласной и согласной буквы. Обе матрицы распечатать.');
End.

Program Task30;

Uses zadach25.pas; {* Эту строку можно удалить *}
Var {* Необходимые переменные *}
  a       : Array[1..10, 1..10] Of String[5];
  b       : Array[1..10, 1..10] Of String[5];
  gl      : Array[1..10] Of Integer;
  i       : Integer;
  j       : Integer;
  k       : Integer;
  d       : Integer;
  m       : Integer;
  n       : Integer;
  s       : String[5];
  q       : String[5];
  Glasniy : Set Of Char;
Begin
  Glasniy := ['j''w''e''y''u''i''o''a''у''е''ё''ы''а''о''я''и''ю'];
  Write('n=');
  Readln(n);
  Writeln('Введите элементы матрицы A[', n, ', ', n, ']');
  For i := 1 To n Do {* Цикл для i => [1 .. n] *}
    For j := 1 To n Do {* Увеличиваем j от 1 до n с шагом 1 *}
    Begin
      Write('a[', i, ', ', j, ']=');
      Readln(a[i, j]);
    End;
  Writeln ('Сформирована матрица A[', n, ', ', n, ']');
  For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
  Begin
    For j := 1 To n Do {* Цикл для j => [1 .. n] *}
      Write(a[i, j] : 8);
    Writeln; {* Пустая строка *}
  End;
  For i := 1 To n Do {* Цикл для i => [1 .. n] *}
  Begin
    gl[i] := 0;
    For j := 1 To n Do {* Увеличиваем j от 1 до n с шагом 1 *}
    Begin
      s := '';
      q := a[i, j];
      m := length(q);
      If q[1] In Glasniy Then
        gl[i] := gl[i] + 1;
      If (i = j) Or (i = (n - j + 1)) Then
      Begin
        For k := 1 To m Do {* Переменная k увеличивается с 1 до m *}
          If Not(q[k] In Glasniy) Then
            s := s + q[k];
      End;
      Else Begin
        For d := m Downto 1 Do
          s := s + q[d];
    End;
    b[i, j] := s;
  End;
  
End;
  Writeln ('Получена матрица B[', n, ', ', n, ']');
For i := 1 To n Do {* Цикл для i => [1 .. n] *}
Begin
  For j := 1 To n Do {* Переменная j увеличивается с 1 до n *}
    Write(b[i, j] : 8);
  Writeln; {* Пустая строка *}
End;
For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
  Writeln ('В ', i, '-й строке слов начинаются с гласной - ', gl[i], ' и начинающихся c согласной - ', n - gl[i]);
Readln; {* Ждем нажатия Enter *}
End.....