Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <stdexcept>
- using namespace std;
- class Ugao
- {
- double _rad;
- static const double PI;
- void Reduciraj ()
- {
- int k = _rad/(2*PI);
- _rad=_rad-2*PI*k;
- }
- public:
- Ugao(double radijani = 0)
- {
- this->Postavi(radijani);
- }
- Ugao(int stepeni, int minute, int sekunde)
- {
- this->Postavi(stepeni, minute, sekunde);
- }
- void Postavi(double radijani)
- {
- _rad=radijani;
- Reduciraj ();
- }
- void Postavi(int stepeni, int minute, int sekunde);
- double DajRadijane() const
- {
- return _rad;
- }
- void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde) const;
- int DajStepene() const;
- int DajMinute() const;
- int DajSekunde() const;
- void Ispisi() const
- {
- cout<<DajRadijane();
- }
- void IspisiKlasicno() const
- {
- cout<<DajStepene()<<"deg "<<DajMinute()<<"min "<<DajSekunde()<<"sec ";
- }
- Ugao &SaberiSa(const Ugao &u);
- Ugao &PomnoziSa(double x);
- friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2);
- friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
- };
- const double Ugao::PI=atan(1)*4;
- void Ugao::Postavi(int stepeni, int minute, int sekunde)
- {
- double step=stepeni+(minute/60.)+(sekunde/3600);
- _rad=step*PI/180;
- }
- void Ugao::OcitajKlasicneJedinice(int &stepeni,int &minute, int &sekunde) const
- {
- double step=stepeni+minute/60.+sekunde/3600.;
- stepeni=step;
- minute=(step-stepeni)*60;
- sekunde=(step-stepeni-minute/60.)*3600;
- }
- int Ugao::DajStepene() const
- {
- int d, m, s;
- OcitajKlasicneJedinice(d, m, s);
- return d;
- }
- int Ugao::DajMinute() const
- {
- int d, m, s;
- OcitajKlasicneJedinice(d, m, s);
- return m;
- }
- int Ugao::DajSekunde () const
- {
- int d,m,s;
- OcitajKlasicneJedinice(d, m, s);
- return s;
- }
- Ugao &Ugao::SaberiSa (const Ugao &u)
- {
- _rad+=u._rad;
- Reduciraj();
- return *this;
- }
- void n1 ()
- {
- cout<<std::endl;
- }
- Ugao ZbirUglova (const Ugao &u1,const Ugao &u2)
- {
- Ugao rez;
- rez._rad=u1._rad+u2._rad;
- rez.Reduciraj();
- return rez;
- }
- int main ()
- {
- Ugao u(3*3.1415926), u1(45,0,0),u2, u3;
- u.Ispisi();
- n1();
- u.IspisiKlasicno();
- n1();
- u1.IspisiKlasicno();
- n1();
- u.SaberiSa(u1).SaberiSa(u1).IspisiKlasicno();
- nl();
- //((u += u1) += u1)
- u1.IspisiKlasicno();
- nl();
- Ugao un(ZbirUglova(u, u1));
- un.IspisiKlasicno();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement