Advertisement
ppupil2

workshop 4

Mar 5th, 2020
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.86 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <conio.h>
  5.  
  6. double myExp(double x, int n); // calculate exp(x) with n
  7. double myExp(double x, double epsi); // calculate exp(x) with epsilon
  8. double myPi(double epsi); // calculate exp(x) with epsilon
  9. double factorial(int a); // calculate factorial of a
  10. double mySin(double x, double epsi); // calculate sin(x) with epsilon
  11. double myCos(double x, double epsi); // calculate cos(x) with epsilon
  12.  
  13. int main() {
  14.     double x, epsi;
  15.     int n;
  16.     char ch, ch1, ch2;
  17.     // epsi = 0.00001; n = 1000;
  18.    
  19.     /* input & check validation*/
  20.     while (1)
  21.     {
  22.         printf("Enter x, epsi, n: ");
  23.         fflush(stdin);
  24.         scanf("%lf%c%lf%c%d%c", &x, &ch, &epsi, &ch1, &n, &ch2);
  25.         if (ch == ' ' && ch1 == ' ' && ch2 == '\n') {
  26.             break;
  27.         }
  28.         else {
  29.             printf("Invalid input, please re-enter!\n");
  30.         }
  31.     }
  32.    
  33.     /*Q1*/
  34.     printf("\nQ1:\n\n");
  35.     printf("   myExp(%.1lf, %d) = %lf\n", x, n, myExp(x,n));  
  36.     printf("   myExp(%.1lf, %lf) = %lf\n", x, epsi, myExp(x,epsi));
  37.     printf("   exp(%.1lf) = %lf\n", x, exp(x));
  38.    
  39.     /*Q2*/
  40.     printf("\n--------------------------------------------------------\nQ2:\n\n");
  41.     printf("   myPi(%lf) = %lf\n", epsi, myPi(epsi));
  42.    
  43.     /*Q3*/
  44.     printf("\n--------------------------------------------------------\nQ3:\n\n");
  45.     printf("   mySin(%.1lf, %lf) = %lf\n",x, epsi, mySin(x,epsi));
  46.     printf("   sin(%.1lf) = %lf\n", x, sin(x));
  47.    
  48.     /*Q4*/
  49.     printf("\n--------------------------------------------------------\nQ4:\n\n");
  50.     printf("   myCos(%.1lf, %lf) = %lf\n",x, epsi, myCos(x,epsi));
  51.     printf("   cos(%.1lf) = %lf\n", x, cos(x));
  52.    
  53.     return(0);
  54. }
  55.  
  56. double myExp(double x, int n) { // calculate exp(x) with n
  57.     double S, a;
  58.    
  59.     S = 1; a = 1;
  60.     for (int i = 1; i<= n; i++) {
  61.         a *= (x/i);
  62.         S += a;
  63.     }
  64.    
  65.     return (S);
  66. }
  67.  
  68. double myExp(double x, double epsi) { // calculate exp(x) with epsilon
  69.     double S, a; int n;
  70.    
  71.     S = 1; a = 1; n = 1;
  72.     while (epsi < fabs(a)) {
  73.         a *= (x/(n));
  74.         S += a;
  75.         n++;
  76.     }
  77.    
  78.     return (S);
  79. }
  80.  
  81. double myPi(double epsi) { // calculate Pi with epsilon
  82.     double S, pi, a; int n;
  83.    
  84.     S = 0; n = 0;
  85.     do {
  86.         a = pow(-1,n) / (2*n+1);
  87.         S += a;
  88.         n++;
  89.     } while (epsi < fabs(a));
  90.     S *= 4;
  91.    
  92.     return (S);
  93. }
  94.  
  95. double factorial(int a) { // calculate factorial of a
  96.     double f = 1;
  97.    
  98.     if (a == 0) {
  99.         return (1);
  100.     }
  101.     else {
  102.         for (int i = 1; i<=a; i++) {
  103.             f *= i;
  104.         }
  105.         return (f);
  106.     }
  107. }
  108.  
  109. double mySin(double x, double epsi) { // calculate sin(x) with epsilon
  110.     double si, a; int n;
  111.    
  112.     si = 0; n = 0;
  113.     do {
  114.         a = pow(-1,n) * pow(x,2*n+1) / factorial(2*n+1);
  115.         si += a;
  116.         n++;
  117.     } while (epsi < fabs(a));
  118.    
  119.     return (si);   
  120. }
  121.  
  122. double myCos(double x, double epsi) { // calculate cos(x) with epsilon
  123.     double co, a; int n;
  124.    
  125.     co = 0; n = 0;
  126.     do {
  127.         a = pow(-1,n) * pow(x,2*n) / factorial(2*n);
  128.         co += a;
  129.         n++;
  130.     } while (epsi < fabs(a));
  131.    
  132.     return (co);   
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement