Advertisement
sellmmaahh

tut10-1-zad-pok1

May 17th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <stdexcept>
  4.  
  5. using namespace std;
  6.  
  7. class Ugao
  8. {
  9.     double _rad;
  10.     static const double PI;
  11.  
  12.     void Reduciraj ()
  13.     {
  14.         int k =  _rad/(2*PI);
  15.         _rad=_rad-2*PI*k;
  16.     }
  17.  
  18. public:
  19.  
  20.     Ugao(double radijani = 0)
  21.     {
  22.         this->Postavi(radijani);
  23.     }
  24.  
  25.     Ugao(int stepeni, int minute, int sekunde)
  26.     {
  27.         this->Postavi(stepeni, minute, sekunde);
  28.     }
  29.  
  30.  
  31.     void Postavi(double radijani)
  32.     {
  33.         _rad=radijani;
  34.         Reduciraj ();
  35.     }
  36.     void Postavi(int stepeni, int minute, int sekunde);
  37.     double DajRadijane() const
  38.     {
  39.         return _rad;
  40.     }
  41.     void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde) const;
  42.     int DajStepene() const;
  43.     int DajMinute() const;
  44.     int DajSekunde() const;
  45.     void Ispisi() const
  46.     {
  47.         cout<<DajRadijane();
  48.     }
  49.     void IspisiKlasicno() const
  50.     {
  51.         cout<<DajStepene()<<"deg "<<DajMinute()<<"min "<<DajSekunde()<<"sec ";
  52.     }
  53.     Ugao &SaberiSa(const Ugao &u);
  54.     Ugao &PomnoziSa(double x);
  55.     friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2);
  56.     friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
  57. };
  58.  
  59. const double Ugao::PI=atan(1)*4;
  60.  
  61. void Ugao::Postavi(int stepeni, int minute, int sekunde)
  62. {
  63.     double step=stepeni+(minute/60.)+(sekunde/3600);
  64.     _rad=step*PI/180;
  65.  
  66. }
  67. void Ugao::OcitajKlasicneJedinice(int &stepeni,int &minute, int &sekunde) const
  68. {
  69.     double step=stepeni+minute/60.+sekunde/3600.;
  70.     stepeni=step;
  71.     minute=(step-stepeni)*60;
  72.     sekunde=(step-stepeni-minute/60.)*3600;
  73.  
  74. }
  75. int Ugao::DajStepene() const
  76. {
  77.     int d, m, s;
  78.     OcitajKlasicneJedinice(d, m, s);
  79.     return d;
  80.  
  81. }
  82. int Ugao::DajMinute() const
  83. {
  84.     int d, m, s;
  85.     OcitajKlasicneJedinice(d, m, s);
  86.     return m;
  87. }
  88. int Ugao::DajSekunde () const
  89. {
  90.     int d,m,s;
  91.     OcitajKlasicneJedinice(d, m, s);
  92.     return s;
  93. }
  94. Ugao &Ugao::SaberiSa (const Ugao &u)
  95. {
  96.     _rad+=u._rad;
  97.  
  98. Reduciraj();
  99. return *this;
  100. }
  101.  
  102. void n1 ()
  103. {
  104.     cout<<std::endl;
  105.  
  106. }
  107. Ugao ZbirUglova (const Ugao &u1,const Ugao &u2)
  108. {
  109.     Ugao rez;
  110.     rez._rad=u1._rad+u2._rad;
  111.     rez.Reduciraj();
  112.     return rez;
  113. }
  114.  
  115. int main ()
  116. {
  117.     Ugao u(3*3.1415926), u1(45,0,0),u2, u3;
  118.  
  119.     u.Ispisi();
  120.     n1();
  121.     u.IspisiKlasicno();
  122.     n1();
  123.     u1.IspisiKlasicno();
  124.     n1();
  125.  
  126.     u.SaberiSa(u1).SaberiSa(u1).IspisiKlasicno();
  127.     nl();
  128.     //((u += u1) += u1)
  129.     u1.IspisiKlasicno();
  130.     nl();
  131.  
  132.     Ugao un(ZbirUglova(u, u1));
  133.     un.IspisiKlasicno();
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement