home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / alb_c10 / chap_07 / ch07_03.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-08  |  1.4 KB  |  45 lines

  1. /*********************************************************************
  2. *  CH07_03.C                                 Directives et macros  *
  3. *                            Exemples     *
  4. *********************************************************************/
  5.  
  6. #include<stdio.h>
  7. #include<math.h>      /* pour pouvoir utiliser les fonctions floor()
  8.                atan() et pow().                         */
  9.                                     
  10. /* Useful definitions using PI by Wayne Hamilton             */
  11.  
  12. #ifndef PI          /* Θvite une Θventuelle double dΘfinition
  13.                et des effets de bord                    */
  14. #define PI         (4*atan(1))
  15. #endif
  16.  
  17. #define deg_rad(d) ((d)*PI/180)  /* convertit des degrΘs en radians.*/
  18. #define rad_deg(r) ((r)*180/PI)  /* convertit des radians en degrΘs.*/
  19.  
  20.  
  21. /* rounding macros by Dave Knapp & Thad Smith                 */
  22.  
  23. #define iround(x) floor((x)+0.5)
  24. /* arrondit un rΘel x α l'entier le plus proche.                    */
  25.  
  26. #define fround(n,d) (floor((n)*pow(10.,(d))+.5)/pow(10.,(d)))
  27. /* arrondit un rΘel n α d dΘcimales.                                */
  28.  
  29. main( void)
  30. {
  31.     double Arc1= 60, Arc2= PI/ 3, x, y;
  32.  
  33.     printf(" Conversion de degrΘs en radians:  Arc1= %lf\n"
  34.            " Conversion de radians en degrΘs:  Arc2= %lf",
  35.            deg_rad( Arc1), rad_deg( Arc2) );
  36.  
  37.         x= deg_rad( 30);
  38.     printf("\n\n Soit x= %lf , Arrondi α l'entier de x= %lf"
  39.            "\n\t\t Arrondi de x α 4 dΘcimales= %lf",
  40.            x, iround( x), fround( x, 4) );
  41.  
  42. }
  43.  
  44.  
  45.