Const N=10; Var A:array[1..N] of real; i:integer; S,P:real; Begin S:=0; P:=1; For i:= 1 to N do Begin A[i]:=random()*100; Write(A[i]:0:2,' '); if i mod 2 <> 0 then Begin S:=S+A[i]; P:=P*A[i]; End; End; WriteLn; WriteLn('S = ',S:0:2); WriteLn('P = ',P:0:2); End.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandomReal(ReadInteger('n='),1,50);
a.Println;
Writeln('Сумма нечетных элементов : ',
a.Where((x,i)->i.IsEven).Sum);
Writeln('Произведение нечетных элементов: ',
a.Where((x,i)->i.IsEven).Aggregate(1.0,(p,q)->p*q))
end.
Пример
n= 8
15.4810654863161 23.0172746381803 33.7221310123439 43.045114823638 9.12741185358139 5.36693139344777 24.408098445464 16.3833775466231
Сумма нечетных элементов : 82.7387067977054
Произведение нечетных элементов: 116304.750204143
N=10;
Var
A:array[1..N] of real;
i:integer;
S,P:real;
Begin
S:=0;
P:=1;
For i:= 1 to N do
Begin
A[i]:=random()*100;
Write(A[i]:0:2,' ');
if i mod 2 <> 0 then
Begin
S:=S+A[i];
P:=P*A[i];
End;
End;
WriteLn;
WriteLn('S = ',S:0:2);
WriteLn('P = ',P:0:2);
End.