Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.91 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. enum electric_lamps{
  5.     Incandescent_lamps,
  6.     Compact_fluorescent_lamps,
  7.     Halogen_lamps,
  8.     Metal_halide_Lamps,
  9.     Light_Emitting_Diode,
  10.     Fluorescent_tube,
  11.     Neon_lamps,
  12.     High_intensity_discharge_lamps
  13. };
  14.  
  15. typedef struct rectangle rectangle;
  16.  
  17. struct rectangle{
  18.     double points_[3][2];
  19.    
  20.     double (*get_perimeter)(rectangle*);
  21.     double (*get_square)(rectangle*);
  22. };
  23.  
  24. double sqr(double d1){
  25.     return d1 * d1;
  26. }
  27.  
  28. double get_perimeter(rectangle* rect){
  29.     return 2 * sqrt(sqr(rect->points_[0][0] - rect->points_[1][0]) +
  30.                 sqr(rect->points_[0][1] - rect->points_[1][1])) +
  31.             2 * sqrt(sqr(rect->points_[0][0] - rect->points_[2][0]) +
  32.                 sqr(rect->points_[0][1] - rect->points_[2][1]));
  33. }
  34.  
  35. double get_square(rectangle* rect){
  36.     return  sqrt(sqr(rect->points_[0][0] - rect->points_[1][0]) +
  37.                     sqr(rect->points_[0][1] - rect->points_[1][1])) *
  38.             sqrt(sqr(rect->points_[0][0] - rect->points_[2][0]) +
  39.              sqr(rect->points_[0][1] - rect->points_[2][1]));
  40. }
  41.  
  42. struct MP3{
  43.     unsigned Play : 1;
  44.     unsigned Pause : 1;
  45.     unsigned Record : 1;
  46. };
  47.  
  48. typedef union check check;
  49.  
  50. union check{
  51.     char input;
  52.     struct MP3 a;
  53. };
  54.  
  55. int main(){
  56.     enum electric_lamps el = Halogen_lamps;
  57.     printf("%d\n", el);
  58.    
  59.     rectangle rect = {.points_ = {{1, 0}, {0, 1}, {1, 1}},
  60.         .get_perimeter = get_perimeter,
  61.         .get_square = get_square
  62.     };
  63.    
  64.     double p = rect.get_perimeter(&rect);
  65.     double s = rect.get_square(&rect);
  66.     printf("perimeter is %lf\n", p);
  67.     printf("square is %lf\n", s);
  68.    
  69.     int hex;
  70.     printf("enter MP3 options in hex:\n");
  71.     scanf("%x", &hex);
  72.    
  73.     check ch;
  74.     ch.input = hex;
  75.     printf("Play: %d, Pause: %d, Record: %d\n",
  76.            ch.a.Play, ch.a.Pause, ch.a.Record);
  77.    
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement