Сортировка элементов строки в двумерном массиве MxN - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Дан двумерный массив MxN. Нужно написать программу которая сортирует элементы заданной строки по возрастанию. Не знаю как сделать так чтобы сортировалась только k-строка. Буду очень признательна, если поможете!
Листинг программы
  1. program sortirovka zadannoy stroki;
  2. const nmax=10;
  3. var a:array[1..nmax,1..nmax] of integer;
  4. m,n,i,j,k:byte;
  5. x:integer;
  6. begin
  7. randomize;
  8. writeln('Введите размеры матрицы:');
  9. write(' Количество строк n=');
  10. repeat
  11. readln(n);
  12. until n in [1..50];
  13. write(' Количество столбцов m=');
  14. repeat
  15. readln(m);
  16. until m in [1..50];
  17. write(' Выберите номер строки (от 1 до n) k=');
  18. repeat
  19. readln(k);
  20. until k in [1..n];
  21. writeln;
  22. writeln('Исходная матрица:');
  23. for i:=1 to n do
  24. begin
  25. for j:=1 to m do
  26. begin
  27. a[i,j]:=random(100);
  28. write(a[i,j]:4);
  29. end;
  30. writeln;
  31. end;
  32. writeln;
  33. for i:=1 to n-1 do
  34. for j:=i+1 to n do
  35. if a[m,i]>a[m,j] then
  36. begin
  37. x:=a[m,i];
  38. a[m,i]:=a[m,j];
  39. a[m,j]:=x;
  40. end;
  41. writeln('Отсортированная матрица:');
  42. for i:=1 to n do
  43. begin
  44. for j:=1 to m do
  45. write(a[i,j]:4);
  46. writeln;
  47. end;
  48. readln
  49. end.

Решение задачи: «Сортировка элементов строки в двумерном массиве MxN»

textual
Листинг программы
  1. program sortirovka_zadannoy_stroki;
  2. const nmax=10;
  3. var a:array[1..nmax,1..nmax] of integer;
  4.     m,n,i,j,k:byte;
  5.     x:integer;
  6. begin
  7. randomize;
  8. writeln('Введите размеры матрицы:');
  9. write(' Количество строк n=');
  10. repeat
  11. readln(n);
  12. until n in [1..10];
  13. write(' Количество столбцов m=');
  14. repeat
  15. readln(m);
  16. until m in [1..10];
  17. write(' Выберите номер строки (от 1 до n) k=');
  18. repeat
  19. readln(k);
  20. until k in [1..n];
  21. writeln;
  22. writeln('Исходная матрица:');
  23. for i:=1 to n do
  24.  begin
  25.   for j:=1 to m do
  26.    begin
  27.     a[i,j]:=random(100);
  28.     write(a[i,j]:4);
  29.    end;
  30.   writeln;
  31.  end;
  32. writeln;
  33. for i:=1 to m-1 do
  34. for j:=i+1 to m do
  35. if a[k,i]>a[k,j] then
  36.  begin
  37.   x:=a[k,i];
  38.   a[k,i]:=a[k,j];
  39.   a[k,j]:=x;
  40.  end;
  41. writeln('Отсортированная матрица:');
  42. for i:=1 to n do
  43.  begin
  44.   for j:=1 to m do
  45.   write(a[i,j]:4);
  46.   writeln;
  47.  end;
  48. readln
  49. end.

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

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

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

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


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

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

13   голосов , оценка 4.308 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы