Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

Notation polonaise inverse


la notation polonaise inverse (NPI), également connue sous le nom de notation post-fixée, permet de noter les formules arithmétiques sans utiliser de parenthèses. Dérivée de la notation polonaise présentée en 1920 par le mathématicien polonais Jan Łukasiewicz, elle s'en différencie par l'ordre des termes : les opérandes y sont présentés avant les opérateurs et non l'inverse.

Quels sont ses avantages ?

NPI a été inventé par le philosophe australien et informaticien Charles Hamblin dans le milieu des années 1950, pour permettre les calculs sans adresse mémoire (à vérifier).

Elle a été utilisée pour la première fois comme interface utilisateur par les calculateurs de bureau d'Hewlett-Packard à la fin des années 1960, puis dans la calculatrice scientifique Hp-35 lancée en 1972. Avec la NPI les opérandes précèdent l'opérateur, cette notation permet donc de se passer des parenthèses.

Par exemple, l'expression :
3 * (4 + 7)
s'écrira :
3 4 7 + *
En pratique sur une calculatrice de NPI le calcul sera saisi en tant que :
« 3 », « entrée », « 4 », « entrée », « 7 », « + », « * ».

La réalisation de calculatrices NPI est basée sur l'utilisation d'une pile; c'est-à-dire, que les opérandes sont ajoutés en haut de la pile, et les résultats des calculs sont retournés en haut de la pile. Bien que ce concept puisse sembler inutilement compliqué au début, l'analyse d'une expression sous forme NPI a l'avantage de la concision. Sur un ordinateur, elle se prête d'ailleurs bien aux transformations en raison de sa grammaire simple.


Sommaire

Implications pratiques


Avantages

Inconvénients

Exemple

Le calcul:
((1 + 2) * 4) + 3
peut être notés en NPI comme ceci:
1 2 + 4 * 3 +

L'expression est évalués de la façon suivante (la pile est montré après avec chaque opération):

Entrée Pile Opération
1 1 Pousser l'opérande
2 1,2 Pousser l'opérande
+ 3 Addition
4 3,4 Pousser l'opérande
* 12 Multiplication
3 12,3 Pousser l'opérande
+ 15 Addition

Le réslutat final 15 se trouve en haut de la pile à la fin du calcul.

+---------------+
+ 1 + [ 1 ] [ entrez ]
+ +
+ +
+---------------+
+---------------+
+ 2 + [ 2 ] [ entrez ]
+ 1 +
+ +
+---------------+
+---------------+
+ 3 + [ + ]
+ +
+ +
+---------------+
+---------------+
+ 4 + [ 4 ] [ entrez ]
+ 3 +
+ +
+---------------+
+---------------+
+ 12 + [*] 
+ +
+ +
+---------------+
+---------------+
+ 3 + [3] [entrez ]
+ 12 +
+ +
+---------------+
+---------------+
+ 15 + [+] 
+ +
+ +
+---------------+

Conversion à partir de la notation infix

Comme l'évaluation de NPI, la conversion de la notation d'infixe en NPI est basé sur l'utilisation d'une pile. Les expressions d'infixe sont la forme de mathématique que la plupart des personnes utilisent, par exemple : 3+4 ou 3+4*(2-1).

Pour la conversion il y a 2 Variables texte (chaîne de caractères), l'entrée et la sortie. Il y a également une pile pour empiler les opérateurs pas encore ajouté à la chaîne de sortie. Pour convertir, le programme lit chaque lettre dans l'ordre et réalise l'opération liée à cette lettre.

Une conversion simple

l'entrée: 3+4
ajouter 3 à la sortie
ajouter + sur la pile des opérateurs
ajouter 4 à la sortie
à la fin de la lecture de l'entrée dépiler la pile des opérateurs dans la sortie
la sortie : 3 4 +

Ce simple exemple nous montre les règles suivantes :

Description de l'algorithme

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 suivante est remplie.
o1 est associativité à gauche et sa priorité est inférieur ou égal à 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épillée, mais pas mise dans la sortie. Si toute la pile est dépile 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.


Quelques utilisation réelles de la NPI

Voir aussi

Référence



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia