Advertisement
Guest User

Operatory

a guest
Apr 9th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cstring>
  3. #include <string.h>
  4. #include <vector>
  5.  
  6. int liczba;
  7. using namespace std;
  8.  
  9. class Wektor
  10. {
  11.     private:
  12.         double x, y, z;
  13.         double s[3];
  14.  
  15.     public:
  16.         double get_x()
  17.         {
  18.             return x;
  19.         }
  20.         double get_y()
  21.         {
  22.             return y;
  23.         }
  24.         double get_z()
  25.         {
  26.             return z;
  27.         }
  28.         void show()
  29.         {
  30. //          cout << "x: " << x << " y: " << y << " z: " << z << endl;
  31.             printf_s("(x y z) = \t%.2lf \t%.2lf \t%.2lf\n", s[0], s[1] ,s[2]); // wolę tak :D
  32.         }
  33.  
  34.         Wektor() { x = y = z = 0; } // domyślne zerowy
  35.         Wektor(double x, double y, double z)
  36.         {
  37.             this->x = x;
  38.             this->y = y;
  39.             this->z = z;
  40.             s[0] = x; s[1] = y; s[2] = z;
  41.         }
  42.  
  43.         Wektor operator+(Wektor o_dodac)
  44.         {
  45.           for (int i = 0; i < 3; i++)
  46.             {
  47.               o_dodac.s[i] += this->s[i];
  48.             }
  49.             return o_dodac;
  50.         }
  51.  
  52.         Wektor operator*(Wektor o_pomnozyc)
  53.         {
  54.             Wektor tmp;
  55.  
  56.             tmp.x = x * o_pomnozyc.x;
  57.             tmp.y = y * o_pomnozyc.y;
  58.             tmp.z = z * o_pomnozyc.z;
  59.  
  60.             return tmp;
  61.         }
  62.  
  63.         Wektor operator-(Wektor o_odjac)
  64.         {
  65.             Wektor tmp;
  66.  
  67.             tmp.x = x - o_odjac.x;
  68.             tmp.y = y - o_odjac.y;
  69.             tmp.z = z - o_odjac.z;
  70.             return tmp;
  71.         }
  72.  
  73. //        friend std::ostream & operator << (std::ostream& os, Wektor &w)
  74. //        {
  75. //            os << w.x;
  76. //            return os;
  77. //        }
  78.         friend Wektor operator/(Wektor &A, double scalar);
  79.  
  80. };
  81.  
  82. Wektor operator/(Wektor &A, double scalar)
  83. {
  84.   for (int i = 0; i < 3; i++)
  85.     {
  86.       A.s[i] /= scalar;
  87.     }
  88.   return A; // ? Wiesz po co zwracać wektor skoro i tak podajemy
  89.             // referencję czyli podmieniamy oryginalne wartości?
  90. }
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. int main()
  98. {
  99.  
  100. //    vector <Wektor> T_wynikow;
  101.  
  102. //    Wektor wspolrzedne[]={
  103. //        Wektor(4.5,3.7,6.2),
  104. //        Wektor(2.8,8.4,4.3),
  105. //    };
  106.  
  107.     Wektor w_1(4.5,3.7,6.2);
  108.     Wektor w_2(2.3,5.8,9.6);
  109.     Wektor wynik_dodawania = w_1 + w_2;
  110.     Wektor wynik_odejmowania = w_1 - w_2;
  111.     Wektor wynik_mnozenia = w_1 * w_2;
  112. //    Wektor wynik_w1_liczba = liczba * w_1;
  113. //    Wektor wynik_w2_liczba = liczba * w_2;
  114.  
  115.      // ================= DODAWANIE ================= //
  116.         cout << "DODAWANIE wektorow A[4.5,3.7,6.2] | B[2.3,5.8,9.6]" << endl;
  117.  
  118. //        wynik_dodawania.operator=(wynik_mnozenia);
  119.         wynik_dodawania.show();
  120.         puts("Dzielenie:");
  121.         wynik_dodawania = wynik_dodawania / 2. ;
  122.         wynik_dodawania.show();
  123.  
  124.         return 0xC0fee;
  125.         //        cout << "Wartosc dodawania x = " << wynik_dodawania.get_x() << endl;
  126. //        cout << "Wartosc dodawania y = " << wynik_dodawania.get_y()<< endl;
  127. //        cout << "Wartosc dodawania z = " << wynik_dodawania.get_z() << endl;
  128.     // ================= DODAWANIE ================= //
  129.  
  130. //        cout << endl;
  131.  
  132.     // ================= ODEJMOWANIE ================= //
  133.         cout << "DODAWANIE wektorow A[4.5,3.7,6.2] | B[2.3,5.8,9.6]" << endl << endl;
  134.         cout << "Wartosc odejmowania x = " << wynik_odejmowania.get_x() << endl;
  135.         cout << "Wartosc odejmowania y = " << wynik_odejmowania.get_y()<< endl;
  136.         cout << "Wartosc odejmowania z = " << wynik_odejmowania.get_z() << endl;
  137.     // ================= ODEJMOWANIE ================= //
  138.  
  139.         cout << endl;
  140.  
  141.     // ================= MNOZENIE SKALARNE ================= //
  142.          cout << "MNOZENIE skalarne wektorow A[4.5,3.7,6.2] | B[2.3,5.8,9.6]" << endl << endl;
  143.          cout << "Wartosc mnozenia wektorow skalarnie = " << wynik_mnozenia.get_x() + wynik_mnozenia.get_y() + wynik_mnozenia.get_z() << endl;
  144.  
  145.     // ================= MNOZENIE SKALARNE ================= //
  146.  
  147.          cout << endl;
  148.  
  149.     // ================= MNOZENIE PRZEZ LICZBE ================= //
  150.         cout << "DODAWANIE wektorow A[4.5,3.7,6.2] | B[2.3,5.8,9.6]" << endl << endl;
  151. //        cout << "Mnozenienie pierwszego wektora przez "<< liczba << " = [" << wynik_w1_liczba.get_x() + wynik_w1_liczba.get_y() + wynik_w1_liczba.get_z() << "]" << endl;
  152.     // ================= MNOZENIE PRZEZ LICZBE ================= //
  153.  
  154.  
  155.     return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement