Сортировка элементов массива - Pascal ABC (12702)
Формулировка задачи:
Объясните пожалуйста )) Задача: Заполнить массив из 10 чисел, переставить элементы от большего к меньшему.
Родилась такая программа:
const
n=10;
var
m: array [1..n] of integer;
b:integer;
c, i:byte;
begin
for i:=1 to n do
begin
m[i]:=random(100)-50;
write(m[i]:4)//вывод элементов массива на экран
end;
for i:=2 to n-1 do
for c:=1 to n-1 do
if m[c]<m[c+1] then
begin
b:= m[c]; m[c]:=m[c+1]; m[c+1]:=b;
end;
writeln;
for i:=1 to n do write(m[i]:4);
end.
Изначально во втором цикле было: for i:=1 to n-1. Но учитель написала, что количество проверок можно сократить. Поэтому интуитивно было переписано for i:=2 to n-1. А понять почему не могу (( Программа в обоих вариантах работает корректно.
Решение задачи: «Сортировка элементов массива»
textual
Листинг программы
var mas:array [1..100] of int64; N, i, o, g, j, p, y: int64; begin readln (o); for i:=1 to o do begin read(n); mas[i]:=n; end; for g:=1 to o-1 do for j:=1 to o-g do if mas[j]>mas[j+1] then begin p:=mas[j]; mas[j]:=mas[j+1]; mas[j+1]:=p; end; write(mas); end.
Объяснение кода листинга программы
В данном коде происходит сортировка элементов массива.
- Создается переменная
mas
, которая представляет собой массив целых чисел размером от 1 до 100. - Задаются переменные
N
,i
,o
,g
,j
,p
иy
, которые будут использоваться в цикле. - Выводится запрос на ввод числа
o
, которое представляет собой количество элементов для сортировки. - В цикле for считывается число
n
и присваивается элементу массиваmas[i]
. - Повторно запускается цикл for, но уже с ограничением от 1 до
o-1
. В этом цикле происходит сравнение элементов массиваmas[j]
иmas[j+1]
. - Если
mas[j]
большеmas[j+1]
, то происходит обмен этих элементов:p
присваивается значениеmas[j]
,mas[j]
присваивается значениеmas[j+1]
, аmas[j+1]
присваивается значениеp
. - После завершения внутреннего цикла выводится отсортированный массив
mas
. Таким образом, данный код выполняет сортировку элементов массива в порядке возрастания.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д