Дана действительная матрица размера N*M, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением — Pascal(Паскаль)

const
  n = 8; { количество строк }
  m = 10; { количество столбцов }

Var
  a: array [1 .. n, 1 .. m] of real; { данная матрица }
  i, j, k, l, v: integer;
  minj, maxi: real;

BEGIN
  { заполнение матрицы произвольными положительными действительными числами от 0 до 99 }
  randomize;
  For i := 1 to n do
    For j := 1 to m do
      a[i, j] := random(100);
  maxi := -1; { так как все числа положительные (мы сами так заполнили) }
  For i := 1 to n do
  begin
    minj := a[i, 1];
    { предположим что первый элемент каждой i-ой строки минимальный }
    For j := 2 to m do
      { сравниваем все остальные элементы строки с уже найденным минимальным }
      If a[i, j] < minj then
      begin { если он меньше уже найденного то }
        minj := a[i, j]; { он минимальный }
        v := j; { сохраняем его номер столбца }
      end;
    { проверяем только что полученный элемент на максимум }
    If minj > maxi then
    begin { если верно то сохраняем его и его индексы }
      k := i;
      l := v;
      maxi := minj;
    end;
  end;
  { Выводим искомый элемент и его индексы хоть в едите хоть в лабеле }

END.

Leave a Comment

23 − = 14