![]() |
Projet d'Informatique 2012
Simulation générique de systèmes physiques simples : vers les machines de Rube Goldberg
|
00001 00005 #ifndef VECTEUR_H 00006 #define VECTEUR_H 00007 00008 #include <vector> 00009 #include <iostream> 00010 00015 class Vecteur 00016 { 00017 public: 00018 00023 Vecteur(double dimension); 00024 00031 Vecteur(double x, double y, double z); 00032 00037 Vecteur(std::initializer_list<double> const& coordonnees); 00038 00043 void augmente(double const& valeur = 0.); 00044 00049 std::vector<double> const& composantes() const; 00050 00051 00056 size_t size() const; 00057 00064 double const& operator[](size_t const& index) const; 00065 00072 double& operator()(size_t const& index); 00073 00083 friend std::ostream& operator<<(std::ostream& out, Vecteur const& a_afficher); 00084 00091 bool operator==(Vecteur const& a_comparer) const; 00092 00100 bool operator!=(Vecteur const& a_comparer) const; 00101 00109 Vecteur& operator+=(Vecteur const& a_ajouter); 00110 00118 Vecteur operator+(Vecteur const& a_ajouter) const; 00119 00124 Vecteur operator-() const; 00125 00134 Vecteur& operator-=(Vecteur const& a_soustraire); 00135 00143 Vecteur operator-(Vecteur const& a_soustraire) const; 00144 00151 Vecteur& operator*=(double const& scalaire); 00152 00162 friend Vecteur operator*(double scalaire, Vecteur const& a_multiplier); 00163 00173 friend Vecteur operator*(Vecteur const& a_multiplier, double scalaire); 00174 00182 Vecteur& operator/=(double const& scalaire); 00183 00192 friend Vecteur operator/(Vecteur const& a_diviser, double scalaire); 00193 00200 double operator*(Vecteur const& a_multiplier_scal) const; 00201 00210 Vecteur& operator^=(Vecteur const& a_multiplier_vect); 00211 00219 Vecteur operator^(Vecteur const& a_multiplier_vect) const; 00220 00226 double norme() const; 00227 00232 double norme_carre() const; 00233 00238 Vecteur unitaire() const; 00239 00240 private: 00241 00247 void affiche(std::ostream& out) const; 00248 00252 std::vector<double> m_composantes; 00253 }; 00254 00255 #endif // VECTEUR_H