Algo Conversion Notation Infixe en Notation Polonaise Inverse

Algo Conversion Notation Infixe en Notation Polonaise Inverse - Algo - Programmation

Marsh Posté le 26-10-2005 à 18:50:18    

Bonjour,
 
je me penche sur cet algo (voir ci dessous : source wikipedia) pour convertir une expression en notation infixe en notation polonaise inverse.
seulement je n'arrive pas a comprendre de quoi il s'agit quand on parle d'associativite a gauche ou a droite.
 
 
 
------------------------------------------------------
tant qu’il y a des tokens à lire:
 
        lire le token
        si c’est un nombre l’ajouter à la sortie
        si c’est un opérateur o1 alors
 
            1) s’il y a un opérateur o2 sur le haut de la pile et si l’une des conditions suivantes est remplie.
 
                        o1 est associativité à gauche et sa priorité est inférieure ou égale à celle d’o2, ou
                        o1 est associativité à droit et sa priorité est inférieure à celle d’o2,
 
                retirer o2 de la pile pour le mettre dans la sortie
 
            2) mettre o1 sur la pile
 
        si le token est une parenthèse gauche, le mettre sur la pile
        si le token est une parenthèse droite, alors dépiler les opérateurs et les mettant dans la sortie jusqu’à la parenthèse gauche qui elle aussi sera dépilée, mais pas mise dans la sortie. Si toute la pile est dépilée sans touver de parenthèse gauche c’est qu’il y a un mauvais parenthésage.
 
    après la lecture du dernier token il faut dépiler tous les opérateurs de la pile et mettre chaque élément dans la sortie.
 
S’il y a une parenthèse gauche c’est qu’il y a eu un mauvais parenthésage.
------------------------------------------------------
 
 
 
du coup, je narrive pas a traduire cette partie de l'algo en C  :??:  
Quelqu'un pourrait il mexpliquer de quoi il sagit ?
 
Merci davance.

Reply

Marsh Posté le 26-10-2005 à 18:50:18   

Reply

Marsh Posté le 26-10-2005 à 21:22:04    

L'algo est donné c'est quoi le souci ? tu sais faire un getc un isdigit ...  tu sais ce qu'est une pile et un boucle while ...
Allez vasy ! Libere le codeur qui est en toi :)


Message édité par Chronoklazm le 26-10-2005 à 21:22:55

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 26-10-2005 à 21:25:09    

bon, je repose la question (visiblement cetait pas clair) :
 
je cherche qqun (ou un lien) qui pourrait m'expliquer ce qu'est "l'associativite a gauche" et a droite.
 
PS : je n'ai ni le droit d'utiliser getc ni isdigit...

Reply

Marsh Posté le 26-10-2005 à 21:30:49    

Google ????

Citation :

Un opérateur associatif à gauche signifie que l'opérande de gauche est d'abord calculée.
 
int resultat = a + b - c;
// équivaut
int resultat = (a + b) - c;


 
Regarde du côté des grammaires et générateurs d'analyseur syntaxique/lexical ... bison et flex en l'occurence.


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed