Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- const double PI = 4 * atan(1.0);
- class Ugao
- {
- double radijani;
- void Normaliziraj();
- public:
- Ugao(double radijani = 0)
- {
- Postavi(radijani);
- Normaliziraj();
- }
- Ugao(int stepeni, int minute, int sekunde)
- {
- Postavi(stepeni, minute, sekunde);
- Normaliziraj();
- }
- void Postavi(double radijani)
- {
- Ugao::radijani = radijani;
- Normaliziraj();
- }
- void Postavi(int stepeni, int minute, int sekunde)
- {
- double s = stepeni + minute / 60. + sekunde / 3600.;
- radijani = s * PI / 180;
- Normaliziraj();
- }
- double DajRadijane() const
- {
- return radijani;
- }
- void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde) const
- {
- double s = radijani * 180 / PI;
- stepeni = s;
- double m =(s - stepeni) * 60;
- minute = m;
- sekunde = (m - minute) * 60;
- }
- int DajStepene() const
- {
- int stepeni, minute, sekunde;
- OcitajKlasicneJedinice(stepeni, minute, sekunde);
- return stepeni;
- }
- int DajMinute() const
- {
- int stepeni, minute, sekunde;
- OcitajKlasicneJedinice(stepeni, minute, sekunde);
- return minute;
- }
- int DajSekunde() const
- {
- int stepeni, minute, sekunde;
- OcitajKlasicneJedinice(stepeni, minute, sekunde);
- return sekunde;
- }
- void Ispisi() const
- {
- cout << radijani << " radijana" << endl;
- }
- void IspisiKlasicno() const
- {
- int stepeni, minute, sekunde;
- OcitajKlasicneJedinice(stepeni, minute, sekunde);
- cout << stepeni << " stepeni, " << minute << " minuta i " << sekunde << " sekundi" << endl;
- }
- Ugao &SaberiSa(const Ugao &u)
- {
- Ugao u1;
- radijani += u.radijani;
- Normaliziraj();
- u1.radijani = radijani;
- return u1;
- }
- Ugao &PomnoziSa(double x)
- {
- Ugao u1;
- radijani *= x;
- Normaliziraj();
- u1.radijani = radijani;
- return u1;
- }
- friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2);
- friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
- };
- void Ugao::Normaliziraj()
- {
- if(radijani < 0)
- {
- if(radijani < (-2)* PI)
- {
- int k = radijani / (2 * PI);
- radijani -= k * 2 * PI;
- }
- radijani = 2 * PI + radijani;
- }
- if(radijani > 2 * PI)
- {
- int k = radijani / (2 * PI);
- radijani -= k * 2 * PI;
- }
- }
- Ugao ZbirUglova(const Ugao &u1, const Ugao &u2)
- {
- Ugao u3;
- u3.radijani = u1.radijani + u2.radijani;
- u3.Normaliziraj();
- return u3;
- }
- Ugao ProduktUglaSaBrojem(const Ugao &u, double x)
- {
- Ugao u1;
- u1.radijani = u.radijani * x;
- u1.Normaliziraj();
- return u1;
- }
- int main()
- {
- Ugao u(90,40,20);
- Ugao u1(PI / 2);
- Ugao u3 = ProduktUglaSaBrojem(u, 0.5);
- u3.IspisiKlasicno();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement