zadach285.PAS

{* Задача 285 *}

Unit ZADACH285;
Interface
Implementation
Begin
 writeln('Дана матрица размерностью N*M. Удалить из матрицы все строки, в которых минимальный элемент встречается раньше, чем максимальный элемент.');
End.

Program zadach285;

Uses zadach285.pas; {* Эту строку можно удалить *}
Var {* Объявление переменных *}
  nommin : integer;
  nommax : integer;
  k      : integer;
  i      : integer;
  j      : integer;
  v      : integer;
  n      : integer;
  m      : integer;
  mat    : Array[1..100, 1..100] Of integer;
  mat1   : Array[1..100, 1..100] Of integer;
  max    : integer;
  min    : integer;
Begin
  writeln; {* Пропускаем одну строку *}
  writeln; {* Пропускаем одну строку *}
  writeln('Задайте размерность матрицы N*M');
  writeln; {* Пустая строка *}
  write ('Введите N:');
  read(n);
  write ('Введите M:');
  read(m);
  writeln('Задать случайные значения=1, ввести вручную=2?');
  readln(v);
  If v = 1 Then
  Begin
    Randomize;
    For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
      For j := 1 To m Do {* Увеличиваем j от 1 до m с шагом 1 *}
        mat[i, j] := Random(99);
        Begin
          Writeln('Исходная матрица: ');
          writeln; {* Пустая строка *}
          For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
          Begin
            For j := 1 To m Do {* Переменная j увеличивается с 1 до m *}
              Write(mat[i, j], ' ');
            Writeln; {* Пустая строка *}
          End;
          readln; {* Приостановка программы. Ожидание Enter *}
        End;
    
  End;
  If v = 2 Then
  Begin
    For i := 1 To n Do {* Цикл для i => [1 .. n] *}
      For j := 1 To m Do {* Увеличиваем j от 1 до m с шагом 1 *}
      Begin
        Writeln ('Введите элемент с индексом [', i, ', ', j, ']');
        Read(mat[i, j]);
      End;
    readln; {* Приостановка программы. Ожидание Enter *}
    Writeln('Исходная матрица: ');
    writeln; {* Пропускаем одну строку *}
    For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
    Begin
      For j := 1 To m Do {* Переменная j увеличивается с 1 до m *}
        Write(mat[i, j], ' ');
      Writeln; {* Пустая строка *}
    End;
    Readln; {* Приостановка программы. Ожидание Enter *}
  End;
  Begin
    k := 1;
    For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
    Begin
      nommin := 1;
      min := mat[i, 1];
      For j := 2 To m Do {* Цикл для j => [2 .. m] *}
        If min > mat[i, j] Then
        Begin
          min := mat[i, j];
          nommin := j;
        End;
      nommax := 1;
      max := mat[i, 1];
      For j := 2 To m Do {* Цикл для j => [2 .. m] *}
        If maxnommax Then
        Begin
          For j := 1 To m Do {* Увеличиваем j от 1 до m с шагом 1 *}
            mat1[k, j] := mat[i, j];
          k := k + 1;
        End;
      
    End;
    
  End;
  Begin
    Writeln('Конечная матрица: ');
    writeln; {* Пропускаем одну строку *}
    For i := 1 To k - 1 Do {* Переменная i увеличивается с 1 до k *}
    Begin
      For j := 1 To m Do {* Переменная j увеличивается с 1 до m *}
        Write(mat1[i, j], ' ');
      Writeln; {* Пропускаем одну строку *}
    End;
    Readln; {* Ждем нажатия Enter *}
  End;
  
End.