Упорядочить одномерный массив так,чтобы в начале располагались четные элементы в порядке возрастания их значений,а затем нечетные-в порядке убывания их значений — Pascal(Паскаль)

uses crt;
const max=100;
var b:array[1..max] of integer;
    n,i,k,j,tmp:integer;
begin
 clrscr;
 randomize;
 repeat
 write('Размер массива n: ');
 readln(n);
 until n in [1..max];
 writeln('Исходный массив: ');
 for i:=1 to n do
  begin
   b[i]:=random(40)+10;
   write(b[i],' ');
  end;
 writeln;
 writeln;
 
{четные вперед}
 
 k:=0;
 for i:=1 to n do
 if b[i] mod 2=0 then
  begin
   k:=k+1;
   tmp:=b[i];
   for j:=i downto k+1 do
   b[j]:=b[j-1];
   b[k]:=tmp;
  end;
 
{сортировка четных}
 
 for i:=1 to k-1 do
 for j:=i+1 to k do
 if b[i]>b[j] then
  begin
   tmp:=b[i];
   b[i]:=b[j];
   b[j]:=tmp;
  end;
 
{сортировка нечетных}
 
 for i:=k+1 to n-1 do
 for j:=i+1 to n do
 if b[i]<b[j] then
  begin
   tmp:=b[i];
   b[i]:=b[j];
   b[j]:=tmp;
  end;
 writeln('Массив после упорядочивания: ');
 for i:=1 to n do
 write(b[i],' ');
 readln
end.

Leave a Comment

55 + = 57