diff --git a/REPONSES.txt b/REPONSES.txt index 18a52b6..e9fe4c5 100644 --- a/REPONSES.txt +++ b/REPONSES.txt @@ -1,55 +1,56 @@ Ce Document sert pour r�pondre aux questions pos�es dans les diff�rentes s�ries li�es au projet S�rie Semaine 1 [Question P1.1] Comment repr�sentez-vous ces vecteurs ? Comment sont-ils organis�s : quels attributs ? quelles m�thodes ? quels droits d'acc�s ? Nous repr�sentons ces vecteurs sous forme de vectors dinamiques, ayant comme dimension de default 3, car on travaillera souvent avec des vecteurs de dimension trois: ex. vecteurs position, force, acc�leration etc. L'aspect dynamique des vectors nous permettrera de pouvoir mod�liser de fa�on plus libre ces vecteurs, pour les transformer par exemple en listes de param�tre qui pourraient �tre utiles comme entr�e de fonctions avanc�es pour l'integrations num�rique des �quations du mouvement, aspect fondamentale pour notre projet. En attribut nous avons choisi un vector, lequel contiendra les coordonn�es du vecteur de la classe "Vector". On a choisi d'utiliser un vector pour pouvoir exploiter de nombreuse fonctions d�j� existant dans la librairie corr�espondante, en les implementant pour notre classe (Voir par exemple la fonction Vector::size()). Ainsi faisant, nous pouvont rendre la classe plus dynamique et modulable. On a comme m�thodes: Deux constructeurs et un destructeur nous facilitant les taches de cr�ation et d�struction d'un vecteur. Des iterateurs, pour it�rer dans les coordonn�es des vecteurs. Une fonction Vectot::unit(), retournant un vecteur unitaire de m�me direction du vecteur d'int�r�t. tr�s util pour la construction des �quations de Newton. Trois Manipulateurs: La fonction Vector::augmente(), permettant d'ajouter une dimension et la coordonn�e corr�spondante au vecteur. La fonction Vector::clear(), nous permettant de vider le vecteur et le faire retourner � dimension 0. Ce manipulateur est utilis� par la suite, par l'operator "=" pour vider le vecteur dans lequel on veut copier l'autre avant de l'affecter. Plusieurs accesseurs dont: La fonction Vector::size(), qui permet d'utiliser la fonction size() d�ja presente dans la librairie <vector>, mais sur notre classe "Vector". Les fonctions Vector::module() et Vector::sq:module(), retournant respectivement le module et le carr� du module du vecteur. Plusieurs operators implement�s pour faciliter les operations � faire sur les vecteurs: Operator +, +=, - et -= pour la somme des vecteurs. Operator *, *=, / et /= pour la multiplicaton entre un scalaire et un vecteur. Operator * pour le produit scalaire entre deux vecteurs. Operator ^ pour le produit vectoriel entre deux vecteurs (de dimension 3). Operator [] pour pouvoir acc�der rapidement et intuitivement � une coordonn�e du vecteur. Ce dernier permet aussi d'affecter plus rapidement cette variable. C'est en effet le motif pour lequel nous n'avons pas choisi la foction set_coord(). Operator = pour affecter un vecteur � un autre vecteur. Operator == nous retournant true ou false si les deux vecteurs compar�s sont �gaux ou non Ce dernier sobstitue la fonction compare(). Operator != ayant le comportement inverse de l'operator == . L'acc�s est publique � toutes les m�thodes car toutes directement utiles dans la manipulation des vecteurs. Les attributs sont en acc�s priv�. [Question P1.2] Quel choix avez vous fait pour les op�rations entre vecteurs de dimensions diff�rentes ? Nous avons choisir de lancer une exception (un message d'erreur), lorsque l'utilisateur lance un produit scalaire ou vectoriel sur deux vecteurs n'ayant pas de dimensions compatibles. On pr�f�re traiter comme �a le probl�me et ensuite implementer des traitement plus particulier en fonction du cas sp�cifique, si il y aura besoin. -Dans le cas de somme de deux vecteur ayant dimensions diff�rentes, on a choisi de donner priorit� au vecteur de dimension plus petite. \ No newline at end of file +Dans le cas de somme de deux vecteur ayant dimensions diff�rentes, on a choisi de donner priorit� au vecteur qui apparait en premier dans l'op�ration. +Ceci permettra � l'utilisateur de choisir d'obtenir le vecteur de dimension voulue. \ No newline at end of file