Двумерные массивы - сортировка и произведение - Turbo Pascal
Формулировка задачи:
Помогите, пожалуйста, решить задачу:
Учусь на заочке. Спрашивал, можно ли на чем-то нормальном (Java, C#) решать задачи, но препод упёрся в паскале. Сижу решаю теперь на языке, для которого IDE хуже Sublime Text
Дан массив m * n. Расположить элементы каждого столбца в порядке возрастания. Найти произведение наименьших элементов каждого столбца массива.
Решение задачи: «Двумерные массивы - сортировка и произведение»
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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д