Добавить сортировку массива по возрастанию и убыванию - Turbo Pascal

Формулировка задачи:

Нужно прикрутить вывод на экран не только в порядке возрастания, но и в порядке убывания. Буду благодарен за любую помощь.
const
  n = 10;
  m = 6;
 
var
  a: array [1..n+1] of integer;
  na: integer;
  b: array [1..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;
  write('Массив c - результат слияния: ');  
  for i:=1 to n+m do
    write(c[i],' ');
end.

Код к задаче: «Добавить сортировку массива по возрастанию и убыванию - 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.

8   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