Двумерные массивы - сортировка и произведение - Turbo Pascal

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

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

Помогите, пожалуйста, решить задачу:
Дан массив m * n. Расположить элементы каждого столбца в порядке возрастания. Найти произведение наименьших элементов каждого столбца массива.
Учусь на заочке. Спрашивал, можно ли на чем-то нормальном (Java, C#) решать задачи, но препод упёрся в паскале. Сижу решаю теперь на языке, для которого IDE хуже Sublime Text

Решение задачи: «Двумерные массивы - сортировка и произведение»

textual
Листинг программы
const
  m = 4; {строки}
  n = 7; {столбцы}
type
  matrix = array[1..m, 1..n] of integer;
var
  a : matrix;
  i, j : integer;
  p : longint;
  
procedure sort (var z : matrix; k : integer);
var x, y, temp : integer;
begin
  for x := 1 to m do
    for y := m downto x do
      if z[x,k] >= z[y,k] then
      begin
        temp := z[x,k];
        z[x,k] := z[y,k];
        z[y,k] := temp
      end
end;
 
function min (z : matrix; k : integer) : integer;
var x, temp : integer;
begin
  temp := maxInt;
  for x := 1 to m do
    if z[x,k] <= temp then temp := z[x,k];
  min := temp
end;
 
begin
  p := 1;
  {заполняем и выводим}
  writeln('матрица:');
  randomize;
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i,j] := random(20) - 10;
      write(a[i,j]:4)
    end;
    writeln
  end;
  {сортируем считаем произведение}
  for j := 1 to n do
  begin
    sort(a, j);
    p := p * min(a, j)
  end;
  {выводим новую матрицу}
  writeln('новая матрица:');
  for i := 1 to m do
  begin
    for j := 1 to n do write(a[i,j]:4);
    writeln
  end;
  writeln('произведение минимумов столбцов: ', p);
  readln
end.

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


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

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

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