Дан целочисленный массив А [n].Определить произведение элементов массива с k1 по k2...

0 голосов
49 просмотров

Дан целочисленный массив А [n].Определить произведение элементов массива с k1 по k2 (k2>k1)


Информатика (61 баллов) | 49 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1600 от 23.12.2017
// Внимание! Если программа не работает, обновите версию!

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.

Пример
n= 17
-49 33 -50 34 -21 -3 -16 -39 8 -27 -28 11 -12 -33 47 9 -20
Границы номеров элементов k1 и k2: 3 15
П=-82750680146534400
(150k баллов)
0 голосов

Const m=200;
var a: array[1..m] of integer;
    i,k1,k2,p,n: integer;
begin
   write('количество элементов массива:  ');
   readln(n);
   randomize;
   write('массив:  ');
   for i:=1 to n do
   begin
     a[i]:=random(-40,40);
     write(a[i],' ');
   end;
   writeln;
   write('k1 k2 через пробел: ');  readln(k1,k2);
   p:=1;
   if (k1 in [1..n]) and (k2 in [1..n]) and (k2>k1) then 
   begin
     for i:=k1 to k2 do p:=p*a[i];
     writeln('произведение: ',p);
   end
   else writeln('недопустимые значения k1 и k2  ',k1,' ',k2);  
end.   

количество элементов массива:  10
массив:  18 -40 5 -5 -22 -1 -3 22 -11 37 
k1 k2 через пробел: 3 5
произведение: 550




(9.7k баллов)