Advertisement
FRiTZZY

TP_T9_Z1

May 19th, 2015
694
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. /* TP_Tutorijal_9 Zadatak_1 */
  2. #include <iostream>
  3.  
  4. using std::cin;
  5. using std::cout;
  6. using std::endl;
  7.  
  8. class Vektor3d {
  9.     double x, y, z;
  10. public:
  11.                                                         /* this->   <=>   Vektor3d:: */
  12.     void Postavi(double x, double y, double z) { this->x = x; Vektor3d::y = y; Vektor3d::z = z; }
  13.     void PostaviX(double x) { Vektor3d::x = x; }
  14.     void PostaviY(double y) { Vektor3d::y = y; }
  15.     void PostaviZ(double z) { Vektor3d::z = z; }
  16.     void Ocitaj(double &x, double &y, double &z) const; // prototip
  17.     void Ispisi() const { cout << "{" << x << "," << y << "," << z << "}"; }
  18.     double DajX() const { return x; } // inspektor
  19.     double DajY() const { return y; }
  20.     double DajZ() const { return z; }
  21.     Vektor3d PomnoziSaSkalarom (double s);
  22.     void SaberiSa(const Vektor3d &v) { x += v.x; y += v.y; z += v.z; }
  23.     friend Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2);
  24. };
  25.  
  26. Vektor3d Vektor3d::PomnoziSaSkalarom(double s) {
  27.     x *= s;
  28.     y *= s;
  29.     z *= s;
  30.    
  31.     return *this;
  32. }
  33.  
  34. // IZVAN KLASE NE PISEMO FRIEND !!!
  35. Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2) {
  36.     Vektor3d v;
  37.     v.x = v1.x + v2.x;
  38.     v.y = v1.y + v2.y;
  39.     v.z = v1.z + v2.z;
  40.     return v;
  41. }
  42.  
  43. /* PRIJATELJSKA FUNKCIJA
  44. void Funkcija(Vektor3d v) {
  45.     v.X; // da ovo omogucimo, fja Funkcija mora biti prijateljska u klasi Vektor3d !!
  46. } */
  47.  
  48. // Sve duze metode (3 i vise linija koda) moramo definirati van klase !!!
  49. void Vektor3d::Ocitaj(double &x, double &y, double &z) const {
  50.     x = Vektor3d::x;
  51.     y = Vektor3d::y;
  52.     z = this->z;
  53. }
  54.  
  55. int main()
  56. {
  57.     cout << endl << "Kreiram vektor v i postavljam mu sve koordinate na 3:" << endl;
  58.     Vektor3d v;
  59.     v.Postavi(3, 3, 3);
  60.     v.Ispisi();
  61.  
  62.     cout << endl << "Kreiram vektor temp i postavljam mu sve koordinate na 7:" << endl;
  63.     Vektor3d temp;
  64.     // Testiranje setera
  65.     temp.PostaviX(7);
  66.     temp.PostaviY(7);
  67.     temp.PostaviZ(7);
  68.     temp.Ispisi();
  69.  
  70.     cout << endl << "Sabiram vektor v sa vektorom temp:" << endl;
  71.     v.SaberiSa(temp);
  72.     // Testiranje getera
  73.     cout << "Koordinata x: " << v.DajX();
  74.     cout << "\nKoordinata y: " << v.DajY();
  75.     cout << "\nKoordinata z: " << v.DajZ();
  76.  
  77.     cout << endl << "Mnozim vektor v sa skalarom (6):" << endl;
  78.     v.PomnoziSaSkalarom(6);
  79.     v.Ispisi();
  80.  
  81.     cout << endl << "Postavljam nove koordinate vektoru v i dodajem mu vektor temp pomocu 'ZbirVektora':" << endl;
  82.     v.Postavi(3, 3, 3);
  83.     v = ZbirVektora(v, temp);
  84.     v.Ispisi();
  85.  
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement