Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes > Mathématiques
Mathématiques Forum d'entraide sur les mathématiques et l'algorithmique numérique. Avant de poster : Cours d'algorithmique numérique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 19h55   #1
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Par défaut Algorithme conversion postfixée vers infixée

Salut, je cherche l’algorithme qui permet de convertir une expression arithmétique postfixée vers une expression infixée.
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 18h16   #2
Modérateur
 
Avatar de Franck Dernoncourt
 
Homme Franck Dernoncourt
Chercheur en informatique
Inscription : avril 2010
Messages : 808
Détails du profil
Informations personnelles :
Nom : Homme Franck Dernoncourt
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Enseignement

Informations forums :
Inscription : avril 2010
Messages : 808
Points : 2 407
Points : 2 407
Envoyer un message via ICQ à Franck Dernoncourt Envoyer un message via AIM à Franck Dernoncourt Envoyer un message via MSN à Franck Dernoncourt Envoyer un message via Yahoo à Franck Dernoncourt Envoyer un message via Skype™ à Franck Dernoncourt
As-tu cherché sur Google quelque chose du genre "convert postfix to infix" ? Il semble y avoir beaucoup de résultats.
Franck Dernoncourt est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 18h27   #3
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par Franck Dernoncourt Voir le message
As-tu cherché sur Google quelque chose du genre "convert postfix to infix" ? Il semble y avoir beaucoup de résultats.
Salut, en effet j'ai cherché sur Google, mais il donne toujours "infix to postfix".
En tout cas moi je cherche les étapes à suivre pour faire la conversion en utilisant une pile.
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 18h33   #4
Modérateur
 
Avatar de Franck Dernoncourt
 
Homme Franck Dernoncourt
Chercheur en informatique
Inscription : avril 2010
Messages : 808
Détails du profil
Informations personnelles :
Nom : Homme Franck Dernoncourt
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Enseignement

Informations forums :
Inscription : avril 2010
Messages : 808
Points : 2 407
Points : 2 407
Envoyer un message via ICQ à Franck Dernoncourt Envoyer un message via AIM à Franck Dernoncourt Envoyer un message via MSN à Franck Dernoncourt Envoyer un message via Yahoo à Franck Dernoncourt Envoyer un message via Skype™ à Franck Dernoncourt
http://www.cs.man.ac.uk/~pjj/cs212/fix.html :
Converting between these notations

The most straightforward method is to start by inserting all the implicit brackets that show the order of evaluation e.g.:
Infix	                    Postfix	         Prefix
( (A * B) + (C / D) )	( (A B *) (C D /) +)	(+ (* A B) (/ C D) )
((A * (B + C) ) / D)	( (A (B C +) *) D /)	(/ (* A (+ B C) ) D)
(A * (B + (C / D) ) )	(A (B (C D /) +) *)	(* A (+ B (/ C D) ) )
You can convert directly between these bracketed forms simply by moving the operator within the brackets e.g. (X + Y) or (X Y +) or (+ X Y). Repeat this for all the operators in an expression, and finally remove any superfluous brackets.
You can use a similar trick to convert to and from parse trees - each bracketed triplet of an operator and its two operands (or sub-expressions) corresponds to a node of the tree. The corresponding parse trees are:

			      /			   *
      +			     / \		  / \
     / \		    *   D		 A   +
    /   \		   / \			    / \
   *     /		  A   +			   B   /
  / \   / \		     / \		      / \
 A   B C   D		    B   C		     C   D

((A*B)+(C/D))		((A*(B+C))/D) 		(A*(B+(C/D)))
Franck Dernoncourt est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 18h44   #5
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par Franck Dernoncourt Voir le message
http://www.cs.man.ac.uk/~pjj/cs212/fix.html :
Converting between these notations

