Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(20,-99,99); a.Println; a.Where(x->x<0).Concat(a.Where(x->x>=0)).Println end.
Замечание: Если стоит задача получить именно массив, а потом его вывести, можно написать так: // PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(20,-99,99); a.Println; a:=a.Where(x->x<0).Concat(a.Where(x->x>=0)).ToArray; a.Println end.
// PascalABC.NET 3.0,сборка 1076
begin
var n:=ReadInteger('Длина последовательности: ');
var a:=ArrRandom(n,-50,50);
Writeln('Исходная последовательность');
a.Println;
Writeln('Сумма элементов: ',a.Sum);
Write('Кол-во четных, кратных пяти: ');
Writeln(a.Where(x-> x mod 10 = 0).Count)
end.
Тестовое решение:
Длина последовательности: 20
Исходная последовательность
-4 21 -21 -23 14 -39 -12 1 -7 4 17 -45 30 -48 -19 -12 27 -46 -37 15
Сумма элементов: -184
Кол-во четных, кратных пяти: 1