Advertisement
FRiTZZY

TP_T12_Z1

Aug 2nd, 2015
748
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.41 KB | None | 0 0
  1. /*
  2.  * Tehnike Programiranja
  3.  * Tutorijal 12 Zadatak 1
  4.  * Akademska godina 2014/2015
  5.  */
  6.  
  7. //promjena zadatka sa tutorijala 9 zadatak 3
  8. #include <iostream>
  9. #include <stdexcept>
  10. #include <cmath>
  11. #include <memory>
  12.  
  13. class Vektor3d
  14. {
  15. private:
  16.     double x, y, z;
  17. public:
  18.     Vektor3d () : x (0), y (0), z (0) {}
  19.     Vektor3d (double x, double y , double z) : x (x), y (y), z (z) {}
  20.     void PostaviX (double x1) { x = x1; }                                               //metoda koja postavlja koordinatu x na zeljenu vrijednost(mutator)
  21.     void PostaviY (double y1) { y = y1; }                                               //metoda koja postavlja koordinatu y na zeljenu vrijednost(mutator)
  22.     void PostaviZ (double z1) { z = z1; }                                               //metoda koja postavlja koordinatu z na zeljenu vrijednost(mutator)
  23.     void Postavi (double x1, double y1, double z1)                                  //metoda koja postavlja sve koorinate vektora
  24.     {
  25.         x = x1;
  26.         y = y1;
  27.         z = z1;
  28.     }
  29.     void Ocitaj (double& x1, double& y1, double& z1) const              //metoda koja smjesta koordinate vektora u proslijedjene varijable(inspektori)
  30.     {
  31.         x1 = x;
  32.         y1 = y;
  33.         z1 = z;
  34.     }
  35.     double DajX() const { return x; }                                                   //metode koje vracaju
  36.     double DajY() const { return y; }                                                   //vrijednost pojedinih koorinata
  37.     double DajZ() const { return z; }                                                   //inspektori
  38.     double DajDuzinu() const { return std::sqrt (x * x + y * y + z * z); }  //racuna i vraca intenzitet vektora (inspektor)
  39.     //Vektor3d& PomnoziSaSkalarom (double s)    prepravili u operator *=
  40.     Vektor3d& operator *= (double s)                                                        //metoda koja mnozi vektor sa skalarom
  41.     {
  42.         x *= s;
  43.         y *= s;
  44.         z *= s;
  45.         return *this;
  46.     }
  47.     //Vektor3d& SaberiSa (const Vektor3d& v) prepravili u operator +=
  48.     Vektor3d& operator+= (const Vektor3d& v)                                                //metoda koja sabire dva vektora i vraca njegov rezultat(mutator)
  49.     {
  50.         x += v.x;
  51.         y += v.y;
  52.         z += v.z;
  53.         return *this;
  54.     }
  55.     // friend Vektor3d ZbirVektora (const Vektor3d& v1, const Vektor3d& v2); prepravili u operator +
  56.     friend Vektor3d operator+ (const Vektor3d& v1, const Vektor3d& v2);     //funkcija prijatelj koja vraca zbir dva vektora
  57.     //metoda koja defenise operator << za nasu klasu
  58.     friend std::ostream& operator << (std::ostream& ispisi, const Vektor3d& v)
  59.     {
  60.         return ispisi << '{' << v.x << ',' << v.y << ',' << v.z << '}';
  61.     }
  62. };                                                                  /**----------kraj klase-------------*/
  63.  
  64. Vektor3d operator+ (const Vektor3d& v1, const Vektor3d& v2)
  65. {
  66.     Vektor3d v3;
  67.     v3.x = v1.x + v2.x;
  68.     v3.y = v1.y + v2.y;
  69.     v3.z = v1.z + v2.z;
  70.     return v3;
  71. }
  72. int main()
  73. {
  74.     Vektor3d tarik;
  75.     tarik.Postavi (120, 100, 185);
  76.     std::cout << "Koordinate prvog vektora ";
  77.     std::cout <<  tarik;
  78.     std::cout << "\n";
  79.     tarik *= 2;
  80.     std::cout << "Nakon mnozenja sa skalarom su: ";
  81.     std::cout << '{' << tarik.DajX() << ',' << tarik.DajY() << ',' << tarik.DajZ() << '}';
  82.     Vektor3d amer;
  83.     amer.Postavi (165, 85, 25);
  84.     std::cout << "Koordinata drugog vektora su sabranim sa prvim su: ";
  85.     amer += tarik;
  86.     std::cout << "\n";
  87.     Vektor3d soma (amer + tarik);
  88.     std::cout << "Koordinate vektora koje se dobiju poslije zbiira prva dva su: ";
  89.     std::cout << soma;
  90.     Vektor3d alem;
  91.     alem.Postavi (1, 2, 8);
  92.     double x, y, z;
  93.     alem.Ocitaj (x, y, z);
  94.     std::cout << "\nKoordinate cetvrtog vektora su " << '{' << x << ',' << y << ',' << z << '}' << '\n';
  95.     std::cout << "Intenzitet cetvrtog vektora je: ";
  96.     std::cout << alem.DajDuzinu();
  97.     std::cout << '\n';
  98.     alem.PostaviX (15);
  99.     alem.PostaviY (8);
  100.     alem.PostaviZ (88);
  101.     std::cout << alem;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement