Сортировка элементов строки в двумерном массиве 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.

Объяснение кода листинга программы

Список действий в коде:

  1. Объявление переменных:
    • a: двумерный массив для хранения чисел (размеры nmax x nmax);
    • m, n, i, j, k: целочисленные переменные для работы с индексами массива;
    • x: временная переменная для обмена значениями.
  2. Получение от пользователя размеров матрицы (количество строк и столбцов).
  3. Получение номера строки для сортировки.
  4. Вывод исходной матрицы на экран.
  5. Проход по всем элементам матрицы, начиная со второй строки, и сравнение соседних элементов. Если элемент слева больше элемента справа, то они меняются местами.
  6. Вывод отсортированной матрицы на экран.
  7. Ожидание нажатия клавиши для завершения программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы