Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- double hatvany(double szam, int hanyadikra) {
- double seged = 1;
- for (int i = 0; i < (hanyadikra); i++) {
- seged = (double) (seged * szam);
- }
- return seged;
- }
- unsigned long long int fakt(unsigned long long int szam) {
- unsigned long long int seged = 1;
- for (unsigned int i = 0; i < szam; i++) {
- seged = seged * (i + 1);
- }
- return seged;
- }
- double szinusz(double szog, double epsilon) {
- while (szog >= 180) {
- szog = szog - 180;
- }
- while (szog <= -180) {
- szog = szog + 180;
- }
- if(szog > 90){
- szog = szog - 2*(szog - 90);
- }
- if(szog < -90){
- szog = szog - 2*(szog + 90);
- }
- double seged = szog / 360 * 3.14159265358 * 2;
- int i = 0;
- double szamlalo;
- unsigned long long int nevezo;
- double osszeg = 0;
- double szin = 0;
- double hasonlito;
- int elojel;
- do {
- elojel = hatvany(-1, (i));
- szamlalo = hatvany(seged, (2 * i + 1));
- nevezo = fakt(2 * i + 1);
- osszeg = elojel * szamlalo / nevezo;
- hasonlito = osszeg;
- szin = szin + osszeg;
- /*cout << "Iteracio " << i << endl;
- cout << "Szamlalo: " << szamlalo << endl;
- cout << "Nevezo: " << nevezo << endl;
- cout << "Osszeg " << osszeg << endl;
- cout << "Szin " << szin << endl;*/
- i++;
- } while (((osszeg > epsilon) || (-osszeg > epsilon))
- && (((osszeg - hasonlito) > epsilon)
- || ((osszeg - hasonlito) < epsilon)));
- return szin;
- }
- int main() {
- double pam = 0;
- for (int i = -180; i < 181; i++) {
- pam = szinusz(i, 0.000000000000001);
- cout << i << " = " << pam << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement