<em>// PascalABC.NET 3.3, сборка 1600 от 23.12.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var (k1,k2):=ReadInteger2('Границы номеров элементов k1 и k2:');
if (k1>0) and (k2<=a.Length) and (k2>k1) then
Writeln('П=',a[k1-1:k2].Aggregate(BigInteger(1),(p,q)->p*q))
else Writeln('Неверно заданы k1,k2')
end.
<u>Пример</u>
n= 17
-49 33 -50 34 -21 -3 -16 -39 8 -27 -28 11 -12 -33 47 9 -20
Границы номеров элементов k1 и k2: 3 15
П=-82750680146534400
1)100001110
2)1000101111
3)1100110000
это в двоичном коде
const n = 10;
var a: array [1..N] of real;
i, k: integer;
s: real;
begin
randomize;
for i:=1 to n do
begin
a[i]:= random(10000, 50000);
write(a[i]:8:2,' ');
end;
writeln;
s:=0;
for i:=1 to n do s:=s+a[i];
s:=s/n;
writeln('ср.=',s:8:2);
k:=0;
for i:=1 to n do
if a[i]<s then a[i]:=a[i]*1.1
else if a[i]>s then k:=k+1;
writeln('k=',k);
for i:=1 to n do write(a[i]:8:2,' ');
writeln;
end.
Пример:
34973.00 16546.00 13691.00 41315.00 24650.00 44459.00 18117.00 37906.00 19255.00 17842.00
ср.=26875.40
k=4
34973.00 18200.60 15060.10 41315.00 27115.00 44459.00 19928.70 37906.00 21180.50 19626.20
1) 128000:8=16000 байт/c
2) 625*1024=640000 байт
3) 640000:16000=40 с - t1
4) 512000:8=64000 байт/с
5) 640000:64000=10 с - t2
6) 40-10=30
Ответ на 30 с