Отсортировать ту строку матрицы, номер которой введет пользователь - Pascal

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

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

Отсортировать в двумерном массиве целых случайных чисел ту строку, номер которой введет пользователь. Использовать метод сортировки вставкой.

Решение задачи: «Отсортировать ту строку матрицы, номер которой введет пользователь»

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

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

  1. Объявляется константа nmax со значением 20.
  2. Объявляются переменные:
    • a - массив целых чисел размерности от 1 до nmax х от 1 до nmax.
    • m, n, i, j, k - целочисленные переменные;
    • c - целочисленная переменная.
  3. Генерируется случайное начальное значение для генератора случайных чисел.
  4. Начинается цикл повторения до тех пор, пока не будет введено корректное значение m (от 2 до nmax).
    • Запрашивается пользовательский ввод значения m.
  5. Начинается цикл повторения до тех пор, пока не будет введено корректное значение n (от 2 до nmax).
    • Запрашивается пользовательский ввод значения n.
  6. Выводится сообщение Исходная матрица:.
  7. Запускается вложенный цикл for для заполнения матрицы случайными значениями от 0 до 19 и их отображения.
    • Для i от 1 до m,
    • Для j от 1 до n,
    • Заполняется элемент массива случайным числом от 0 до 19, значение выводится на экран.
  8. Начинается цикл повторения, пока не будет введено корректное значение k (от 1 до m).
    • Запрашивается пользовательский ввод значения k.
  9. Начинается цикл for для сортировки строки с номером k методом вставок.
    • Для i от 2 до n,
    • Запоминается значение элемента a[k,i] в переменную c.
    • Затем, начиная с j равного i-1, идет по убывающей, пока значение j больше или равно 1, и значение a[k,j] больше c.
      • Происходит сдвиг элементов вправо.
    • После цикла вложенного в while происходит присваивание c элементу a[k,j+1].
  10. Выводится сообщение Результат:.
  11. Начинается вложенный цикл for для вывода отсортированной матрицы.
    • Для i от 1 до m,
    • Для j от 1 до n,
    • Выводится значение элемента массива a[i,j] с выравниванием в 4 символа.
  12. Конец.

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


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

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

7   голосов , оценка 3.714 из 5

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

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

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