** Паскале. Задан массив из N действительных чисел(N может быть задано не более 25)....

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

На Паскале.
Задан массив из N действительных чисел(N может быть задано не более 25). Отрицательные
числа в заданном массиве упорядочить по убыванию их значений. Взаимное расположение
отрицательных и положительных чисел сохранить. Вывести на экран исходный и новый
массивы.


Информатика (284 баллов) | 27 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Const n=20;
var 
a,b:array[1..n] of integer;
i,j,k,m,c:integer; 
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(51)-25;
  write(a[i]:5);
 end;
writeln;
j:=0;
for i:=1 to n do
 if a[i]<0 then begin j:=j+1; b[j]:=a[i]; end;<br>m:=j;
for k := 1 to m-1 do
  for i := 1 to m-k do
     if (b[i]       begin
       c:=b[i]; b[i]:=b[i+1]; b[i+1]:=c;
       end;
writeln('Вспомогательный массив:');
for i:=1 to m do write(b[i]:5);
writeln;
j:=0;
for i:=1 to n do
 if a[i]<0 then begin j:=j+1; a[i]:=b[j]; end;<br>writeln('Полученный массив:');
for i:=1 to n do write(a[i]:5);
writeln;
end.

Пример:
Исходный массив:
  -15   -8   -6  -13   15   24    5   -2   14   -1   19   -2   -7   -8  -23   20   -2    7   -2  -10
Вспомогательный массив:
   -1   -2   -2   -2   -2   -6   -7   -8   -8  -10  -13  -15  -23
Полученный массив:
   -1   -2   -2   -2   15   24    5   -2   14   -6   19   -7   -8   -8  -10   20  -13    7  -15  -23

(194k баллов)