Замечание:
Первое задание некорректно: не указано, от какого значения начинаются индексы. Тут правильнее было бы говорить о порядковом номере элемента.
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var k:array[1..1000] of real;
for var i:=1 to n do begin k[i]:=1/i; Print(k[i]) end
end.
Пример
n= 10
1 0.5 0.333333333333333 0.25 0.2 0.166666666666667 0.142857142857143 0.125 0.111111111111111 0.1
begin
var c:=ArrRandom(ReadInteger('n='),-99,99).Select(t->t/10).ToArray;
c.Println;
c.Transform(t->t>0?t+0.4:t=0?0.5:t);
var sn:=c.Where(t->t<0).Sum;<br> var pp:=c.Where(t->t>0).Aggregate(1.0,(x,y)->x*y);
Writeln('Сумма отрицательных ',sn,', произведение положительных ',pp)
end.
Пример
n= 15
6.7 4.2 6.3 -4.3 -4.6 -5.9 8.7 4.6 9.7 3 -9.7 8.9 5.4 -2.2 4.8
Сумма отрицательных -26.7, произведение положительных 95899635.466646