na_no_net
Messages postés14Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention13 juillet 2007
-
5 déc. 2005 à 19:30
na_no_net
Messages postés14Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention13 juillet 2007
-
6 déc. 2005 à 19:52
Bonjours
Mon problème c est que a l école le prof nous a données 1 projet pour 2 semaine pour développez un programme qui lit une expression arithmétique et quil transforme sous forme d arbre.
Mais moi je suis 1 accès direct en 3eme année donc j ai un grand problème à faire ce genre du projet sur tout en c++ (oriente objet)
na_no_net
Messages postés14Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention13 juillet 2007 6 déc. 2005 à 13:13
Merci dabord pour votre aide
L expression pour la quelle je parle est de type y=e+f (a, b, c)/m
Avec fè est une fonction plusieurs variables quon appelle des opérants
Avec des opérateur du genre " + - * / ^" plus que les parenthèses
Par exemple :
Y=a+ ((b+c-5/a^2) +a*b/c)-13
Et que les noeuds ne peut avoir au maximum que deux branches
Pour ça le programme est besoin de plusieurs classe dans ces classes on peut utiliser des fonctions qui permet de contrôler les parenthèses et les opérateur et a la fin le programme nous afficher l arbre
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 6 déc. 2005 à 18:36
Je viens justement de finir ce genre de librairie, sauf que j'ai
également donné la possibilité de définir soi meme de nouveaux
opérateurs, une série de fonction, surcharge d'opérateur pour évaluer
la fonction, une gestion des erreurs, etc... Mais pour tout te dire,
c'est beaucoup de boulot :)
Seulement, je me suis permis d'ajouter un type de noeud particulier (un
conteneur), qui peut posséder 3 noeud ou plus mais dont l'opérateur est
le meme. Ceci est valable des que l'opérateur est associatif.
J'essaierai de le poster dans la semaine, si ca peut t'aider.
Dans le principe, voila la structure que j'ai adopté:
template <class _OBJ> class block; // classe abstraite d'ou dérive une quantité de blocs particuliers
template <class _BASE> class block_operator : public block<_BASE>; // class abstraire pour opérateur.
template <class _BASE> class block_container : public block_operator<_BASE>; //
template <class _BASE, class _ARG1, class _ARG2> class block_binary_operator : public block_operator<_BASE>;
template <class _BASE, class _ARG> class block_unary_operator : public block_operator<_BASE>; // opérateur unaire
template <class _OBJ> class block_data : public block<_OBJ>; // pour les littéraux (cad des valeurs)
template <class _OBJ> class block_var : public block<_OBJ>; // pour les variables.
Voila la structure que j'ai adopté, il y en a surement d'autre (peut etre mieux).
na_no_net
Messages postés14Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention13 juillet 2007 6 déc. 2005 à 19:52
Merci mon frère
Comme j ai dit je suis 1 accès direct en 3 eme années donc j ai 1 problème cest que en 3 eme années ont étude le C++ mais pour moi ma formation du 1 ère cycle et limité au niveau du VB (on a pas étudier le langage c) donc vraiment jai 1 grande problème a comprendre ce genre de programme ça c est dune part dautre part le dernier délai de rendre la projet et dici 2 semaine .donc si tu peut me données soit le programme pour essai de comprendre avec précision le problème que jai soit de me donnes 1 cours pour résoudre ce problème.
Merci une 2eme fois et excuser moi pour le dérangement