» Дан одномерный массив целых чисел A[1..n]. Напишите программу, которая перепишет в массив B[1..n] сначала в убывающем порядке все отрицательные элементы массива А, а затем в возрастающем порядке все положительные элементы массива А. Например, для A = (4, -8, 7, -6, 0, -7, 5), получим B = (-6, -7, -8, 0, 4, 5, 7).»

Вопрос школьника по предмету Информатика

» Дан одномерный массив целых чисел A[1..n]. Напишите программу, которая перепишет в массив B[1..n] сначала в убывающем порядке все отрицательные элементы массива А, а затем в возрастающем порядке все положительные элементы массива А. Например, для A = (4, -8, 7, -6, 0, -7, 5), получим B = (-6, -7, -8, 0, 4, 5, 7).»

Ответ учителя по предмету Информатика

//PascalABC.Net 3.2

procedure mysort(var mas: array of integer; int: integer);

begin

setLength(mas, length(mas)+1);

mas[length(mas)-1]:=int;

end;

begin

var a:=readarrinteger(‘Вводите A:’, readinteger(‘n =’));

var a1, a2: array of integer;

for var i:=0 to length(a)-1 do if a[i]<0 then

mysort(a1, a[i]) else mysort(a2, a[i]);

if length(a1)>0 then begin

sort(a1);

for var i:=length(a1)-1 downto 0 do a[length(a1)-1-i]:=a1[i];

end;

if length(a2)>0 then begin

sort(a2);

for var i:=length(a1) to length(a)-1 do a[i]:=a2[i-length(a1)];

end;

write (a);

end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей