Pascal отсортировать по возрастанию положительные элементы массивы вывести исходный и...

0 голосов
114 просмотров

Pascal отсортировать по возрастанию положительные элементы массивы вывести исходный и изменить массивы можно использовать любой метод сортировки массив заполнить случайными положительными и отрицательными целым числами


Информатика (15 баллов) | 114 просмотров
0

Т.е. отрицательные элементы остаются на своих местах, а положительные обмениваются значениями так, чтобы эти значения не убывали от начала массива к концу? Или что-то иное нужно?

Дан 1 ответ
0 голосов
Правильный ответ

//Лень было расписывать быструю сортировку, так что вот "пузырёк"
//Pascal ABC.NET 3.1 сборка 1219

Const
n=10;

Var
 i:integer;

 procedure booblesort(var ar:array of integer;n:integer);
 Var i,j:integer;
  begin
   for i:=0 to n-1 do
    for j:=i+1 to n do
     if (ar[i]>ar[j]) and (ar[i]>0) and (ar[j]>0) then swap(ar[i],ar[j]); 
 end;

 begin
 randomize;
 var ar:=ArrRandomInteger(n,-10,10);
 writeln('First array:');
 ar.Println;
 booblesort(ar,n-1);
 writeln('Final array:');
 ar.println;
end.

Пример работы программы:
First array:
-9 -5 5 -9 4 -3 -9 4 10 8
Final array:
-9 -5 4 -9 4 -3 -9 5 8 10

(38.6k баллов)