program Pascal_159309;
{ Размер массива }
const
N=16;
var
Arr:array[1..N]of integer;
i,j,j1,j2,tmp,cnt:integer;
begin
Randomize;
{ Создаем массив и выводим его на зкран }
WriteLn('Array:');
for i := 1 to N do begin
Arr[i]:=Random(51)-25;
Write(Arr[i]:4,' ');
end;
WriteLn;
{ Сортируем }
cnt:=0; { Счетчик перестановок }
{ Идем только по четным индексам }
i:=0;
while i<N do begin
i:=i+2;
j:=i;
while j<N do begin
j:=j+2;
{ Если оба элемента четные и неупорядоченные }
if (not Odd(Arr[i])) and (not Odd(Arr[j])) and (Arr[i]>Arr[j]) then begin
tmp:=Arr[i];
Arr[i]:=Arr[j];
Arr[j]:=tmp;
Inc(cnt); { Увеличим счетчик }
end;
end;
end;
{ Выводим результат }
WriteLn('Result Array:');
for i := 1 to N do
Write(Arr[i]:4,' ');
WriteLn;
{ Выводим количество перестановок }
WriteLn('Rearrangements=',cnt);
ReadLn;
end.
Array:
10 14 9 -10 16 -10 15 12 24 -24 -24 -16 -11 15 25 23
Result Array:
10 -24 9 -16 16 -10 15 -10 24 12 -24 14 -11 15 25 23
Rearrangements=9
program Pascal_159309;
{ Размер массива }
const
N=16;
var
Arr:array[1..N]of integer;
i,j,tmp,cnt:integer;
begin
Randomize;
{ Создаем массив и выводим его на зкран }
WriteLn('Array:');
for i := 1 to N do begin
Arr[i]:=Random(51)-25;
Write(Arr[i]:4,' ');
end;
WriteLn;
{ Сортируем }
cnt:=0; { Счетчик перестановок }
{ Идем только по четным индексам }
i:=0;
while i<N do begin
i:=i+2;
{ Только если четный элемент }
if not Odd(Arr[i]) then begin
j:=i;
while j<N do begin
j:=j+2;
{ Если оба элемента четные и неупорядоченные }
if (not Odd(Arr[j])) and (Arr[i]>Arr[j]) then begin
tmp:=Arr[i];
Arr[i]:=Arr[j];
Arr[j]:=tmp;
Inc(cnt); { Увеличим счетчик }
end;
end;
end;
end;
{ Выводим результат }
WriteLn('Result Array:');
for i := 1 to N do
Write(Arr[i]:4,' ');
WriteLn;
{ Выводим количество перестановок }
WriteLn('Rearrangements=',cnt);
ReadLn;
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.