The most straightforward method is to start by inserting all the implicit brackets that show the order of evaluation e.g.:
Infix	                    Postfix	         Prefix
( (A * B) + (C / D) )	( (A B *) (C D /) +)	(+ (* A B) (/ C D) )
((A * (B + C) ) / D)	( (A (B C +) *) D /)	(/ (* A (+ B C) ) D)
(A * (B + (C / D) ) )	(A (B (C D /) +) *)	(* A (+ B (/ C D) ) )
You can convert directly between these bracketed forms simply by moving the operator within the brackets e.g. (X + Y) or (X Y +) or (+ X Y). Repeat this for all the operators in an expression, and finally remove any superfluous brackets.
You can use a similar trick to convert to and from parse trees - each bracketed triplet of an operator and its two operands (or sub-expressions) corresponds to a node of the tree. The corresponding parse trees are:

			      /			   *
      +			     / \		  / \
     / \		    *   D		 A   +
    /   \		   / \			    / \
   *     /		  A   +			   B   /
  / \   / \		     / \		      / \
 A   B C   D		    B   C		     C   D

((A*B)+(C/D))		((A*(B+C))/D) 		(A*(B+(C/D)))
Merci pour l'aide.
D’après ce que je comprends ce procédé est récursif. Je cherche la version itérative qui utilise une pile, le processus inverse de "infix->postfix".
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 18h50   #6
Modérateur
 
Avatar de Franck Dernoncourt
 
Homme Franck Dernoncourt
Chercheur en informatique
Inscription : avril 2010
Messages : 808
Détails du profil
Informations personnelles :
Nom : Homme Franck Dernoncourt
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Enseignement

Informations forums :
Inscription : avril 2010
Messages : 808
Points : 2 407
Points : 2 407
Envoyer un message via ICQ à Franck Dernoncourt Envoyer un message via AIM à Franck Dernoncourt Envoyer un message via MSN à Franck Dernoncourt Envoyer un message via Yahoo à Franck Dernoncourt Envoyer un message via Skype™ à Franck Dernoncourt
http://wiki.answers.com/Q/How_do_you..._infix_in_Java ?
Franck Dernoncourt est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 19h17   #7
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par Franck Dernoncourt Voir le message
Oui c'est ça , mais je veux l'algorithme claire, les instructions quoi, l'implémentation dans n'importe quel langage c'est une autre affaire.
Un truc du genre :
(infixée->postfixée)
On traite séquentiellement l'expression infixée (EI). Selon le symbole en cours :
1) Opérande -> l'ajouter à l'expression postfixée (EP).
2) '(' -> l'empiler dans la pile des symboles (PS).
3) ')' -> répéter dépiler l'opérateur depuis PS puis l''ajouter à EP jusqu'à trouver le '(', puis dépiler PS pour se débarrasser du '('.
4) Opérateur -> Si la pile est vide alors empiler l'opérateur sinon
tant que l'opérateur au sommet de la pile est moins prioritaire ou égal à la priorité de l'opérateur en cours dépiler et ajouter à EP. enfin empiler l'opérateur.

Moi je veux le processus inverse.
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/02/2012, 12h54   #8
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 8 740
Détails du profil
Informations personnelles :
Âge : 54

Informations forums :
Inscription : janvier 2007
Messages : 8 740
Points : 9 974
Points : 9 974
oui, eh bien ça doit bien être ça le sujet de ton boulot, non ?

Alors cherche et propose
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 04/02/2012, 14h32   #9
Membre du Club
 
Avatar de Onimaru
 
Homme Shinichi Onimaru
Étudiant
Inscription : mars 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Shinichi Onimaru
Âge : 22
Localisation : Japon

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2010
Messages : 215
Points : 56
Points : 56
Citation:
Envoyé par souviron34 Voir le message
oui, eh bien ça doit bien être ça le sujet de ton boulot, non ?

Alors cherche et propose
tu me prends pour qui ???
Regarde mes discussions avant de dire n'importe quoi.
Onimaru est déconnecté   Envoyer un message privé Réponse avec citation 02
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h38.


 
 
 
 
Partenaires

Hébergement Web