Каждый следующий член с знаменателем n! получается умножением предыдущего на . Очевидно, последовательность убывает по модулю, так что достаточно пройтись циклом, и, если новый вычисленный член по модулю меньше 0,0001, остановиться.
Окажется, что уже пятый член меньше ε, так что выведется только 4 числа.
Код:
#include <iostream>
#include <cmath>
int main() {
const double x = 0.5;
const double eps = 0.0001;
double term = x * x / 2;
for (int n = 3; std::abs(term) > eps; n++) {
std::cout << term << " ";
term *= -x/n;
}
}
Вывод:
0.125 -0.0208333 0.00260417 -0.000260417
Var mass:array[1..20] of integer;
P,i:integer;
begin
p:=1;
'Заполнение массива
randomize;
for i:=1 to 20 do begin
mass[i]:=random(30)-15;
write(mass[i],' ');
if mass[i]<0 then p:=p*mass[i]
end;
writeln('Произведение отрицательных чисел = ', p);
writeln('Новый массив');
for i:=1 to 20 do begin
if mass[i]<0 then mass[i]:=abs(mass[i]);
write(mass[i],' ');
end;
readln;
end.