Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- class Vektor3d
- {
- double x, y, z;
- public:
- Vektor3d () {x=0; y=0; z=0;}
- Vektor3d (double x, double y, double z) {Vektor3d::x = x; Vektor3d::y = y; Vektor3d::z = z;}
- void Postavi(double x, double y, double z) {Vektor3d::x = x; Vektor3d::y = y; Vektor3d::z = z;}
- void Ocitaj(double &x, double&y, double&z) const{x = Vektor3d::x; y = Vektor3d::y; z = Vektor3d::z;}
- void Ispisi()const
- {
- std::cout << "{" << x << "," << y << "," << z << "}";
- }
- double DajX()const{return x; }
- double DajY()const{ return y; }
- double DajZ()const{return z; }
- double DajDuzinu() const
- { return std::sqrt(x * x + y * y + z * z); }
- Vektor3d &operator+=(const Vektor3d &v2)
- {
- x+=v2.x; y+=v2.y; z+=v2.z;
- return *this;
- }
- Vektor3d &operator*=(double a){x*=a; y*=a; z*=a; return *this;}
- friend std::ostream &operator<<(std::ostream &tok, const Vektor3d &v1);
- friend Vektor3d operator +(const Vektor3d&v1, const Vektor3d&v2);
- };
- Vektor3d operator+(const Vektor3d&v1, const Vektor3d&v2)
- {
- return Vektor3d(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
- }
- std::ostream &operator<<(std::ostream &tok, const Vektor3d &v1)
- {
- return tok<<"{"<<v1.x<<", "<<v1.y<<", "<<v1.z<<"}";
- }
- class Sat
- {
- int sati, minute, sekunde;
- public:
- void Postavi(int sati,int minute, int sekunde){Sat::sati=sati; Sat::minute=minute; Sat::sekunde=sekunde;}
- int DajSate()const;
- int DajMinute()const;
- int DajSekunde()const;
- void Ispisi()const;
- friend void promjena(Sat &s1, int);
- Sat &operator+=(int broj)
- {
- promjena(*this, broj);
- }
- friend std::ostream &operator<<(std::ostream &tok, const Sat &s1);
- friend Sat &operator++(Sat &s1);
- friend Sat operator++(Sat &s1, int);
- };
- void promjena(Sat &s1, int broj)
- {
- s1.sekunde+=broj;
- if(broj>=0)
- {
- if(s1.sekunde>=60) {s1.minute+=s1.sekunde/60; s1.sekunde=s1.sekunde%60;}
- if(s1.minute>=60) {s1.sati+=s1.minute/60; s1.minute%=60;}
- if(s1.sati>=24) {s1.sati%=24;}}
- else
- {
- if(s1.sekunde<0) {s1.minute+=s1.sekunde/60; s1.sekunde=60+s1.sekunde%60;}
- if(s1.minute<0) {s1.sati+=s1.minute/60; s1.minute=60+s1.minute%60;}
- if(s1.sati <0) {s1.sati=24+s1.sati%24;}
- }
- }
- Sat &operator++(Sat &s1)
- {
- promjena(s1, 1);
- return s1;
- }
- Sat operator++ (Sat &s1, int)
- {
- Sat pomocni(s1);
- promjena(pomocni, 1);
- return pomocni;
- }
- std::ostream &operator<<(std::ostream &tok, const Sat &s1)
- {
- return tok<<s1.sati<<"h "<<s1.minute<<"min "<<s1.sekunde<<"sec.";
- }
- int main()
- {
- Vektor3d a,b;
- a.Postavi(3,5,7);
- b.Postavi(1,1,1);
- a*=3;
- std::cout<<a<<" "<<b;
- Sat s;
- s.Postavi(22,40,15);
- s+=3600;
- std::cout<<" "<<s;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement