ОЧЕНЬ НУЖНА ! 1) ЩО ВІДБУДЕТЬСЯ ПІСЛЯ ВИКОНАННЯ ФРАГМЕНТА ПРОГРАМИ: KIL:=0; FOR I:=1 TO 5 DO IF A[I]>0 THEN KIL:=KIL+1; 2) ПРИВЕДЕНА ПРОЦЕДУРА ВПОРЯДКУВАННЯ ЕЛЕМЕНТІВ МАСИВУ ЗА ЗРОСТАННЯМ, АЛЕ ОДИН З ФРАГМЕНТІВ ТРЕБА ВПИСАТИ САМОСТІЙНО: PROCEDURE TFORM1.BUTTON1CLICK(SENDER: TOBJECT); VAR A: ARRAY [1..9] OF REAL; P:REAL; N, I,J: INTEGER; BEGIN N:=9; FOR I:=1 TO N DO A[I]:=STRTOFLOAT(MEMO1.LINES[I-1]); FOR J:=1 TO N-1 DO FOR I:=1 TO N-J DO …………………………………………………………………………… ……………………………………………………………………………. MEMO2.CLEAR; FOR I := 1 TO N DO MEMO2.LINES. APPEND(FLOATTOSTR(A[I])); END;
// Внимание! Если программа не работает, обновите версию!
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
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