Advertisement
sellmmaahh

tut10-zad2

Jul 31st, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <stdexcept>
  4. #include <cmath>
  5. #include <vector>
  6.  
  7. const double PI=4*atan(1);
  8.  
  9. using namespace std;
  10.  
  11. class Ugao {
  12.    int step, minu, sek;
  13.  
  14.     void Domen (int &step, int &minu, int &sek) {
  15.     if (sek>59) { minu++; sek=0; }
  16.     if(minu>59) { step++; minu=0; }
  17.     }
  18. public:
  19.     Ugao (double radijani=0) {step=0; minu=0; sek=0;}
  20.  
  21.     Ugao (int stepeni, int minute, int sekunde) {
  22.         step=stepeni; minu=minute; sek=sekunde;
  23.     Domen(Ugao::step, Ugao::minu, Ugao::sek);
  24.     }
  25.     void Postavi(double radijani) {
  26.         int temp=(radijani*180*3600)/PI;
  27.         Ugao::sek=temp%60;
  28.         temp/=60;
  29.         Ugao::minu=temp%60;
  30.  
  31.         Ugao::step=temp/60;
  32.         Domen(Ugao::step, Ugao::minu, Ugao::sek);
  33.          }
  34.  
  35.     void Postavi(int stepeni, int minute, int sekunde) {
  36.       Ugao::step=stepeni; Ugao::minu=minute; Ugao::sek=sekunde;
  37.      Domen(Ugao::step, Ugao::minu, Ugao::sek); }
  38.  
  39.     void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde);
  40.  
  41.     int DajStepene () const { return Ugao::step;; }
  42.     int DajMinute () const {return Ugao::minu; }
  43.     int DajSekunde () const { return Ugao::sek; }
  44.      void  Ispisi () const { cout<<(step*3600+minu*60+sek)*(PI/(180*3600))<<"rad"; }
  45.  
  46.      void IspisiKlasicno() const { cout<<step<<"deg"<<minu<<"min"<<sek<<"sec";}
  47.  
  48.      Ugao &SaberiSa(const Ugao &u) { Ugao::step += step; Ugao::minu+=minu; Ugao::sek+=sek;  Domen(Ugao::step, Ugao::minu, Ugao::sek); return *this; }
  49.      Ugao &PomnoziSa(double x) { Ugao::step*=x; Ugao::minu*=minu; Ugao::sek*=sek;  Domen(Ugao::step, Ugao::minu, Ugao::sek); return *this; }
  50.      friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2);
  51.  
  52. friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
  53.     };
  54.  
  55.     void Ugao::OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde) {
  56.        stepeni=Ugao::step;
  57.        minute=Ugao::minu;
  58.        sekunde=Ugao::sek;
  59.     }
  60.  
  61.      Ugao ZbirUglova(const Ugao &u1, const Ugao &u2) {
  62.     Ugao rez;
  63.     rez.step=u1.step+u2.step;
  64.     rez.minu=u1.minu+u2.minu;
  65.     rez.sek=u1.sek+u2.sek;
  66.     return rez;
  67.     }
  68. Ugao ProduktUglaSaBrojem(const Ugao &u, double x) {
  69.     Ugao rez;
  70.     rez.step=u.step*x;
  71.     rez.minu=u.minu*x;
  72.     rez.sek=u.sek*x;
  73.     return rez;
  74. }
  75.  
  76.     int main () {
  77.     Ugao u1, u2;
  78.     u1.Postavi(3693);
  79.     u1.Ispisi();
  80.     cout<<endl;
  81.     u1.Postavi(45,30,90);
  82.     int sek,minu,step;
  83.     u1.OcitajKlasicneJedinice(step,minu,sek);
  84.     cout<<step<<"deg"<<minu<<"min"<<sek<<"sec"<<endl;
  85.     u1.IspisiKlasicno();
  86.     cout<<endl;
  87.     u1.SaberiSa(u2);
  88.     u1.Ispisi();
  89.     return 0;
  90.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement