Спрограммой по информатике! ( задана последовательность целых чисел(ввод с клавиатуры),количество которых не превосходит 100.требуется расположить элементы последовательности в возрастающем порядке.
var i, j, n, step, t: integer; a: array[1..nm] of integer;
begin Write('Введите количество элементов в массиве: '); Readln(n); Write('Введите элементы массива через пробел '); for i := 1 to n do Read(a[i]); { сортировка методом Шелла } step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if a[i] > a[i + step] then begin t := a[i]; a[i] := a[i + step]; a[i + step] := t end; i := i + step end end; step := step div 2 end; Writeln('*** Отсортированный массив ***'); for i := 1 to n do Write(a[i], ' ') end.
Тестовое решение:
Введите количество элементов в массиве: 15 Введите элементы массива через пробел 15 26 -35 7 0 21 5 9 27 0 -11 26 4 42 -23 *** Отсортированный массив *** -35 -23 -11 0 0 4 5 7 9 15 21 26 26 27 42
nm = 100;{максимальная длина массива}
var
i, j, n, step, t: integer;
a: array[1..nm] of integer;
begin
Write('Введите количество элементов в массиве: ');
Readln(n);
Write('Введите элементы массива через пробел ');
for i := 1 to n do Read(a[i]);
{ сортировка методом Шелла }
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if a[i] > a[i + step] then begin
t := a[i]; a[i] := a[i + step]; a[i + step] := t
end;
i := i + step
end
end;
step := step div 2
end;
Writeln('*** Отсортированный массив ***');
for i := 1 to n do Write(a[i], ' ')
end.
Тестовое решение:
Введите количество элементов в массиве: 15
Введите элементы массива через пробел 15 26 -35 7 0 21 5 9 27 0 -11 26 4 42 -23
*** Отсортированный массив ***
-35 -23 -11 0 0 4 5 7 9 15 21 26 26 27 42