
Вопрос задан 05.01.2019 в 22:31.
Предмет Информатика.
Спрашивает Зайчикова Кристина.
" Дан одномерный массив целых чисел 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, сборка 1386 от 17.02.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var b:=(a.Where(x->x<0).SortedDescending)+(a.Where(x->x>0).Sorted);
b.Println
end.
Пример
n= 10
-31 -72 -48 28 24 -98 -32 -1 56 -72
-1 -31 -32 -48 -72 -72 -98 24 28 56
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var b:=(a.Where(x->x<0).SortedDescending)+(a.Where(x->x>0).Sorted);
b.Println
end.
Пример
n= 10
-31 -72 -48 28 24 -98 -32 -1 56 -72
-1 -31 -32 -48 -72 -72 -98 24 28 56



Отвечает Стрекалов Антон.
//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.
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.


Топ вопросов за вчера в категории Информатика

Информатика 2157

Информатика 389

Информатика 19

Информатика 53

Информатика 36

Информатика 13

Информатика 38
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili