home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_11_04 / 1104040a < prev    next >
Text File  |  1993-02-27  |  1KB  |  54 lines

  1. int sum(a,b, term)
  2. int a,b,  (*term) ();
  3. {
  4.         int i, sum = 0;
  5.        for (i=a; i<b; i++) 
  6.                 sum = sum + (*term) (i);
  7.        return sum;
  8. }
  9.  
  10. double dsum(a,b, term)
  11. int a,b;
  12. double (*term) ();
  13. {
  14.         int i;
  15.         double sum = 0;
  16.         for (i=a; i<b; i++)
  17.                 sum = sum + (*term) (i);
  18.         return sum;
  19. }
  20.  
  21. double pi(x)
  22. int x;
  23. {       return 1.0/(16*x*x + 16*x + 3); }
  24.  
  25. int id(x)
  26. int x;
  27. {       return x; }
  28.  
  29. int sq(x)
  30. int x;
  31. {       return x*x;  }
  32.  
  33. int main(argc, argv)
  34. int argc;
  35. char **argv;
  36. {
  37.         int n,x;
  38.         char * pid, *psq, *ppi;
  39.  
  40.         if (argc < 2) return -1;
  41.         n = atoi(argv[1]);
  42.         x = atoi(argv[2]);
  43.         
  44.         pid = (char *) id;
  45.         psq = (char *) sq;
  46.         printf("%d is the sum of %d to %d\n", sum(n,x,pid), n, x);
  47.         printf("%d is the sum of squares from %d to %d\n\n", sum(n,x,psq),n,x);
  48.         ppi = (char *) pi;
  49.         printf("%10.8f is an approximation of PI\n\n", 8*dsum(n,x,ppi));
  50.  
  51.         return 0;
  52. }
  53.  
  54.