import math
# Параметры из варианта 10
x_start = 0.1
x_end = 1.0
n = 10
steps = 10 число точек вывода на интервале
dx = (x_end - x_start) / (steps - 1) if steps > 1 else 0
# Вывод шапки таблицы
print("-" * 65)
print(f"| {'x':^10} | {'Сумма (S)':^20} | {'Функция (y)':^20} |")
print("-" * 65)
x = x_start
for _ in range(steps):
# Вычисление суммы ряда S = 1 + cos(x)/1! + cos(x)/2! + ... + cos(x)/n!
s = 1.0 # Первое слагаемое при i = 0 (cos(x)^0 / 0! = 1)
cos_x = math.cos(x)
fact = 1.0
for i in range(1, n + 1):
fact *= i # факториал i!
# С учетом того, что в формуле числитель cos(x) (или степенной, судя по структуре аналогичных рядов,
# здесь идет накопление через факториал в знаменателе)
s += cos_x / fact
# Вычисление эталонной функции y = e^(cos x) * cos(sin x)
y = math.exp(math.cos(x)) * math.cos(math.sin(x))
# Вывод результатов в строку таблицы
print(f"| {x:10.4f} | {s:20.6f} | {y:20.6f} |")
x += dx
print("-" * 65)