// PascalABC.NET 3.2, сборка 1431 от 28.04.2017 // Внимание! Если программа не работает, обновите версию!
begin (var s,var p):=(int64(0),BigInteger(1)); foreach var x in ReadSeqIntegerWhile(k->k<>0) do if x>0 then s+=x else p*=x; Writeln('S=',s,', П=',p) end.
// Внимание! Если программа не работает, обновите версию!
begin
(var s,var p):=(int64(0),BigInteger(1));
foreach var x in ReadSeqIntegerWhile(k->k<>0) do
if x>0 then s+=x
else p*=x;
Writeln('S=',s,', П=',p)
end.
Пример
24 -15 -42 18 35 -14 7 0 12 -206 138 -232 0
S=84, П=-8820
Замечание: числа 12 -206 138 -232 0 после нуля введены намерено, чтобы показать, что отсечение приема данных происходит по первому нулю.