All pastes #398681 Raw Edit

Anonymous

public cpp v1 · immutable
·published 2007-03-17 13:18 UTC
rendered paste body
/** \brief Ce fichier doit contenir l'ensemble des implmentationsrelatives  la classe vecteur et aux fonctionnalits la concernant */#include "Vecteur.h"#include <cassert>#include <iostream>#include <math.h>using std::cout;using std::cin;		/**		 * \brief Constructeur créant un vecteur de nDim dimensions avec toutes les coordonnées à val		 * \param nDim : nombre de dimensions		 * \param val : valeur à affecter à toutes les coordonnées		 * 		 */		 Vecteur::Vecteur(unsigned int nDim , float val):coordonnees(new float[nDim]),dimension(nDim){		 	for (unsigned int i = 0; i < nDim; ++i) {		 		coordonnees[i] = val;		 	}		 	cout << "Vecteur à " << nDim << " dimension(s) initalisé à "<< val << "créé.";		 			 }		 		/**		 * \brief Constructeur de copie : Crée une copie de l'objet passé en paramètre		 * 		 */		 Vecteur::Vecteur(const Vecteur & v):coordonnees(new float[v.dimensions()]),dimension(v.dimensions()){		 	for (unsigned int i = 0; i < dimension; ++i) {		 	 coordonnees[i] = v.get(i);		 	}		 }		 		/**		 * \brief Destructeur		 * 		 */		 Vecteur::~Vecteur() {		 	delete [] coordonnees;		 }		/**		 * \brief Méthode permettant d'obtenir la valeur d'une coordonnée		 * \param ind : indice de la dimension dans laquelle on souhaite obtenir la coordonnée		 * \return : valeur de la coordonnée		 * 		 */		 float Vecteur::get(unsigned int ind) const {		 	assert (ind < dimension);		 	return coordonnees[ind]; 		 } 		 /**		 * \brief Méthode permettant de modifier la valeur d'une coordonnée		 * \param ind : indice de la dimension dans laquelle on souhaite modifier la coordonnée		 * \return : valeur de la coordonnée		 * 		 */		 void Vecteur::set(unsigned int ind, float val) {		 	assert (ind < dimension);			coordonnees[ind] = val;		 } 		/**		 * \brief Méthode permettant de connaitre le nombre de dimensions du vecteur		 * \return : Nombre de dimensions du Vecteur		 * 		 */		 unsigned int Vecteur::dimensions() const {		 		 	return dimension;		 } 		/**		 * \brief Fonction permettant l'affichage d'un vecteur		 * \param v : pointeur vers le vecteur à afficher		 * 		 */		 void afficherVecteur(const Vecteur * v){		 	unsigned int v_dim = v->dimensions();		 	cout << "( ";		 	for (unsigned int i = 0;i < v_dim; ++i){		 		cout << v->get(i) << " ";		 	} 		 	cout << ")";		 }		/** 		 * \brief Fonction initialisant un vecteur avec des caractéristiques fournies par l'utilisateur		 * \return : pointeur vers le Vecteur initialisé		 */		 Vecteur * lireVecteur(){		 	unsigned int v_dim;		 	float v_val;		 			 	cout << "Dimension du vecteur : ";		 	cin >> v_dim;		 	Vecteur * v = new Vecteur(v_dim,0.0);		 	for (unsigned int i = 0; i < v_dim; ++i) {		 		cout << '\n' << "Coordonnées dans la dimension " << i <<" :";		 		cin >> v_val;		 		v->set(i,v_val);		 	}		 	return v;		 } 		/**		 * \brief Fonction permettant d'ajouter 2 vecteurs		 * \param v1 : premier vecteur		 * \param v2 : second vecteur à ajouter au premier		 * \return : nouveau vecteur contenant la somme de v1 et v2		 * 		 */		 Vecteur add(const Vecteur * v1, const Vecteur * v2){		 	unsigned int v_dim = v1->dimensions() > v2->dimensions() ? v1->dimensions() : v2->dimensions();		 	float v_sum;		 			 	Vecteur v = * new Vecteur(v_dim,0.0);		 	for(unsigned int i=0;i < v_dim; ++i) {		 		v_sum = i >= v1->dimensions() ? 0 : v1->get(i);		 		v_sum += i >= v2->dimensions() ? 0 : v2->get(i);		 		v.set(i, v_sum);		 	}		 	return v;		 }