Advertisement
naskedvi

T10 - zad.1.

May 25th, 2014
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. const double PI=3.14159265;
  4.  
  5. class Ugao
  6. {
  7.     double radijan;
  8.     void Pretvori(double &rad);
  9. public:
  10.     Ugao(double radijan=0);
  11.     Ugao(int stepeni, int minute, int sekunde);
  12.     void Postavi(double rad){ Pretvori(rad); Ugao::radijan=rad;}
  13.     void Postavi(int stepeni, int minute, int sekunde);
  14.     double DajRadijane() const { return radijan;}
  15.     void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde);
  16.     int DajStepene() const { return radijan*180/PI;}
  17.     int DajMinute() const { return (DajRadijane()*180/PI-DajStepene())*60;}
  18.     int DajSekunde() const { return (((DajRadijane()*180/PI-DajStepene())*60)-DajMinute())*60;}
  19.     void Ispisi() const;
  20.     void IspisiKlasicno() const;
  21.     Ugao &PomnoziSa(double x);
  22.     Ugao &SaberiSa(const Ugao &u);
  23.     friend Ugao ZbirUglova(const Ugao u1, const Ugao u2);
  24.     friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x);
  25. };
  26.  
  27. void Ugao::Pretvori(double &rad)
  28. {
  29.     double stepeni(rad*180/PI);
  30.     while(stepeni>360)
  31.     {
  32.         stepeni-=360;
  33.     }
  34.     if(stepeni<0)
  35.         stepeni=360-stepeni;
  36.  
  37.     rad=stepeni*PI/180;
  38. }
  39.  
  40. void Postavi(int stepeni, int minute, int sekunde)
  41. {
  42.     double stepen=stepeni+minute/60.+sekunde/3600.;
  43.     Ugao::radijan=(stepen*PI)/180;
  44. }
  45.  
  46. void Ugao::Ispisi() const
  47. {
  48.     std::cout<<"Ugao u radijanima je: "<<DajRadijane();
  49. }
  50.  
  51. void Ugao::OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde)
  52. {
  53.     stepeni=DajStepene();
  54.     minute=DajMinute();
  55.     sekunde=DajSekunde();
  56. }
  57.  
  58. void Ugao::IspisiKlasicno() const
  59. {
  60.     std::cout<<"Dati ugao ima: "<<DajStepene()<<"deg, "<<DajMinute()
  61.              <<"min, "<<DajSekunde()<<"sek.\n";
  62. }
  63.  
  64. Ugao &Ugao::SaberiSa(const Ugao &u)
  65. {
  66.     double pom(radijan);
  67.     pom+=u.radijan;
  68.     Pretvori(pom);
  69.     radijan=pom;
  70.     return *this;
  71. }
  72. Ugao &Ugao::PomnoziSa(double x)
  73. {
  74.     double pom(radijan);
  75.     pom*=x;
  76.     Pretvori(pom);
  77.     radijan=pom;
  78.     return *this;
  79. }
  80.  
  81. Ugao ZbirUglova(const Ugao &u1, const Ugao &u2)
  82. {
  83.     Ugao u3;
  84.     u3.radijan=u1.radijan+u2.radijan;
  85.     return u3;
  86. }
  87.  
  88. Ugao ProduktUglaSaBrojem(const Ugao &u, double x)
  89. {
  90.     Ugao novi;
  91.     novi.radijan=u.radijan*x;
  92.     return novi;
  93. }
  94.  
  95.  
  96. int main()
  97. {
  98.     Ugao u;
  99.     int stepeni(0), minute(0), sekunde(0);
  100.     double radijan, x;
  101.     std::cout<<"Unesi ugao u radijanima: ";
  102.     std::cin>>radijan;
  103.     u.Postavi(radijan);
  104.     std::cout<<"Uneseni ugao ima: "<<u.DajRadijane()<<std::endl;
  105.     u.Ispisi();
  106.     std::cout<<std::endl;
  107.     u.IspisiKlasicno();
  108.     std::cout<<std::endl;
  109.     u.OcitajKlasicneJedinice(stepeni, minute, sekunde);
  110.     std::cout<<stepeni<<" "<<minute<<" "<<sekunde<<std::endl;
  111.     std::cout<<"Unesi broj za mnozenje: ";
  112.     std::cin>>x;
  113.     u.PomnoziSa(x);
  114.     std::cout<<u.DajRadijane()<<std::endl;
  115.     u.Ispisi();
  116.     std::cout<<std::endl;
  117.     u.IspisiKlasicno();
  118.     std::cout<<std::endl;
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement