Найти с заданной точностью сумму ряда Тейлора для sin(x) - Pascal
Формулировка задачи:
В общем, ребята, никак не могу решить задачу. Голову ломал недели две, но так и не пришел к омута правильному. Помогите, кто может, пожалуйста.
Вычислить сумму ряда
с точностью до eps.
Решение задачи: «Найти с заданной точностью сумму ряда Тейлора для sin(x)»
textual
Листинг программы
var eps,x,t,s:real;
n:integer;
begin
writeln('Введите x=');
readln(x);
repeat
write('Введите 0<eps<1 eps=');
readln(eps);
until(eps>0)and(eps<1);
n:=0;
t:=x;
s:=t;
while abs(t)>eps do
begin
n:=n+1;
t:=-t*x*x/(2*n)/(2*n+1);
s:=s+t;
end;
writeln('S=',s:0:5);
write('sin(x)=',sin(x):0:5);
end.
Объяснение кода листинга программы
- Объявление переменных:
eps- точность, с которой нужно найти сумму ряда Тейлора для sin(x)x- входное числоt- текущий член ряда Тейлора для sin(x)s- сумма ряда Тейлора для sin(x)n- переменная для подсчёта номера текущего члена ряда
- Ввод значения переменной
xс клавиатуры. - Повторять (цикл
repeat-until):- Запрос ввода значения переменной
epsс клавиатуры. - Продолжать цикл, пока значение
epsне будет удовлетворять условиям 0 <eps< 1.
- Запрос ввода значения переменной
- Инициализация переменных:
nустанавливается в 0 (номер текущего члена ряда).tустанавливается равнымx(первый член ряда).sустанавливается равнымt(начальная сумма ряда).
- Цикл
while:- Пока абсолютное значение
tбольше, чемeps:- Увеличивать значение
nна 1. - Рассчитывать новое значение
tна основе предыдущегоtпо формуле ряда Тейлора для sin(x). - Добавлять
tк общей суммеs.
- Увеличивать значение
- Пока абсолютное значение
- Вывод полученной суммы ряда Тейлора для sin(x) с точностью до 5 знаков после запятой.
- Вывод значения sin(x) с точностью до 5 знаков после запятой.