1)
var
s : real;
i, n : integer;
begin
s := 0;
read (n);
for i := 1 to n do s := s + 1 / i;
writeln (s);
end.
2)
var
a, i : integer;
begin
a := 1;
for i := 1 to 8 do
begin
a := a * 2;
writeln ('Через ', i * 3, 'часов будет ', a, ' амеб');
end;
end.
3)
var
n, i : integer;
x, s : real;
begin
s := 0;
read (n, x);
for i := 1 to n do
s := s + sin (i * x);
writeln (s);
end.
4)
var
n, a, r, i : integer;
begin
r := 1;
read (a, n);
for i := 1 to n do r := r * a;
writeln (r);
end.
Алгоритм такой: просматриваем массив от конца к началу. И завершаем работу, как только встретим отрицательный элемент. А если так и не встретим до начала массива, значит таких элементов в массиве нет.
const
n=20; { размер массива }
var
a:array[1..n] of integer;
i:integer;
found:boolean;
begin
Randomize;
Writeln('Элементы массива');
for i:=1 to n do begin
a[i]:=Random(21)-10; { случайное число на интервале [-10;10] }
Write(a[i]:4)
end;
Writeln;
{ собственно задание }
i:=n;
repeat
found:=(a[i]<0);
Dec(i)
until (i=0) or found;
if found then Writeln('Номер элемента равен ',i+1)
else Writeln('Отрицательных элементов нет')
end.
Тестовое решение:
Элементы массива
-3 5 -2 3 2 -2 -5 7 9 -3 1 -2 -1 -6 1 -6 2 8 7 1
Номер элемента равен 16