# HG changeset patch # User athos # Date 1079707656 0 # Node ID 9910d5a5be7f393729051b513180a59591f82607 # Parent 47f62d789fe79b6a24f45ef55459ffea35d81332 M?g ?rtam bele 2 dolgot, meg a tesztelot is kibovitettem. diff -r 47f62d789fe7 -r 9910d5a5be7f src/work/athos/xy/xy.cc --- a/src/work/athos/xy/xy.cc Fri Mar 19 09:09:20 2004 +0000 +++ b/src/work/athos/xy/xy.cc Fri Mar 19 14:47:36 2004 +0000 @@ -1,26 +1,39 @@ #include #include using namespace std; +using namespace hugo; int main() { - cout << "Kerek sok sikvektorokat." << endl; + + cout << "Még egy skalárt is kérek (szépen)!" << endl; + int s; + cin >> s; + + cout << "Kerek sok sikvektort." << endl; xy osszeg; + xy kul; xy z; vector< xy > v; - + while(cin >> z) { v.push_back(z); osszeg += z; + kul -= z; cout << "Az összeg aktualisan: " << osszeg << endl; + cout << "A különbség aktualisan: " << kul << endl; } - - cout << "A kovetkezo szamokat szoroztam ossze:" << endl; for(unsigned int i=0; i1){ + cout << "Az elsö kettö szorzata: " << v[0]*v[1] << endl; + } + cout << "Eleg nehez volt." << endl; } diff -r 47f62d789fe7 -r 9910d5a5be7f src/work/athos/xy/xy.h --- a/src/work/athos/xy/xy.h Fri Mar 19 09:09:20 2004 +0000 +++ b/src/work/athos/xy/xy.h Fri Mar 19 14:47:36 2004 +0000 @@ -1,3 +1,4 @@ +// -*- c++ -*- /** 2 dimensional vector (plainvector) implementation @@ -7,111 +8,126 @@ #include -using namespace std; -template -class xy { - T _x,_y; +namespace hugo { -public: + template + class xy { + T _x,_y; - ///Default constructor: both coordinates become 0 - xy() { _x=_y=0; } + public: + + ///Default constructor: both coordinates become 0 + xy() { _x=_y=0; } - ///Constructing from coordinates - xy(T a, T b) { _x=a; _y=b; } + ///Constructing from coordinates + xy(T a, T b) { _x=a; _y=b; } - ///Gives back the x coordinate - T x(){ - return _x; - }; + ///Gives back the x coordinate + T x(){ + return _x; + }; - ///Gives back the y coordinate - T y(){ - return _y; - }; + ///Gives back the y coordinate + T y(){ + return _y; + }; - ///Gives back the square of the norm of the vector - T normSquare(){ - return _x*_x+_y*_y; - }; + ///Gives back the square of the norm of the vector + T normSquare(){ + return _x*_x+_y*_y; + }; - ///Increments the left hand side by u - xy& operator +=(const xy& u){ - _x += u._x; - _y += u._y; - return *this; - }; + ///Increments the left hand side by u + xy& operator +=(const xy& u){ + _x += u._x; + _y += u._y; + return *this; + }; - ///Decrements the left hand side by u - xy& operator -=(const xy& u){ - _x -= u._x; - _y -= u._y; - return *this; - }; + ///Decrements the left hand side by u + xy& operator -=(const xy& u){ + _x -= u._x; + _y -= u._y; + return *this; + }; - ///Multiplying the left hand side with a scalar - xy& operator *=(const T &u){ - _x *= u; - _y *= u; - return *this; - }; + ///Multiplying the left hand side with a scalar + xy& operator *=(const T &u){ + _x *= u; + _y *= u; + return *this; + }; + + ///Dividing the left hand side by a scalar + xy& operator /=(const T &u){ + _x /= u; + _y /= u; + return *this; + }; - ///Returns the scalar product of two vectors - T operator *(const xy& u){ - return _x*u._x+_y*u._y; - }; + ///Returns the scalar product of two vectors + T operator *(const xy& u){ + return _x*u._x+_y*u._y; + }; - ///Returns the sum of two vectors - xy operator+(const xy &u) const { - xy b=*this; - return b+=u; - }; + ///Returns the sum of two vectors + xy operator+(const xy &u) const { + xy b=*this; + return b+=u; + }; - ///Returns the difference of two vectors - xy operator-(const xy &u) const { - xy b=*this; - return b-=u; - }; + ///Returns the difference of two vectors + xy operator-(const xy &u) const { + xy b=*this; + return b-=u; + }; - ///Returns a vector multiplied by a scalar - xy operator*(const T &u) const { - xy b=*this; - return b*=u; - }; + ///Returns a vector multiplied by a scalar + xy operator*(const T &u) const { + xy b=*this; + return b*=u; + }; - ///Testing equality - bool operator==(const xy &u){ - return (_x==u._x) && (_y==u._y); - }; + ///Returns a vector divided by a scalar + xy operator/(const T &u) const { + xy b=*this; + return b/=u; + }; - ///Testing inequality - bool operator!=(xy u){ - return (_x!=u._x) || (_y!=u._y); - }; + ///Testing equality + bool operator==(const xy &u){ + return (_x==u._x) && (_y==u._y); + }; -}; -///Reading a plainvector from a stream -template -inline -istream& operator>>(istream &is, xy &z) -{ - ///This is not the best solution here: I didn't know how to solve this with friend functions - T a,b; - is >> a >> b; - xy buf(a,b); - z=buf; - return is; -} + ///Testing inequality + bool operator!=(xy u){ + return (_x!=u._x) || (_y!=u._y); + }; -///Outputting a plainvector to a stream -template -inline -ostream& operator<<(ostream &os, xy z) -{ - os << "(" << z.x() << ", " << z.y() << ")"; - return os; -} + }; + ///Reading a plainvector from a stream + template + inline + std::istream& operator>>(std::istream &is, xy &z) + { + ///This is not the best solution here: I didn't know how to solve this with friend functions + T a,b; + is >> a >> b; + xy buf(a,b); + z=buf; + return is; + } + ///Outputting a plainvector to a stream + template + inline + std::ostream& operator<<(std::ostream &os, xy z) + { + os << "(" << z.x() << ", " << z.y() << ")"; + return os; + } + +} //namespace hugo #endif //HUGO_XY_H