Proc 40. Описать функцию \(\text{Exp1}(x, \varepsilon)\) вещественного типа (параметры \(x, \varepsilon\) -  вещественные, \(\varepsilon > 0\)), находящую приближенное значение функции exp(x):

\[\text{exp}(x) = 1 + x + x^2/(2!) + x^3/(3!) + ... + x^n/(n!) + ...\]

(\(n! = 1\cdot 2\cdot ... \cdot n\)). В сумме учитывать все слагаемые, большие \(\varepsilon\). С помощью Exp1 найти приближенное значение экспоненты для данного x при шести данных \(\varepsilon\).

Решение на Python 3

import random
import math

def Exp1(x,eps):
if eps <= 0:
print("Epsilon should be greater than 0")
y = x
exp = 1.0 + x
i = 2
while abs(y) > eps:
y *= x / i
i += 1
exp += y
return exp

eps = 0.01
for i in range(0, 6):
#x = -0.5
#x = 2
x = 1
print("eps = ", eps, "; e ^",x,"=",Exp1(x,eps),";",math.exp(x))
eps /= 10