Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.
// 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, сборка 1139 от 10.01.2016 begin var n:=ReadInteger('Количество элементов в массиве: '); var a:=ArrRandom(n,-50,50); a.Println(','); Writeln('Четные элементы: '); var i:=1; while i<n do begin Write(a[i],' '); Inc(i,2) end; Writeln; Writeln('Нечетные элементы: '); i:=0; while i<n-1 do begin Write(a[i],' '); Inc(i,2) end; Writeln end.
Тестовое решение: Количество элементов в массиве: 10 15,-18,-29,-25,46,21,-8,-17,-9,15 Четные элементы: -18 -25 21 -17 15 Нечетные элементы: 15 -29 46 -8 -9
Ну вот как то так