Бхаскара грех функция - PullRequest
       12

Бхаскара грех функция

0 голосов
/ 07 октября 2018
#include <iostream>
using namespace std;

int main()
{
const float pi = 3.14159;
float sin, cos, tan, sec, csc, cot;

double x = 0.0;

sin = (16 * x * (pi - x)) / (5 * pi * pi - 4 * pi * (pi - x));
cos = (pi * pi - 4 * x * x) / (pi * pi + x * x);
tan = sin / cos;
sec = 1 / cos;
csc = 1 / sin;
cot = 1 / tan;

cout << "Enter radians: ";
cin >> x ;
cout << "The sin of " << x << " is: " <<endl;
cout << sin;

}

Я в основном пытаюсь ввести значение 'x' и вернуть грех или т. Д. Указанного числа.У меня проблемы с попыткой выяснить, как мне отформатировать это, чтобы дать мне правильный номер.В конечном итоге я заставлю пользователя выбирать, какую функцию он хочет использовать с помощью операторов else и if.любой совет?

1 Ответ

0 голосов
/ 08 октября 2018

Вероятно, вам следует попытаться определить вещи по модульному принципу, чтобы вам было легче повторно использовать и тестировать.Как уже отмечалось в комментариях, вы должны использовать двойные числа вместо числа с плавающей точкой.Причина этого проста: у double s точность в два раза больше float s.Чуть более читаемый код для вашей программы будет выглядеть следующим образом:

#include <iostream>
#include <cmath>
using namespace std;

double bhaskaraSin(double x) {
  return (16 * x * (M_PI - x)) / (5 * M_PI * M_PI - (4 * x * (M_PI - x)));
}

double bhaskaraCos(double x) {
  return (M_PI * M_PI - 4 * x * x) / (M_PI * M_PI + x * x);
}

double bhaskaraTan(double x) {
  return bhaskaraSin(x) / bhaskaraCos(x);
}

// Similar for sec, csc and cot...

int main() {
  double x;
  cout << "Enter radians: ";
  cin >> x;
  cout << "The sin of " << x << " is: " << bhaskaraSin(x) << endl;
  return 0;
}

Я бы посоветовал вам рассмотреть возможность использования оператора switch-case вместо if-else, чтобы позволить пользователюрешить, какую функцию применять.

...