Пузырёк сортировка в диапозоне - Pascal ABC
Формулировка задачи:
Надо изменить так, чтобы числа от 15 до 50 сортировались по убыванию и записывались в начало массива.
Листинг программы
- procedure OoOoO(b:mass;m:integer;var vb:mass);
- var i, j, k:integer;
- begin
- for i:=1 to m-1 do
- for j:=i+1 to m do
- if b[i] < b[j] then begin
- k:=b[j];
- b[j]:=b[i];
- b[i]:=k;
- end;
- vb:=b;
- end;
Решение задачи: «Пузырёк сортировка в диапозоне»
textual
Листинг программы
- procedure OoOoO(var b:mass;m:integer);
- var i,j,k,x:integer;
- begin
- //перестановка чисел от 15 до 50 вперед
- k:=0;
- for i:=1 to m do
- if b[i] in [15..50] then
- begin
- k:=k+1;
- x:=b[i];
- for j:=i downto k+1 do
- b[j]:=b[j-1];
- b[k]:=x;
- end;
- //сортировка первых К чисел
- for i:=1 to k-1 do
- for j:=i+1 to k do
- if b[i]< b[j]then
- begin
- x:=b[i];
- b[i]:=b[j];
- b[j]:=x;
- end;
- end;
Объяснение кода листинга программы
Данный код представляет собой процедуру, которая выполняет две операции: перестановку чисел от 15 до 50 вперед и сортировку первых K чисел.
- Перестановка чисел от 15 до 50 вперед:
- Переменная k инициализируется значением 0.
- В цикле for перебираются числа от 1 до m.
- Если число b[i] находится в диапазоне от 15 до 50, то:
- Переменная k увеличивается на 1.
- Переменная x присваивается значению b[i].
- В цикле for перебираются числа от i+1 до k+1.
- Значение b[j] присваивается значению b[j-1].
- Значение b[k] присваивается значению x.
- После завершения внутреннего цикла, значение b[k] будет содержать последнее число из диапазона от 15 до 50.
- Сортировка первых K чисел:
- В цикле for перебираются числа от 1 до k-1.
- В цикле inner for проверяется, что текущее число b[i] меньше следующего числа b[j].
- Если это условие выполняется, то:
- Значение x присваивается значению b[i].
- Значение b[i] присваивается значению b[j].
- Значение b[j] присваивается значению x.
- После завершения внутреннего цикла, числа будут отсортированы по возрастанию. Обратите внимание, что данный код не использует вложенные списки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д