All pastes #395402 Raw Edit

Something

public cpp v1 · immutable
·published 2007-03-15 00:27 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;		/**		 * 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éé.";		 			 }		 		/**		 * 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);		 	}		 }		 		/**		 * Destructeur		 * 		 */		 Vecteur::~Vecteur() {		 	delete [] coordonnees;		 }		/**		 * 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]; 		 } 		 /**		 * 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;		 } 		/**		 * Méthode permettant de connaitre le nombre de dimensions du vecteur		 * @return : Nombre de dimensions du Vecteur		 * 		 */		 unsigned int Vecteur::dimensions() const {		 		 	return dimension;		 } 		/**		 * 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 << ")";		 }		/** 		 * Fonction initialisant un vecteur avec des caractéristiques fournies par l'utilisateur		 * @return : pointeur vers le Vecteur initialisé		 */		 Vecteur * 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;		 } 		/**		 * 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 Vecteur::add(const Vecteur * v1, const Vecteur * v2){		 	unsigned int v_dim = v1->dimensions() > v2->dimensions() ? v1->dimensions() : v2->dimensions();		 	unsigned int 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;		 }