Отсортировать ту строку матрицы, номер которой введет пользователь - 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 символа.
- Для
- Конец.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д