Bonjour,
C'est avec plaisir que je propose mon aide. Ma première calculatrice était algébrique (avec parenthèse) mais depuis 1990 j'utilise surtout une HP (polonaise inversée).
Le souci de cet énoncé est qu'il est ambigü.
En effet, il y a plusieurs types de machine en Notation Polonaise Inverse (RPN est le sigle anglais consacré).
Si en effectuant les opérations décrite dans votre post et que vous obtenez 5.75 c'est que vous utilisez une calculatrice conforme à la façon de faire historique.
Sur mon HP de 1990, par contre, la même séquence de touche donne comme résultat 13.0000 mais contrairement aux RPN historiques, mon HP est une version moderne de cette notation (on dit RPL). Il y a une différence subtile dans le rpincipe de fonctionnenet qui fait que j'obtient un résultat différent.
Je vous propose de voir dans le détail ce qui ce passe dans les deux cas (RPN) et (RPL) ce qui nous permettra d'y voir plus clair. Et surtout de donner une expression algébrique aux calculs effectués :
*Calculatrice en Notation Polonaise Inverse Historique * (les anciennes HP, mais aussi les autres marques apparue dès les années 1970 )
La notation polonaise inverse part du principe que l'on doit saisir les termes d'un calcul avant d'appuyer sur la touche d'une opération. Ainsi pour additionner 2 et 3 on saisit d'abors les termes 2 et 3 , puis on affectue le calcul en pressant sur la touche [ + ]. Le principe est qu'un calcul est fait immédiatement à partir des éléments entrés par l'utilisateur dans une pile de registre. Le résultat de l'opération viendra d'aileurs remplacer les deux termes par le résultat de l'addition.
Ce principe est utilisé pour toutes les opérations et fonctions dont dispose la calculette.
Bien évidemment, il faut une touche pour séparer les nombres consécutifs saisis. La touche [ENTER^] sert à cela.
Donc pour l'addition de 2 et 3 on doit taper 2 [ ENTER^] 3 [ + ]
Il n'y a besoin que d'un seul séparateur (entre 2 et 3) car sur les calculettes RPN historiques, la saisie des nombres se fait directement dans le premier registre du processeur.
La touche [ENTER^] permet alors de sauvegarder le contenu du registre principal et de préparer la calculatrice à la saisie du nombre suivant.
Historiquement les registres d'une telle calculatrice sont appelés x:, y:, z: et t:
Je propose de suivre dans le détail ce qui se passe quand on suit les opérations indiquée dans l'excercice sur ce type de machine RPN :
25 [ENTER^] 8 [ENTER^] 1.5 [ENTER^] [ x ] [ - ]
J'utilise les crochets pour mettre en évidence les opérateurs (c'est à dire en fait les touches).
- Code: Tout sélectionner
| [ 2 ] | [ 5 ] | [ENTER^]| [ 8 ] |
-------------------+---------+---------+---------+---------+
t: | | | | |
z: | | | | |
y: | | | 25. | 25. |
x: 0 | 2. | 25. | 25. | 8. |
-------------------+---------+---------+---------+---------+
Affichage: 0.0000 | 2_ | 25_ | 25.0000 | 8_ |
Comme on peut le voir, la saisie se fait directement dans le registre principal (x:). La touche
entrée permet de séparer les deux nombres en décalant le contenu de la pile vers le haut.
Mais sur ces machines historiques, tout ne se passe exactement comme le voudrait le théorie de la Notation Polonaiose Inverse. En effet, la touche [ENTER^] ne se contente pas de décaler la pile vers le haut, elle laisse aussi une copie du nombre en x: et prépare la calculette pour une nouvelle entrée.
Ce qui fait que lorque l'on appuie sur [ 8 ], cette valeur vient remplacer le 25 contenu dans le registre x:
A ce point, si on appuye sur la touche [ + ] la calculatrice consomme y: et x: effectue le calcul 25+8 et met le résultat dans x:.
- Code: Tout sélectionner
| [ 2 ] | [ 5 ] | [ENTER^]| [ 8 ] | [ + ]
-------------------+---------+---------+---------+---------+---------
t: | | | | |
z: | | | | |
y: | | | 25. | 25. |
x: 0 | 2. | 25. | 25. | 8. | 32.
-------------------+---------+---------+---------+---------+---------
Affichage: 0.0000 | 2_ | 25_ | 25.0000 | 8_ | 32.0000
Mais continuons à effectuer le calcul suggéré par l'excercice :
- Code: Tout sélectionner
| [ 2 ] | [ 5 ] | [ENTER^]| [ 8 ] | [ENTER^]
-------------------+---------+---------+---------+---------+---------
t: | | | | |
z: | | | | | 25.
y: | | | 25. | 25. | 8.
x: 0 | 2. | 25. | 25. | 8. | 8.
-------------------+---------+---------+---------+---------+---------
Affichage: 0.0000 | 2_ | 25_ | 25.0000 | 8_ | 8.0000
Comme précèdamment, la touche entrée décale la pile des nombres saisis et prépare à la saisie suivante à savoir 1.5 :
- Code: Tout sélectionner
[ 1 ] | [ . ] | [ 5 ] | [ENTER^]| [ × ] | [ - ]
-------------------+---------+---------+---------+---------+---------
t: | | | 25. | 25. | 25.
z: 25. | 25. | 25. | 8. | 25. | 25.
y: 8. | 8. | 8. | 1.5 | 8. | 25.
x: 1. | 1. | 1.5 | 1.5 | 2.25 | 5.75
-------------------+---------+---------+---------+---------+---------
Affichage: 1_ | 1._ | 1.5_ | 1.5000 | 2.2500 | 5.7500
Comme ci-dessus, la touche entrée décale la pile vers le haut et prépare à la saisie d'un autre nombre.
Mais, là on n'en saisi aucun.
En fait, on appuye sur la touche multiplication.
La calculatrice effectue alors la multiplication à partir des deux registres x: et y:, les fait disparaitre et insère le résultat 2.25.
De même la touche [ - ] déclanche la soustraction et donc retire 2.25 au nombre 8. Les deux arguments sont "consommés" et le resultat de la soustraction est inséré dans la pile.
On obtient bien le résultat que vous m'avez indiqué à savoir 5.75
On constate aussi que la donnée de 25 n'a pas servie. Ce nombre a été mémorisé dans la pile, et recopier lorsque celle-ci a été décallé vers le bas. MAiS ce nombre n'a jamais été l'argument d'une opération. Il n'a jamais servi.
*Calculatrice en Notation Polonaise Inverse à la sauce d'aujourd'hui - aka RPL chez Hewlett Packard HP28/48/49/50 et autres modèle contemporains)*Comme pour toutes les calculatrices Polonaises Inverses (celles qui n'ont pas de signe = et pas de parenthèse), la touche [ ENTER ] permet de séparer l'entré entre deux nombre.
Mais, il y a deux diffèrences fondamentales par rapport aux calculatrices historiques RPN.
La première, la pile est infinie (on numérote alors les niveaux 1: 2: 3: 4: ... car parfois on va bien au-delà des 4 niveaux historiques)
Mais surtout, il n'y a plus de "copie de la valeur de x:" car ces nouvelles machines on un tampon de saisie. C'est à dire que les opération sont saisie ne se font plus directement dans le premier registre (x:), mais dans une ligne de commande.
Ils sont décomposées au fur et à mesure dans la pile opérationnelle où les calculs sont effectués. Comme pour le RPN historique, chaque opérateur consomme les argument dans la pile et les remplace par le(s) résultat(s).
Effectuons en détail ce qui se passe sur une machine du type RPL
25 [ENTER] 8 [ENTER] 1.5 [ENTER] [ x ] [ - ]
Sur ces machines tous les registres sont affichés simultanément:
- Code: Tout sélectionner
Affichage: | [ 2 ] | [ 5 ] | [ENTER] | [ 8 ] | [ENTER]
-------------------+---------+---------+---------+---------+---------
4: |2: |3: |4: |3: |4:
3: |2: |2: |3: |2: |3:
2: |1: |1: |2: |1: 25. |2: 25.
1: |2_ |25_ |1: 25. |8_ |1: 8.
Comme on le voit, la touche ENTER permet de valider la saisie qui est interprétée est transmise à la pile opérationnelle.
Comme pour le RPN, la pile accumule les nombres saisis en les décallant (vers le haut), mais il n'y a plus copie du premier registre ni de préparation pour la saisie. Tout ce fait par l'intermédiaire de la ligne de commande.
Ensuite, on saisie 1.5 de la même façon, mais les opérations s'appliquent alors aux éléments de la pile sans aucune ambiguïté:
- Code: Tout sélectionner
[ 1 ] | [ . ] | [ 5 ] | [ENTER] | [ × ] | [ - ]
-------------------+---------+---------+---------+---------+---------
3: |2: |3: |4: |4: |4:
2: 25. |2: 25. |2: 25. |3: 25. |3: |3:
1: 8. |1: 8. |1: 8. |2: 8. |2: 25. |2:
1_ |1._ |1.5_ |1: 1.5|1: 12. |1: 13.
Donc la multiplication effectue 8 x 1.5 qui fait 12 et ensuite la sous tractuion effectue 25 - 12.
Notons que les trois arguments (25, 8 et 1.5) sont utilisés.
CONCLUSION:C'est un petit détail qui a sont importance. Cela change complètement l'utilisation de la machine.
Donc
La séquence : 25 [ENTER^] 8 [ENTER^] 1.5 [ENTER^] [ × ] [ - ] sur une calculatrice RPN
n'est pas équivalent à : 25 [ENTER] 8 [ENTER] 1.5 [ENTER] [ × ] [ - ] sur une machine de conception récente.
Notons d'ailleurs qu'il n'y a plus la petite flèche après ENTER qui indique le mouvement de pile. Le ENTER des nouvelles machien est en fait une commande RETURN ou ENVOI. Alors que la fonction historique était bien de terminer une saisie et de passr à la suivante.
Donc, dans le premier cas, on constate que le 25 n'est pas utilisé. Il aurait fallu utiliser la machine en tapant : 25 [ENTER^] 8 [ENTER^] 1.5 [ × ] [ - ] ce qui évite la duplication de 1.5 et donne alors excatement le résultat 13.0000 que pour ma machine.
MAintenant que l'on a décomposé en détail ce calcul, j'espère qu'il est évident pour vous qu'il s'agit de calculer ( 25 - ( 8 × 1.5 ) ) = 13
Sinon, au pire si on considère que le [ENTER^] superflu est imposé, alors il s'agit de calculer un couple de valeur, en l'occurance ( 25 , 8 -(1.5×1.5) ) = ( 25 , 5.75 )
Ce type de couple est assez fréquent lors de conversion de coordonnée polaire/cartésienne ou pour la saisie de série statistique (x,y) à deux variables.
Dommage que le professeur qui a proposé cet excercice n'ai pas précisé exactement de quel système il s'agit, car on le voit les choses ont évoluée entre la rpatique initiale de 1972 et 2012.
C'est normal, il y a 30 ans d'évolution entre ces deux conceptions de la même logique opérationnelle.