PascalABC.NET 3.4.2, сборка 1864 от 11.11.2018
Внимание! Если программа не работает, обновите версию!
begin
var n := ReadInteger('n=');
var a := ArrRandom(n, -10, 10);
a.Println;
var k1, k2: integer;
var r := n div 3;
case n mod 3 of
0: (k1, k2) := (r, r);
1: (k1, k2) := (r + 1, r);
2: (k1, k2) := (r + 1, r + 1)
end;
a[:k1].Aggregate(int64(1), (p, q)-> p * q).Println;
a[k1:k1 + k2].Where(t -> t > 0).Sum.Println;
a.Reverse.Println;
a.Where(t -> t = 0).Count.Println
end.
n= 19
10 -6 -8 9 7 -2 -6 -9 9 8 2 0 4 10 1 -6 -5 6 -6
362880
23
-6 6 -5 -6 1 10 4 0 2 8 9 -9 -6 -2 7 9 -8 -6 10
1