Добавить сортировку массива по возрастанию и убыванию - Turbo Pascal
Формулировка задачи:
Нужно прикрутить вывод на экран не только в порядке возрастания, но и в порядке убывания. Буду благодарен за любую помощь.
Решение задачи: «Добавить сортировку массива по возрастанию и убыванию»
textual
Листинг программы
uses crt; const n = 10; m = 6; var a: array [0..n+1] of integer; na: integer; b: array [0..m+1] of integer; nb: integer; c: array [1..m+n] of integer; i,ia,ib: integer; begin writeln('Задача слияния двух отсортированных массивов в один отсортированный'); a[1] := Random(10); for i:=2 to n do a[i] := a[i-1] + Random(10); b[1] := Random(10); for i:=2 to m do b[i] := b[i-1] + Random(10); write('Массив a: '); for i:=1 to n do write(a[i],' '); writeln; write('Массив b: '); for i:=1 to m do write(b[i],' '); writeln; a[n+1] := MaxInt; b[m+1] := MaxInt; ia := 1; ib := 1; for i:=1 to n+m do if a[ia]>b[ib] then begin c[i] := b[ib]; ib := ib + 1; end else begin c[i] := a[ia]; ia := ia + 1; end; writeln('Массив c - результат слияния по возрастанию: '); for i:=1 to n+m do write(c[i],' '); writeln; a[0] := -MaxInt; b[0] := -MaxInt; ia := n; ib := m; for i:=1 to n+m do if a[ia]<b[ib] then begin c[i] := b[ib]; ib := ib - 1; end else begin c[i] := a[ia]; ia := ia - 1; end; writeln('Массив c - результат слияния по убыванию: '); for i:=1 to n+m do write(c[i],' '); end.
Объяснение кода листинга программы
- Создаются два массива
a
иb
, оба размеромn+1
иm+1
соответственно, и инициализируются случайными числами от 0 до 99. - Выводится содержимое массивов
a
иb
. - В массиве
a
добавляется элементMaxInt
в позицииn+1
, а в массивеb
- в позицииm+1
. - Создаются два указателя
ia
иib
, указывающие на первые элементы массивовa
иb
. - Запускается цикл, в котором происходит слияние элементов массивов
a
иb
. Если текущий элемент из массиваa
больше текущего элемента из массиваb
, то он копируется в массивc
. Указательia
увеличивается на единицу, а указательib
уменьшается на единицу. Если текущий элемент из массиваa
меньше текущего элемента из массиваb
, то он копируется в массивc
. Указательia
уменьшается на единицу, а указательib
увеличивается на единицу. - Выводится содержимое массива
c
. - Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д