Advertisement
Guest User

nene

a guest
Sep 21st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. const double PI=4*atan(1);
  5.  
  6. class Ugao{
  7.     double rad;
  8.  
  9.     public:
  10.     Ugao(double radijani=0){
  11.         Postavi(radijani);
  12.     }
  13.     Ugao(int stepeni, int minute, int sekunde){
  14.         Postavi(stepeni,minute,sekunde);
  15.     }
  16.     void Postavi(double radijani);
  17.     void Postavi(int stepeni, int minute, int sekunde);
  18.     double DajRadijane() const { return rad;}
  19.     int DajStepene() const {return (int)((DajRadijane()*PI)/180);}
  20.     int DajMinute() const {return (int)(((DajRadijane()*PI)/180-DajStepene())*60);}
  21.     int DajSekunde() const {return ((((DajRadijane()*PI)/180-DajStepene())*60)-DajMinute())*60; }
  22.  
  23.     friend Ugao operator +(const Ugao &u1, const Ugao &u2);
  24.     friend Ugao operator -(const Ugao &u1, const Ugao &u2);
  25.     friend Ugao operator *(const Ugao &u, int x);
  26.     friend Ugao operator *(int x, const Ugao &u);
  27.     friend bool operator <(const Ugao &u1, const Ugao &u2){
  28.     return u1.DajRadijane()<u2.DajRadijane();
  29.     }
  30.     friend Ugao operator += (Ugao &u1, const Ugao &u2){ return Ugao(u1.rad+u2.rad);}
  31.     friend Ugao operator -= (const Ugao &u1, const Ugao &u2){ return Ugao(u1.rad-u2.rad);}
  32.     friend Ugao operator * (Ugao &u, int x){
  33.     return {u.rad*x};
  34. }
  35. };
  36.  
  37. Ugao operator +(const Ugao &u1, const Ugao &u2){
  38.     return {u1.DajRadijane() + u2.DajRadijane()};
  39. }
  40. Ugao operator -(const Ugao &u1, const Ugao &u2){
  41.     return {u1.DajRadijane() - u2.DajRadijane()};
  42. }
  43. Ugao operator *(const Ugao &u, int x){
  44.     return Ugao(u.rad * x);
  45. }
  46. Ugao operator *(int x, const Ugao &u){
  47.     return Ugao(u.rad * x);
  48. }
  49.  
  50.  
  51.  
  52. void Ugao::Postavi(double radijani){
  53.     if(radijani < 0)
  54.         while(radijani < 0)
  55.             radijani += 2 * PI;
  56.     else
  57.         while(radijani > 2 * PI)
  58.             radijani -= 2 * PI;
  59.     Ugao::rad=radijani;
  60. }
  61. void Ugao::Postavi(int stepeni, int minute, int sekunde)
  62. {
  63.     if(sekunde < 0)
  64.         while(sekunde < 0) {
  65.             minute--;
  66.             sekunde += 60;
  67.         }
  68.     else if(sekunde > 60)
  69.         while(sekunde > 60) {
  70.             sekunde -= 60;
  71.             minute++;
  72.         }
  73.  
  74.     if(minute < 0)
  75.         while(minute < 0) {
  76.             stepeni--;
  77.             minute += 60;
  78.         }
  79.     else if(minute > 60)
  80.         while(minute > 60) {
  81.             stepeni++;
  82.             minute -= 60;
  83.         }
  84.     if(stepeni < 0)
  85.         while(stepeni < 0)
  86.             stepeni += 360;
  87.     else if(stepeni > 360)
  88.         while(stepeni > 360)
  89.             stepeni -= 360;
  90.  
  91.     if(stepeni == 360)stepeni=0;
  92.     Ugao::rad=((((double)(sekunde))/3600+((double)(minute))/60+stepeni)*180)/PI;
  93.  
  94. }
  95.  
  96.  
  97.  
  98. int main ()
  99. {
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement