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

uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,i,j,k:byte;
    x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(50)+1;
  write(a[i]:4);
 end;
writeln;
writeln;
{Четные вперед}
k:=0;
for i:=1 to n do
if a[i] mod 2=0 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
{Сортировка четных}
for i:=1 to k-1 do
for j:=i+1 to k do
if a[i]>a[j] then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
{Сортировка нечетных}
for i:=k+1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i]:4);
readln
end.

Leave a Comment

26 − = 24