<em>// PascalABC.NET 3.2, сборка 1353 от 27.11.2016</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var k:=ReadInteger('k=');
var a:=ReadArrInteger('>',k);
var sp:=a.Where(x->x>0).Sum;
var po:=a.Where(x->x<0).Aggregate(BigInteger(1),(p,q)->p*q);
var b:=a.Select(x->x>0?po:(x<0?sp:0)).ToArray;
b.Println
end.
<u>Пример</u>
k= 10
> 9 20 -11 5 0 16 8 11 2 -17
187 187 71 187 0 187 187 187 187 71
3). Подставим в первый оператор значение х=25
if (25=10) or (25<2) then y:=5 else y:=10;
Теперь вычислим значение логического выражения, стоящего после if
false or false дает false.
Условный оператор if при false передаст управление оператору, стоящему после else и выполнится y:=10;
Это значение (10) и будет выведено.
4) Количество повторений цикла вида for i=a to b вычисляется по формуле
b-a+1.
Подставляем значения: 5-0+1 - 6. Получается, что 6 раз.
Два фрагмента
Верхний и нижний подсвечены синим цветом