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