Advertisement
sellmmaahh

tut10-zad1

Jul 31st, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 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.     double radijani;
  13.     void Domen (double &u) {
  14.     if (u>2*PI) u-=2*PI;
  15.     if(u<0) u+=2*PI;
  16.     }
  17. public:
  18.     Ugao (double radijani=0) {Ugao::radijani=radijani;}
  19.  
  20.     Ugao (int stepeni, int minute, int sekunde) {
  21.     Ugao::radijani=(stepeni*3600+minute*60+sekunde)*(PI/(180*3600));
  22.     Domen(Ugao::radijani);
  23.     }
  24.     void Postavi(double radijani) {Ugao::radijani=radijani; }
  25.  
  26.     void Postavi(int stepeni, int minute, int sekunde) {
  27.       Ugao::radijani=(stepeni*3600+minute*60+sekunde)*(PI/(180*3600));
  28.     Domen(Ugao::radijani); }
  29.  
  30.     void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde);
  31.  
  32.     int DajStepene () const { return static_cast<int>((radijani*180/PI*3600)/60); }
  33.     int DajMinute () const {return static_cast<int>((radijani*180/PI*3600)/60)%60; }
  34.     int DajSekunde () const { return static_cast<int>(radijani*180/PI*3600)%60; }
  35.      void  Ispisi () const { cout<<radijani; }
  36.  
  37.      void IspisiKlasicno() const;
  38.  
  39.      Ugao &SaberiSa(const Ugao &u) { Ugao::radijani += u.radijani; Domen(Ugao::radijani); return *this; }
  40.      Ugao &PomnoziSa(double x) { Ugao::radijani*=x; return *this; }
  41.      friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2);
  42.  
  43. friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
  44.     };
  45.  
  46.     void Ugao::OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde) {
  47.         int temp=(radijani*180/PI)*3600;
  48.         sekunde=temp%60;
  49.         temp/=60;
  50.         minute=temp%60;
  51.         temp/=60;
  52.         stepeni=temp;
  53.     }
  54.  
  55.     void Ugao::IspisiKlasicno() const {
  56.       int temp=(radijani*180/PI)*3600;
  57.         int sekunde=temp%60;
  58.         temp/=60;
  59.         int minute=temp%60;
  60.         temp/=60;
  61.        int stepeni=temp;
  62.        cout<<stepeni<<"deg"<<minute<<"min"<<sekunde<<"sec";
  63.     }
  64.  
  65.      Ugao ZbirUglova(const Ugao &u1, const Ugao &u2) {
  66.     Ugao rez;
  67.     rez.radijani=u1.radijani+u2.radijani;
  68.     return rez;
  69.     }
  70. Ugao ProduktUglaSaBrojem(const Ugao &u, double x) {
  71.     Ugao rez;
  72.     rez.radijani=u.radijani*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