Advertisement
Guest User

Tutorial 10, Zadatak 1, TP

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