Заменить наименьший элемент каждой строки матрицы, начиная со второй, наибольшим элементом предыдущей строки. - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Дана прямоугольная матрица A(n*m). Заменить наименьший элемент каждой строки, начиная со второй, наибольшим элементом предыдущей строки.

Решение задачи: «Заменить наименьший элемент каждой строки матрицы, начиная со второй, наибольшим элементом предыдущей строки.»

textual
Листинг программы
  1. uses crt;
  2. const nmax=15;
  3. var a:array[1..nmax,1..nmax] of integer;
  4.     m,n,i,j,jmn:byte;
  5.     mn,mx:integer;
  6. begin
  7. clrscr;
  8. randomize;
  9. repeat
  10. write('Количество строк до ',nmax,' n=');
  11. readln(n);
  12. until n in [1..nmax];
  13. repeat
  14. write('Количество столбцов до ',nmax,' m=');
  15. readln(m);
  16. until m in [1..nmax];
  17. writeln('Исходная матрица:');
  18. for i:=1 to n do
  19.  begin
  20.   for j:=1 to m do
  21.    begin
  22.     a[i,j]:=random(20);
  23.     write(a[i,j]:4);
  24.    end;
  25.   writeln;
  26.  end;
  27. for i:=n downto 2 do
  28.  begin
  29.   jmn:=1;
  30.   for j:=2 to m do
  31.   if a[i,j]<a[i,jmn] then jmn:=j;
  32.   mx:=a[i-1,1];
  33.   for j:=2 to m do
  34.   if a[i-1,j]>mx then mx:=a[i-1,j];
  35.   a[i,jmn]:=mx;
  36.  end;
  37. writeln('Измененная матрица');
  38. for i:=1 to n do
  39.  begin
  40.   for j:=1 to m do
  41.   write(a[i,j]:4);
  42.   writeln;
  43.  end;
  44. readln
  45. end.

Объяснение кода листинга программы

  1. Создается переменная nmax со значением 15.
  2. Создается переменная a типа array[1..nmax,1..nmax] of integer;.
  3. Создаются три переменные m, n и i типа byte;.
  4. Создается переменная mn и инициализируется значением 0.
  5. Создается переменная mx и инициализируется значением 0.
  6. Выполняется цикл repeat, который запрашивает у пользователя количество строк и столбцов матрицы.
  7. Внутри цикла repeat выводится сообщение с запрошенными значениями.
  8. Выполняется цикл for, который начинается с индекса строки 1 и продолжается до индекса строки 2.
  9. Внутри цикла for выполняется цикл for, который начинается с индекса столбца 1 и продолжается до индекса столбца m.
  10. Внутри внутреннего цикла проверяется условие if a[i,j]<a[i,jmn] и если оно истинно, то значение переменной jmn устанавливается равным значению переменной j.
  11. Если условие if a[i-1,j]>mx истинно, то значение переменной mx устанавливается равным значению переменной a[i-1,j].
  12. Значение переменной a[i,jmn] устанавливается равным значению переменной mx.
  13. Выполняется цикл for, который начинается с индекса строки 1 и продолжается до индекса строки 2.
  14. После окончания внутреннего цикла выводится сообщение с измененной матрицей.
  15. Выполняется цикл for, который начинается с индекса строки 1 и продолжается до индекса строки 2.
  16. После окончания внешнего цикла выводится сообщение с исходной матрицей.
  17. Выполняется цикл readln, чтобы дождаться ввода пользователя.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы