Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- const double PI=4*atan(1);
- class Ugao{
- double rad;
- public:
- Ugao(double radijani=0){
- Postavi(radijani);
- }
- Ugao(int stepeni, int minute, int sekunde){
- Postavi(stepeni,minute,sekunde);
- }
- void Postavi(double radijani);
- void Postavi(int stepeni, int minute, int sekunde);
- double DajRadijane() const { return rad;}
- int DajStepene() const {return (int)((DajRadijane()*PI)/180);}
- int DajMinute() const {return (int)(((DajRadijane()*PI)/180-DajStepene())*60);}
- int DajSekunde() const {return ((((DajRadijane()*PI)/180-DajStepene())*60)-DajMinute())*60; }
- friend Ugao operator +(const Ugao &u1, const Ugao &u2);
- friend Ugao operator -(const Ugao &u1, const Ugao &u2);
- friend Ugao operator *(const Ugao &u, int x);
- friend Ugao operator *(int x, const Ugao &u);
- friend bool operator <(const Ugao &u1, const Ugao &u2){
- return u1.DajRadijane()<u2.DajRadijane();
- }
- friend Ugao operator += (Ugao &u1, const Ugao &u2){ return Ugao(u1.rad+u2.rad);}
- friend Ugao operator -= (const Ugao &u1, const Ugao &u2){ return Ugao(u1.rad-u2.rad);}
- friend Ugao operator * (Ugao &u, int x){
- return {u.rad*x};
- }
- };
- Ugao operator +(const Ugao &u1, const Ugao &u2){
- return {u1.DajRadijane() + u2.DajRadijane()};
- }
- Ugao operator -(const Ugao &u1, const Ugao &u2){
- return {u1.DajRadijane() - u2.DajRadijane()};
- }
- Ugao operator *(const Ugao &u, int x){
- return Ugao(u.rad * x);
- }
- Ugao operator *(int x, const Ugao &u){
- return Ugao(u.rad * x);
- }
- void Ugao::Postavi(double radijani){
- if(radijani < 0)
- while(radijani < 0)
- radijani += 2 * PI;
- else
- while(radijani > 2 * PI)
- radijani -= 2 * PI;
- Ugao::rad=radijani;
- }
- void Ugao::Postavi(int stepeni, int minute, int sekunde)
- {
- if(sekunde < 0)
- while(sekunde < 0) {
- minute--;
- sekunde += 60;
- }
- else if(sekunde > 60)
- while(sekunde > 60) {
- sekunde -= 60;
- minute++;
- }
- if(minute < 0)
- while(minute < 0) {
- stepeni--;
- minute += 60;
- }
- else if(minute > 60)
- while(minute > 60) {
- stepeni++;
- minute -= 60;
- }
- if(stepeni < 0)
- while(stepeni < 0)
- stepeni += 360;
- else if(stepeni > 360)
- while(stepeni > 360)
- stepeni -= 360;
- if(stepeni == 360)stepeni=0;
- Ugao::rad=((((double)(sekunde))/3600+((double)(minute))/60+stepeni)*180)/PI;
- }
- int main ()
- {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement