Advertisement
Guest User

Untitled

a guest
May 30th, 2015
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. class Vektor3d
  4. {
  5. double x, y, z;
  6. public:
  7. Vektor3d () {x=0; y=0; z=0;}
  8. Vektor3d (double x, double y, double z) {Vektor3d::x = x; Vektor3d::y = y; Vektor3d::z = z;}
  9. void Postavi(double x, double y, double z) {Vektor3d::x = x; Vektor3d::y = y; Vektor3d::z = z;}
  10. void Ocitaj(double &x, double&y, double&z) const{x = Vektor3d::x; y = Vektor3d::y; z = Vektor3d::z;}
  11. void Ispisi()const
  12. {
  13. std::cout << "{" << x << "," << y << "," << z << "}";
  14. }
  15. double DajX()const{return x; }
  16. double DajY()const{ return y; }
  17. double DajZ()const{return z; }
  18. double DajDuzinu() const
  19. { return std::sqrt(x * x + y * y + z * z); }
  20. Vektor3d &operator+=(const Vektor3d &v2)
  21. {
  22. x+=v2.x; y+=v2.y; z+=v2.z;
  23. return *this;
  24. }
  25. Vektor3d &operator*=(double a){x*=a; y*=a; z*=a; return *this;}
  26. friend std::ostream &operator<<(std::ostream &tok, const Vektor3d &v1);
  27. friend Vektor3d operator +(const Vektor3d&v1, const Vektor3d&v2);
  28. };
  29. Vektor3d operator+(const Vektor3d&v1, const Vektor3d&v2)
  30. {
  31. return Vektor3d(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
  32. }
  33. std::ostream &operator<<(std::ostream &tok, const Vektor3d &v1)
  34. {
  35. return tok<<"{"<<v1.x<<", "<<v1.y<<", "<<v1.z<<"}";
  36.  
  37. }
  38. class Sat
  39. {
  40. int sati, minute, sekunde;
  41. public:
  42. void Postavi(int sati,int minute, int sekunde){Sat::sati=sati; Sat::minute=minute; Sat::sekunde=sekunde;}
  43. int DajSate()const;
  44. int DajMinute()const;
  45. int DajSekunde()const;
  46. void Ispisi()const;
  47. friend void promjena(Sat &s1, int);
  48. Sat &operator+=(int broj)
  49. {
  50. promjena(*this, broj);
  51.  
  52. }
  53. friend std::ostream &operator<<(std::ostream &tok, const Sat &s1);
  54. friend Sat &operator++(Sat &s1);
  55. friend Sat operator++(Sat &s1, int);
  56.  
  57. };
  58. void promjena(Sat &s1, int broj)
  59. {
  60. s1.sekunde+=broj;
  61. if(broj>=0)
  62. {
  63. if(s1.sekunde>=60) {s1.minute+=s1.sekunde/60; s1.sekunde=s1.sekunde%60;}
  64. if(s1.minute>=60) {s1.sati+=s1.minute/60; s1.minute%=60;}
  65. if(s1.sati>=24) {s1.sati%=24;}}
  66. else
  67. {
  68. if(s1.sekunde<0) {s1.minute+=s1.sekunde/60; s1.sekunde=60+s1.sekunde%60;}
  69. if(s1.minute<0) {s1.sati+=s1.minute/60; s1.minute=60+s1.minute%60;}
  70. if(s1.sati <0) {s1.sati=24+s1.sati%24;}
  71. }
  72. }
  73. Sat &operator++(Sat &s1)
  74. {
  75. promjena(s1, 1);
  76. return s1;
  77. }
  78. Sat operator++ (Sat &s1, int)
  79. {
  80. Sat pomocni(s1);
  81. promjena(pomocni, 1);
  82. return pomocni;
  83. }
  84. std::ostream &operator<<(std::ostream &tok, const Sat &s1)
  85. {
  86. return tok<<s1.sati<<"h "<<s1.minute<<"min "<<s1.sekunde<<"sec.";
  87. }
  88. int main()
  89. {
  90. Vektor3d a,b;
  91. a.Postavi(3,5,7);
  92. b.Postavi(1,1,1);
  93. a*=3;
  94. std::cout<<a<<" "<<b;
  95. Sat s;
  96. s.Postavi(22,40,15);
  97. s+=3600;
  98. std::cout<<" "<<s;
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement