Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<math.h>
  3. #define PI 3.141592
  4.  
  5. double hatvany(double szam, int hanyadikra) {
  6. double seged = 1;
  7. for (int i = 0; i < (hanyadikra); i++) {
  8. seged = (double) (seged * szam);
  9. }
  10. return seged;
  11. }
  12.  
  13. int fakt(int szam) {
  14. int seged = 1;
  15. for (int i = 0; i < szam; i++) {
  16. seged = seged * (i + 1);
  17. }
  18. return seged;
  19. }
  20.  
  21. double szinusz(double szog, double epsilon) {
  22. while (szog >= 180) {
  23. szog = szog - 180;
  24. }
  25.  
  26. while (szog <= -180) {
  27. szog = szog + 180;
  28. }
  29.  
  30. if(szog > 90){
  31. szog = szog - 2*(szog - 90);
  32. }
  33.  
  34. if(szog < -90){
  35. szog = szog - 2*(szog + 90);
  36. }
  37.  
  38. double seged = szog / 360 * PI * 2;
  39. int i = 0;
  40. double szamlalo;
  41. double nevezo;
  42. double osszeg = 0;
  43. double szin = 0;
  44. double hasonlito;
  45. int elojel;
  46. do {
  47.  
  48. elojel = hatvany(-1, (i));
  49. szamlalo = hatvany(seged, (2 * i + 1));
  50. nevezo = fakt(2 * i + 1);
  51. osszeg = elojel * szamlalo / nevezo;
  52. hasonlito = osszeg;
  53. szin = szin + osszeg;
  54.  
  55. i++;
  56. } while (((osszeg > epsilon) || (-osszeg > epsilon))
  57. && (((osszeg - hasonlito) > epsilon)
  58. || ((osszeg - hasonlito) < epsilon)));
  59. return szin;
  60. }
  61.  
  62. int main() {
  63. float fok;
  64. float pont,pam;
  65. scanf("%f %f",&fok,&pont);
  66. pam = szinusz(fok, pont);
  67. printf("PAM: %f\n",pam);
  68. printf("Rendes: %f\n",sin(fok*PI/180));
  69.  
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement