#include <iostream.h>

class wektor
{
      private:
              int x,y,z;
      public:
              wektor();
              wektor(int, int, int);
              wektor pobierz();
              void wypisz();
              wektor suma(wektor a, wektor b);
              wektor roznica(wektor a, wektor b);
              int il_skalarny(wektor a, wektor b);
              wektor il_wektorowy(wektor a, wektor b);       
};

wektor::wektor()
{
 
 x=rand()%10;
 y=rand()%10;
 z=rand()%10;
}

wektor::wektor(int a, int b, int c)          //konstruktor z parametrami
{
 x=a;
 y=b;
 z=c;
}

wektor wektor::pobierz()
{
     wektor w;
     cout<<"Podaj x: "; cin>>x;
     cout<<"Podaj y: "; cin>>y;
     cout<<"Podaj z: "; cin>>z;
     return w;
}
     
void wektor::wypisz()
{
 cout<<" x: "<<x<<" y: "<<y<<" z: "<<z<<endl;
}

wektor wektor::suma(wektor a, wektor b)
{
      wektor wynik;
      wynik.x=a.x+b.x;
      wynik.y=a.y+b.y;
      wynik.z=a.z+b.z;
      return wynik;
}

wektor wektor::roznica(wektor a, wektor b)
{
      wektor wynik;
      wynik.x=a.x-b.x;
      wynik.y=a.y-b.y;
      wynik.z=a.z-b.z;
      return wynik;
}

int wektor::il_skalarny(wektor a, wektor b)      
{
      return ((a.x*b.x)+(a.y*b.y)+(a.z*b.z));
}

wektor wektor::il_wektorowy(wektor a, wektor b)
{
       wektor wynik;
       wynik.x=(a.y*b.z)-(b.y*a.z);
       wynik.y=(b.x*a.z)-(a.x*b.z);
       wynik.z=(a.x*b.y)-(b.x*a.y);
       return wynik;
}

int main(int argc, char * argv[])
{        
      system("CLS");
      srand(time(NULL));
      
      char klawisz;
      wektor a,b;
      cout<<"Wy(l)osowac wektor a? W przeciwnym razie zostanie wczytany z klawiatury ";
      cin>>klawisz;
      if(klawisz == 'l' || klawisz == 'L') 
                 {
                 cout<<"Wylosowany wektor a: ";
                 a.wypisz();
                 }
                 else
                 {
                 a.pobierz(); 
                 cout<<"Wczytany wektor a: ";
                 a.wypisz();
                 }
      
      cout<<"Wy(l)osowac wektor b? W przeciwnym razie zostanie wczytany z klawiatury ";
      cin>>klawisz;
      if(klawisz == 'l' || klawisz == 'L') 
                 {
                 cout<<"Wylosowany wektor b: ";
                 b.wypisz();
                 }
                 else
                 {
                 b.pobierz(); 
                 cout<<"Wczytany wektor b: ";
                 b.wypisz();
                 }
      
      wektor suma(suma.suma(a,b));
      cout<<"Suma wektorow a i b: ";
      suma.wypisz();
      
      wektor roznica(roznica.roznica(a,b));
      cout<<"Roznica wektorow a i b:";
      roznica.wypisz();
      
      cout<<"Iloczyn skalarny wektorow a i b: "<<a.il_skalarny(a,b)<<endl;
      
      wektor il_w(il_w.il_wektorowy(a,b));
      cout<<"Iloczyn wektorowy a i b: ";
      il_w.wypisz();
      
      cout<<endl;
      system("pause");
      return 0;
}
