Application pratique d'une pile : calculatrice NPI

Dans les années 90, les calculatrices HP étaient très réputées dans le milieu scientifique pour la richesse de leures fonctionnalités. Elles possédaient une autre particularité : elles utilisaient la notation dite "polonaise inversée" pour effectuer les calculs. Cela signifie que l'on entrait d'abord les éléments pour faire le calcul puis ensuite l'opérateur. Par exemple, pour effectuer l'opération 4 + 3 on entrait successivement 4 puis 3 et enfin +.

Calculatrice HP 28C (source : HP museum)

On peut donner encore d'autres exemples : pour calculer (2+3)*11 , on entrera la chaine de caractère "2 3 + 11 *". On aurait d'ailleurs le même résultat avec la chaine de caractère "11 2 3 + *" qui représenterait 11*(2+3).

L'algorithme pour calculer le résultat d'un calcul en notation polonaise inversé utilise une pile. On procéde de la façon suivante. Pour chaque élément de l'expression :

  • si c'est un nombre on le place dans la pile
  • si c'est un opérateur, on récupère les deux nombres au sommet de la pile et on leur applique l'opérateur (le premier sommet est à droite de l'opérateur, ce qui est important pour les soustractions et les divisions). On empile ensuite le résultat

Vous allez réaliser une calculatrice NPI à partir de la classe de pile que nous avons fait précedemment.