Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждом столбце - Pascal ABC

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

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

Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждом столбце. Помогите пж, последнее зaдaние и прaктикa зaкрытa

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

textual
Листинг программы
const n = 5;
      m = 10;
var a:array[1..n,1..m] of integer;
    i,j,jmn,jmx,x:integer;
begin
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=random(30);
    write(a[i,j]:3);
   end;
  writeln;
 end;
for j:=1 to m do
 begin
  jmn:=1;
  jmx:=1;
  for i:=2 to n do
  if a[i,j]<a[jmn,j] then jmn:=i
  else if a[i,j]>a[jmx,j] then jmx:=i;
  x:=a[jmx,j];
  a[jmx,j]:=a[jmn,j];
  a[jmn,j]:=x;
 end;
writeln('Обмен минимальных и максимальных в столбцах');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:3);
  writeln;
 end;
end.

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

  1. Объявлены константы n = 5 и m = 10, а также переменная a типа array[1..n, 1..m] of integer.
  2. Задана и выведена исходная матрица a размером n на m с помощью двух вложенных циклов for. Каждый элемент a[i,j] инициализируется случайным числом из диапазона от 0 до 29.
  3. Два вложенных цикла for (после вывода исходной матрицы) используются для нахождения индексов минимального и максимального элемента в каждом столбце. Переменные jmn и jmx инициализируются значением 1. Цикл for выполняется для i от 2 до n (т.е. исключая первую строку). Если элемент a[i,j] меньше a[jmn,j], то jmn присваивается i. Если элемент a[i,j] больше a[jmx,j], то jmx присваивается i. После завершения цикла, индекс jmx будет содержать максимальное значение в столбце j, а jmn будет содержать минимальное значение.
  4. Значение переменной x присваивается элементу a[jmx,j].
  5. Элементы a[jmx,j] и a[jmn,j] меняются местами: a[jmx,j] присваивается значение a[jmn,j], а a[jmn,j] присваивается значение x.
  6. Выводится новая матрица a с помощью двух вложенных циклов for.
  7. Код не содержит обработку ошибок или исключений.

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

8   голосов , оценка 4.5 из 5
Похожие ответы