Expression Arithmétique

Signaler
Messages postés
2
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
20 juillet 2007
-
Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008
-
Bonjour,



J'ai un souci, j'ai essayé de me renseigner sur les différentes sources mais pas trouvé.



Je fais un programme me permettant de calculer les opérations arithmétiques, le code utilise les piles;

*L'utilisateur enregistre les valeurs,

*ensuite on les lit a l'envers apres les avoirs empilées,

*Puis si on trouve un opérateur quand on depile on calcul



Mon problème est que je ne sais pas comment tranformé l'operateur
(+,-,/,*) qui est en char en un format convenable voila le code auriez
vous une solution ou plutot un chemin a suivre car je ne vois pas.



/********************************************************************************/

/*
Objet : Fonction d'expression d'évaluation
arithmetique
*/

/********************************************************************************/

void Algorithme(){

Pile *pP;

Donnee Don1, Don2;

char *tab;

int i, j;

float x;



puts("Veuillez entrer un operation arithmetique");

scanf("%s", tab); getchar();



pP=Initialisation();

for(i=0; tab[i]!='\n';i++){}

for(j=i; j>0 ;j--){

if(tab[j]!= '+' || tab[j]!= '-' || tab[j]!= '*' || tab[j]!= '/')

Empile(*pP, x=(float)(tab[j]));

else if(tab[j]== '+' || tab[j]== '-' || tab[j]== '*' || tab[j]== '/'){

Depile(&pP, &Don1);

Depile(&pP, &Don2);

Don1=Don1
tab[j] Don2; // Comment modifié le
tab[j]

Empile(&pP, &Don1);

}

}

Suppression(&pP);

}



Merci

1 réponse

Messages postés
106
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
11 février 2008

Simple :

switch (tab[i])
{
case '+' :
Don1 = Don1 + Don2;
break;
case '-' :
...
}

voila a+