Срочно. В простой понятной форме. Напишите программу, которая заполняет массив случайными числами в диапазоне [a, b] и сортирует его “домиком” – до половины в порядке возрастания, затем – в порядке убывания. Количество элементов в массиве может быть любое! С объяснениями и откуда что взялось?
Answers & Comments
A: array [1..255] of integer;
N, i, j, k, min, max: integer;
begin
//Ввод количества элементов в массиве
write('Введите четное количество элементов: ');
readln(N);
//Ввод двух чисел для диапазона случайных чисел
write('Введите диапазон случайных чисел: ');
readln(min, max);
//Инициализация датчика случайных чисел.
//(в PascalABC.NET необязательно)
randomize;
//Заполнение массива
for i := 1 to N do
begin
A[i] := random(max-min+1)+min;
write(A[i]:4);
end;
writeln;
//Сортировка первой половины по убыванию
for i := 1 to ((N div 2)-1) do
for j := 1 to (N div 2)-i do
if A[j] > A[j+1] then
begin
k := A[j];
A[j] := A[j+1];
A[j+1] := k;
end;
//Сортировка второй половины по убыванию
for i:=(N div 2) to N-1 do
for j:=i+1 to N do
if A[i]<A[j] then
begin
k:=a[i];
A[i]:=A[j];
A[j]:=k;
end;
//Вывод массива
for i := 1 to N do write(A[i]:4);
writeln;
readln;
end.