Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <stdexcept>
- #include <cmath>
- #include <vector>
- const double PI=4*atan(1);
- using namespace std;
- class Ugao {
- int step, minu, sek;
- void Domen (int &step, int &minu, int &sek) {
- if (sek>59) { minu++; sek=0; }
- if(minu>59) { step++; minu=0; }
- }
- public:
- Ugao (double radijani=0) {step=0; minu=0; sek=0;}
- Ugao (int stepeni, int minute, int sekunde) {
- step=stepeni; minu=minute; sek=sekunde;
- Domen(Ugao::step, Ugao::minu, Ugao::sek);
- }
- void Postavi(double radijani) {
- int temp=(radijani*180*3600)/PI;
- Ugao::sek=temp%60;
- temp/=60;
- Ugao::minu=temp%60;
- Ugao::step=temp/60;
- Domen(Ugao::step, Ugao::minu, Ugao::sek);
- }
- void Postavi(int stepeni, int minute, int sekunde) {
- Ugao::step=stepeni; Ugao::minu=minute; Ugao::sek=sekunde;
- Domen(Ugao::step, Ugao::minu, Ugao::sek); }
- void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde);
- int DajStepene () const { return Ugao::step;; }
- int DajMinute () const {return Ugao::minu; }
- int DajSekunde () const { return Ugao::sek; }
- void Ispisi () const { cout<<(step*3600+minu*60+sek)*(PI/(180*3600))<<"rad"; }
- void IspisiKlasicno() const { cout<<step<<"deg"<<minu<<"min"<<sek<<"sec";}
- Ugao &SaberiSa(const Ugao &u) { Ugao::step += step; Ugao::minu+=minu; Ugao::sek+=sek; Domen(Ugao::step, Ugao::minu, Ugao::sek); return *this; }
- Ugao &PomnoziSa(double x) { Ugao::step*=x; Ugao::minu*=minu; Ugao::sek*=sek; Domen(Ugao::step, Ugao::minu, Ugao::sek); return *this; }
- friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2);
- friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
- };
- void Ugao::OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde) {
- stepeni=Ugao::step;
- minute=Ugao::minu;
- sekunde=Ugao::sek;
- }
- Ugao ZbirUglova(const Ugao &u1, const Ugao &u2) {
- Ugao rez;
- rez.step=u1.step+u2.step;
- rez.minu=u1.minu+u2.minu;
- rez.sek=u1.sek+u2.sek;
- return rez;
- }
- Ugao ProduktUglaSaBrojem(const Ugao &u, double x) {
- Ugao rez;
- rez.step=u.step*x;
- rez.minu=u.minu*x;
- rez.sek=u.sek*x;
- return rez;
- }
- int main () {
- Ugao u1, u2;
- u1.Postavi(3693);
- u1.Ispisi();
- cout<<endl;
- u1.Postavi(45,30,90);
- int sek,minu,step;
- u1.OcitajKlasicneJedinice(step,minu,sek);
- cout<<step<<"deg"<<minu<<"min"<<sek<<"sec"<<endl;
- u1.IspisiKlasicno();
- cout<<endl;
- u1.SaberiSa(u2);
- u1.Ispisi();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement