Вычислить с помощью рядов тейлора значение функции косинус х - C (СИ)
Формулировка задачи:
Добрый вечер. Задание: вычислить с помощью рядов тейлора значение функции косинус х. Написал программу, но после ввода значений с клавиатуры ничего не происходит. Помогите ...
#include<stdio.h>
#include<conio.h>
void main()
{
int k=1;
double x,d,s,e, q;
printf("x="); scanf("%lf", &x);
printf("e="); scanf("%lf", &e);
printf("cos(%lf)=", x);
while(x>31.416) x=x-31.416;
while(x<-31.416) x=x+31.416;
s=1;
d=1;
q=1;
while(d>e);
{
k=k+1;
d=d*x*x/((2*k*-1)*(2*k));
s=s+d;
}
printf("%lf", s);
getch();
}Решение задачи: «Вычислить с помощью рядов тейлора значение функции косинус х»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int main(int args, char *argv[])
{
int k = 0;
double x, e, d, s;
printf("x = ");
scanf("%lf", &x);
printf("e = ");
scanf("%lf", &e);
printf("cos(%lf) = ", x);
while (31.416 < x) {
x = x - 31.416;
}
while (x < -31.416) {
x = x + 31.416;
}
s = 1;
d = 1;
while (e < fabs(d)) {
k = k + 1;
d = (-d) * x * x / ((2 * k - 1) * (2 * k));
s = s + d;
}
printf("%lf\n", s);
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется вычисление значения функции косинус х с помощью рядов тейлора. Вот список действий, которые выполняются в коде:
- Объявляются переменные:
- k (номер строки 2, значение 0)
- x (номер строки 3, значение не определено)
- e (номер строки 4, значение не определено)
- d (номер строки 5, значение 1)
- s (номер строки 6, значение 0)
- Пользователю предлагается ввести значение переменной x:
- Выводится сообщение
x = - Пользователь вводит значение x с клавиатуры
- Значение x сохраняется в переменной x
- Выводится сообщение
- Пользователю предлагается ввести значение переменной e:
- Выводится сообщение
e = - Пользователь вводит значение e с клавиатуры
- Значение e сохраняется в переменной e
- Выводится сообщение
- Вычисляется значение функции косинус х:
- Выводится сообщение
cos(%lf) =, x - Переменная x принимает значение 0
- Выводится сообщение
- Переменная x изменяется в цикле, пока ее значение больше 31.416:
- Цикл выполняется до тех пор, пока 31.416 < x
- Если условие истинно, переменная x уменьшается на 31.416
- Переменная x изменяется в цикле, пока ее значение меньше -31.416:
- Цикл выполняется до тех пор, пока x < -31.416
- Если условие истинно, переменная x увеличивается на 31.416
- Переменные s и d инициализируются значением 1:
- Значение переменной s устанавливается равным 1
- Значение переменной d устанавливается равным 1
- Переменная e сравнивается с модулем значения переменной d в цикле, пока e < fabs(d):
- Цикл выполняется до тех пор, пока условие истинно
- Если условие истинно, переменная k увеличивается на 1
- Значение переменной d обновляется в соответствии с формулой ряда Тейлора
- Значение переменной s обновляется путем добавления значения переменной d
- Вычисляется окончательное значение переменной s:
- Значение переменной s выводится на экран
- Программа завершается:
- Возвращается значение 0, указывающее на успешное выполнение программы