Упорядочить каждый столбец матрицы по возрастанию - Pascal
Формулировка задачи:
Упорядочить каждый столбец матрицы по возрастанию массив размером m на n.
Решение задачи: «Упорядочить каждый столбец матрицы по возрастанию»
textual
Листинг программы
var
ar: Array[Byte, Byte] Of ShortInt;
i, j, k, m, n: Byte;
temp: ShortInt;
begin
repeat
Write('Количество строк: ');
ReadLn(m);
until (m > 0);
repeat
Write('Количество столбцов: ');
ReadLn(n);
until (n > 0);
Randomize;
WriteLn('Оригинальная матрица:');
for i := 0 to m - 1 do
begin
for j := 0 to n - 1 do
begin
ar[i, j] := Random(199) - 99;
Write(ar[i, j]:4);
end;
WriteLn;
end;
for j := 0 to n - 1 do
for i := 0 to m - 2 do
for k := 0 to m - 2 - i do
if (ar[k, j] > ar[k + 1, j])
then
begin
temp := ar[k, j];
ar[k, j] := ar[k + 1, j];
ar[k + 1, j] := temp;
end;
WriteLn('Сортированная матрица:');
for i := 0 to m - 1 do
begin
for j := 0 to n - 1 do
Write(ar[i, j]:4);
WriteLn;
end;
end.
Объяснение кода листинга программы
- Объявление массива ar: Array[Byte, Byte] Of ShortInt - создание двумерного массива ar, где каждый элемент является 8-битным целым числом.
- Объявление переменных i, j, k, m, n: Byte - создание переменных для циклов и хранения размеров матрицы.
- Объявление переменной temp: ShortInt - создание временной переменной для обмена значениями при сортировке.
- Цикл с повторением до ввода корректного значения m (количество строк) исходной матрицы.
- Цикл с повторением до ввода корректного значения n (количество столбцов) исходной матрицы.
- Инициализация генератора случайных чисел.
- Вывод исходной матрицы с помощью циклов и заполнение элементов случайными значениями.
- Цикл сортировки каждого столбца матрицы по возрастанию.
- Вывод отсортированной матрицы с помощью циклов.