Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Tehnike Programiranja
- * Tutorijal 12 Zadatak 1
- * Akademska godina 2014/2015
- */
- //promjena zadatka sa tutorijala 9 zadatak 3
- #include <iostream>
- #include <stdexcept>
- #include <cmath>
- #include <memory>
- class Vektor3d
- {
- private:
- double x, y, z;
- public:
- Vektor3d () : x (0), y (0), z (0) {}
- Vektor3d (double x, double y , double z) : x (x), y (y), z (z) {}
- void PostaviX (double x1) { x = x1; } //metoda koja postavlja koordinatu x na zeljenu vrijednost(mutator)
- void PostaviY (double y1) { y = y1; } //metoda koja postavlja koordinatu y na zeljenu vrijednost(mutator)
- void PostaviZ (double z1) { z = z1; } //metoda koja postavlja koordinatu z na zeljenu vrijednost(mutator)
- void Postavi (double x1, double y1, double z1) //metoda koja postavlja sve koorinate vektora
- {
- x = x1;
- y = y1;
- z = z1;
- }
- void Ocitaj (double& x1, double& y1, double& z1) const //metoda koja smjesta koordinate vektora u proslijedjene varijable(inspektori)
- {
- x1 = x;
- y1 = y;
- z1 = z;
- }
- double DajX() const { return x; } //metode koje vracaju
- double DajY() const { return y; } //vrijednost pojedinih koorinata
- double DajZ() const { return z; } //inspektori
- double DajDuzinu() const { return std::sqrt (x * x + y * y + z * z); } //racuna i vraca intenzitet vektora (inspektor)
- //Vektor3d& PomnoziSaSkalarom (double s) prepravili u operator *=
- Vektor3d& operator *= (double s) //metoda koja mnozi vektor sa skalarom
- {
- x *= s;
- y *= s;
- z *= s;
- return *this;
- }
- //Vektor3d& SaberiSa (const Vektor3d& v) prepravili u operator +=
- Vektor3d& operator+= (const Vektor3d& v) //metoda koja sabire dva vektora i vraca njegov rezultat(mutator)
- {
- x += v.x;
- y += v.y;
- z += v.z;
- return *this;
- }
- // friend Vektor3d ZbirVektora (const Vektor3d& v1, const Vektor3d& v2); prepravili u operator +
- friend Vektor3d operator+ (const Vektor3d& v1, const Vektor3d& v2); //funkcija prijatelj koja vraca zbir dva vektora
- //metoda koja defenise operator << za nasu klasu
- friend std::ostream& operator << (std::ostream& ispisi, const Vektor3d& v)
- {
- return ispisi << '{' << v.x << ',' << v.y << ',' << v.z << '}';
- }
- }; /**----------kraj klase-------------*/
- Vektor3d operator+ (const Vektor3d& v1, const Vektor3d& v2)
- {
- Vektor3d v3;
- v3.x = v1.x + v2.x;
- v3.y = v1.y + v2.y;
- v3.z = v1.z + v2.z;
- return v3;
- }
- int main()
- {
- Vektor3d tarik;
- tarik.Postavi (120, 100, 185);
- std::cout << "Koordinate prvog vektora ";
- std::cout << tarik;
- std::cout << "\n";
- tarik *= 2;
- std::cout << "Nakon mnozenja sa skalarom su: ";
- std::cout << '{' << tarik.DajX() << ',' << tarik.DajY() << ',' << tarik.DajZ() << '}';
- Vektor3d amer;
- amer.Postavi (165, 85, 25);
- std::cout << "Koordinata drugog vektora su sabranim sa prvim su: ";
- amer += tarik;
- std::cout << "\n";
- Vektor3d soma (amer + tarik);
- std::cout << "Koordinate vektora koje se dobiju poslije zbiira prva dva su: ";
- std::cout << soma;
- Vektor3d alem;
- alem.Postavi (1, 2, 8);
- double x, y, z;
- alem.Ocitaj (x, y, z);
- std::cout << "\nKoordinate cetvrtog vektora su " << '{' << x << ',' << y << ',' << z << '}' << '\n';
- std::cout << "Intenzitet cetvrtog vektora je: ";
- std::cout << alem.DajDuzinu();
- std::cout << '\n';
- alem.PostaviX (15);
- alem.PostaviY (8);
- alem.PostaviZ (88);
- std::cout << alem;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement