Сортировка элементов строки в двумерном массиве MxN - Free Pascal
Формулировка задачи:
Дан двумерный массив MxN.
Нужно написать программу которая сортирует элементы заданной строки по возрастанию.
Не знаю как сделать так чтобы сортировалась только k-строка. Буду очень признательна, если поможете!
program sortirovka zadannoy stroki; const nmax=10; var a:array[1..nmax,1..nmax] of integer; m,n,i,j,k:byte; x:integer; begin randomize; writeln('Введите размеры матрицы:'); write(' Количество строк n='); repeat readln(n); until n in [1..50]; write(' Количество столбцов m='); repeat readln(m); until m in [1..50]; write(' Выберите номер строки (от 1 до n) k='); repeat readln(k); until k in [1..n]; writeln; writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end; writeln; for i:=1 to n-1 do for j:=i+1 to n do if a[m,i]>a[m,j] then begin x:=a[m,i]; a[m,i]:=a[m,j]; a[m,j]:=x; end; writeln('Отсортированная матрица:'); for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; readln end.
Решение задачи: «Сортировка элементов строки в двумерном массиве MxN»
textual
Листинг программы
program sortirovka_zadannoy_stroki; const nmax=10; var a:array[1..nmax,1..nmax] of integer; m,n,i,j,k:byte; x:integer; begin randomize; writeln('Введите размеры матрицы:'); write(' Количество строк n='); repeat readln(n); until n in [1..10]; write(' Количество столбцов m='); repeat readln(m); until m in [1..10]; write(' Выберите номер строки (от 1 до n) k='); repeat readln(k); until k in [1..n]; writeln; writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end; writeln; for i:=1 to m-1 do for j:=i+1 to m do if a[k,i]>a[k,j] then begin x:=a[k,i]; a[k,i]:=a[k,j]; a[k,j]:=x; end; writeln('Отсортированная матрица:'); for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; readln end.
Объяснение кода листинга программы
Список действий в коде:
- Объявление переменных:
- a: двумерный массив для хранения чисел (размеры nmax x nmax);
- m, n, i, j, k: целочисленные переменные для работы с индексами массива;
- x: временная переменная для обмена значениями.
- Получение от пользователя размеров матрицы (количество строк и столбцов).
- Получение номера строки для сортировки.
- Вывод исходной матрицы на экран.
- Проход по всем элементам матрицы, начиная со второй строки, и сравнение соседних элементов. Если элемент слева больше элемента справа, то они меняются местами.
- Вывод отсортированной матрицы на экран.
- Ожидание нажатия клавиши для завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д