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