Сортировка элементов строки в двумерном массиве 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: временная переменная для обмена значениями.
- Получение от пользователя размеров матрицы (количество строк и столбцов).
- Получение номера строки для сортировки.
- Вывод исходной матрицы на экран.
- Проход по всем элементам матрицы, начиная со второй строки, и сравнение соседних элементов. Если элемент слева больше элемента справа, то они меняются местами.
- Вывод отсортированной матрицы на экран.
- Ожидание нажатия клавиши для завершения программы.