begin process at 2012 05 28 10:24:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Calculette / arbre binaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calculette / arbre binaire

lundi 20 juin 2005 à 15:33:11 | Calculette / arbre binaire

mewa

Bonjour;
Alors voila j'ai un projet a fere qui est la creation d une mini calculette avec un arbre bianaire, ce ki permet de prendre en compte les parenthese.
Donc g créé l arbre binaire et il tien en compte de tout, c a dire lorsque je l affiche il sort parfaitement avec tous les caractere.
Mon probleme provien de ma fonction de calcule qui est une fonction recursive (enfin je pense). Car lorsque je melange 2 operateurs differents, il ne tien en compte que le premier operateur. Par exemple je pose ce calcul : ( ( 2 + 3 ) * ( 4 + 6 ) )
normalement c egal a 50, maisle resulta afficher est 15.
Donc si quelqu un aurait une solution qui me le dise.
Merci d 'avance
voici le code de ma fonction :

void calcul  (arbre *a, double  *R )
{
 if (a->op != NULL)
    {
        opp  = *(a->op); 
         calcul(a->g, R);
   calcul(a->d, R); 

 }
    else
 {
      if ( opp == '+' )
  {

     *R = *R + a->val ;      
  }
     if ( opp == '-' )
     {
       *R = -*R - a->val ;
     }
     if ( opp == '*' )
     {
        if (*R == 0)
       {
        *R = 1;
       }
        *R = *R * a->val;
       }
     if ( opp == '/' )
      {
        if (*R == 0)
        {
         *R = 1;
        }

         *R =   a->val / *R ;
       
      }

 }

}    

lundi 20 juin 2005 à 16:05:09 | Re : Calculette / arbre binaire

darfeuille

 if (a->op != NULL)
 {
        opp  = *(a->op); 
         calcul(a->g, R);
        calcul(a->d, R); 

 }
 else
 {
      if ( opp == '+' )
     {
  .............

Euh...... si a->op == NULL alors opp n'existe pas;  ca ne peut pas compiler tout ca; comment tu as fait pour le compiler sans qu'il mette d'erreur ??






lundi 20 juin 2005 à 16:20:10 | Re : Calculette / arbre binaire

mewa

ben ca le compile très bien. Ca me semblait bizard au debut, mais ca marche, donc voila. Ou pt etre que c ca le probleme. je c pa   
lundi 20 juin 2005 à 17:04:11 | Re : Calculette / arbre binaire

darfeuille

Réponse acceptée !
ah d'accord, il est déclaré en dehors.
alors :
1/ initialise tu bien *R a 0 au debut?

2/ je pense que tu n'as pas compris le principe des arbres et de la récurrence.

Ce n'est pas, si on a  a+b , de faire R = 0+a  puis R = R+b
Mais c'est plutot :
Si tu as A+B :
 tu calcule R1=calcul(A)
                  R2 = calcul(B)
puis enfin : R = R1+R2

J'espere que tu comprend ce que je veux dire.
Pour te donner un exemple, dans ton code, au lieu d'avoir
  opp  = *(a->op); 
   calcul(a->g, R);
   calcul(a->d, R);

  Tu dois faire :
   R1 =  calcul(
a->g);
   R2 =  calcul(a->d);
   R = R1+R2;

Allez, avec ca, tu devrais t'en sortir . Réfléchis bien aux variables, si tu garde des pointeurs, tu vas écraser des valeurs au cours des itérations, donc ne renvoie pas de double* mais des double.
et si op = NULL, alors tu renvoie simplement la variable.






     


lundi 20 juin 2005 à 20:18:53 | Re : Calculette / arbre binaire

mewa

Ok merci je pense ke ca devre aller.Mais OPP tu l initialise où?

lundi 20 juin 2005 à 20:38:16 | Re : Calculette / arbre binaire

mewa

c bon !!! g reussi
merci bcp
a la prochaine
mardi 21 juin 2005 à 08:22:06 | Re : Calculette / arbre binaire

darfeuille

content de pouvoir rendre service

Si ta calculette marche, je pense que tu pourrais proposer les sources ici, en précisant bien que c'est sous forme d'arbre
Ca doit pouvoir intéresser des gens.



Cette discussion est classée dans : arbre, calcul, val, calculette, opp


Répondre à ce message

Sujets en rapport avec ce message

Arbre Lexicographique [ par LordBob ] Bonjour a tous,voila en fait j'ai un exercice d'algorithmique ou je dois créé un arbre l'exicographique, voici la structure de ma classe:class ArbreLe cast d'un float en double [ par ashboody ] j'aimerais me passer de la variable d_val est-ce possible en faisant un cast de f_val ?/* proto de la fonction Calcul */int Calcul (double *Value);/* arbre binaire de recherche equilibrée [ par mrihab ] salut je suis une etudiante en informatique je veux savoir comment realiser une interface graphique representant cette arbre binaire equilibrée DevCpp 4.9.9.0 et mysql ???????????????? [ par foxugly ] Salut,j'essaye de chipoter avec une db mysql à partir de devcpp et ça ne marche pas......j'ai installé devcpp, le pack mysql et easyphp 1.7, dans eas Pointeurs [ par ph0ton ] salut,j'ai beaucoup de mal a ecrire des pointeurs correctement, et j'aurai besoin de l'avis d'un connaisseur pour savoir si ce que j'ai ecrit est corr calcul sur 64 bits [ par laurentrupin ] Bonjour,J'ai besoin de faire le calcul suivant en embarqué :y = ((x - 36 571 428) * 2^32) / 73 142 857avec x compris entre 30 000 000 et 40 000 000mai simulation graphique d'un arbre n-aire [ par montana2004 ] salut,j'ai besoin d'aide pour realiser mon projet d'éte qui a pour sujetsimulation graphique de la creation,recherche,suppression,ajout dans un arbre arbre binaire [ par ghounaya ] je cherche une simulation graphique des arbres binaires :recherche,ajout et suppression d'un élément. Consever les données en changean de dialogbox [ par malik7934 ] Hello,Ma xème question du jour!J'ai un dialogbox qui intègre des données. A partir de ces données, des calculs sont faits. Je veux avoir deux dialogbo [newbie] isdigit + double = :'( [ par CHKDSK2K ] Bonjour all, le probleme est que apres la verfication il ne m'affiche pas le nombre que j'ai entré .... :'( voici le cs#include #include void main(){


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,391 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales