Вычисление синуса и косинуса есть в модуле Math.h Вычисление косинуса и синуса через разложение Тейлора приведено в области имен Tailor
Код | #include <iostream> #include <math.h>
// Число Пи - для перехода от радиан к градусам #define PI 3.1415926535897932384626433832795
// Вычисление косинуса и синуса через разложение Тейлора: namespace Tailor { // Точность вычислений #define TOLERANCE 10e-10 float Sin(float x) { float add = x; // первый член ряда float mul = -(x*x); // Модификатор float result = x; // результат
for (int i=3;(add > TOLERANCE) || (add < -TOLERANCE); i += 2) { add = add * mul/(i * (i - 1)); // превращаем член ряда в следующий result += add; } return result; } float Cos(float x) { float mul = -(x*x); // Модификатор float add = mul/2; // Второй член float result = 1 + add; // Результат
for (int i = 4;(add > TOLERANCE) || (add < -TOLERANCE); i += 2) { add = add * mul/(i * (i - 1)); // Следующий член ряда result += add; } return result; } }
int main(int argc, char *argv[]) { float X; // Введите Х printf("Input X = "); scanf("%f", &X); // Синус (в радианах) printf("\n\nsin(%1.2f[rad]) == %1.4f\n", X, sin(X)); // Синус (в градусах) printf("sin(%1.2f[deg]) == %1.4f\n", X, sin((X * PI)/180)); // Коинус (в радианах) printf("\ncos(%1.2f[rad]) == %1.4f\n", X, cos(X)); // Косинус (в градусах) printf("cos(%1.2f[deg]) == %1.4f\n", X, cos((X * PI)/180)); using namespace Tailor; printf("\n\nTailor:\n");
// Синус (в радианах) printf("\nsin(%1.2f[rad]) == %1.4f\n", X, Sin(X)); // Синус (в градусах) printf("sin(%1.2f[deg]) == %1.4f\n", X, Sin((X * PI)/180)); // Коинус (в радианах) printf("\ncos(%1.2f[rad]) == %1.4f\n", X, Cos(X)); // Косинус (в градусах) printf("cos(%1.2f[deg]) == %1.4f\n", X, Cos((X * PI)/180));
system("PAUSE"); return 0; }
|
Удачи! |