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

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

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

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

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

textual
Листинг программы
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,k:byte;
    c:integer;
begin
randomize;
repeat
write('Количество строк от 2 до ',nmax,' m=');
readln(m);
until m in [2..nmax];
repeat
write('Количество столбцов от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
   end;
  writeln;
 end;
repeat
write('Введите номер строки от 1 до ',m,' k=');
readln(k);
until k in [1..m];
for i:=2 to n do
 begin
  c:=a[k,i];
  j:=i-1;
  while (j>=1) and (a[k,j]>c) do
   begin
    a[k,j+1]:=a[k,j];
    j:=j-1;
   end;
  a[k,j+1]:=c;
 end;
writeln('Результат:');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
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
Похожие ответы