<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <!-- this stylesheet will later on be added by lfparser automatically: -->
<style type="text/css">
<!--
  pre { font-family:monospace,Courier }
  pre.code { font-family:monospace,Courier;background-color:#aedbe8; }
  p.code { width:80%; alignment:center; background-color:#aedbe8; 
        border-style:none; border-width:medium; border-color:#aedbe8; 
        padding:0.1cm ; text-align:left }
-->
</style>

    <title></title>
  </head>

  <body>
    <h1>Calculatrices RPN (notation polonaise inversée) pour Linux</h1>

    <h4>ArticleCategory: Hardware</h4>
    Applications 

    <h4>AuthorImage:[Here we need a little image from you]</h4>
    <img src="../../common/images/Guido-S.gif" alt= "[Photo of the Author]" height="164" width="173"> 

    <h4>TranslationInfo:[Author + translation history. mailto: or
    http://homepage]</h4>

    <p>original in en <a href="http://linuxfocus.org/~guido/">Guido
    Socher</a></p>
    <p>en to fr <a href="nospam:jean.peyratout(at)abul.org">Jean Peyratout</a></p>

    <h4>AboutTheAuthor:[A small biography about the author]</h4>

    <p>Ma première calculatrice RPN était une HP15c et ce fut le coup de foudre.
    </p>

    <h4>Abstract:</h4>
RPN (Reverse Polish Notation) signifie "notation polonaise inversée". La notation polonaise inversée a été 
 développée en 1920 par Jan Lukasiewicz comme une façon d'écrire une expression mathématique sans être obligé 
 d'utiliser parenthèses et crochets.
Il ne faut que quelques minutes pour l'apprendre et vous verrez rapidement que 
 cette méthode surpasse les formules algébriques standards. 

    <h4>ArticleIllustration:</h4>
    <img src="../../common/images/article319/illustration.jpg" alt="hp-calc and tux" hspace="10" width="200" height="235">

    <h4>ArticleBody:</h4>

    <h2>Introduction</h2>
    Les calculatrices de poche utilisant la notation polonaise inversée ont commencé à devenir populaires avec les 
 calculatrices Hewlet-Packard. HP utilisait déjà cette méthode pour sa première calculatrice en 1968.

    Si vous faites une recherche sur Internet vous vous apercevrez qu'il existe un vrai fan-club de ces calculatrices. 
 J'ai mis quantité de très bons liens disponibles à la fin de cet article.
    La plupart de ces calculatrices HP sont de nos jours des objets de collection et s'échangent pour bien plus cher 
 que leur prix original.
    <br>
    <br>
    Dans cet article nous verrons quelques-unes des calculatrices de bureau en notation polonaise inversée disponibles 
 pour Linux. Nous ne nous intéresserons pas seulement aux émulateurs HP disponibles mais aussi aux autres calculatrices 
 totalement indépendantes de HP.

    <h2>Qu'est-ce que la notation polonaise inversée (RPN) ? Pourquoi faire ? </h2>
Les calculatrices en notation polonaise inversée utilisent une pile et toutes les opérations mathématiques sont exécutées 
immédiatement au plus bas niveau de la pile. La pile est utilisée comme mémoire pour enregistrer les résultats 
 intermédiaires. 
Donc inutile d'utiliser de parenthèses sur une calculatrice RPN. On entre d'abord les nombres - on les pose en 
 haut de la pile - puis on indique ce qu'il faut en faire.
<br>
Imaginons que l'on veuille calculer: (( 3 + 1 )^2 + 1) * 4
<br>
Pour cela on entre les commandes suivantes&nbsp;:
<pre class="code">
3 Entrée
1 +      (vous voyez immédiatement le résultat de cette opération&nbsp;: 4)

x^2      (vous voyez immédiatement le résultat de cette opération&nbsp;:  16)
1+       (vous voyez immédiatement le résultat de cette opération&nbsp;:  17)
4*       (résultat final&nbsp;: 68)
</pre>
Pour saisir cette formule il a fallu neuf appuis successifs sur les touches, et on a pu voir tous les résultats 
 intermédiaires. C'est fondamentalement la façon de calculer utilisée pour le calcul mental. En d'autres mots le 
 fonctionnement de la calculatrice est beaucoup plus "naturel", il est du même type que celui utilisé par notre cerveau.
<br><br>
Le même calcul, écrit de cette façon, aurait nécessité douze appuis avec une calculatrice algébrique, sans que l'on puisse 
 voir les résultats intermédiaires. Les avantages de la notation polonaise inversée sont donc&nbsp;:
<ul>
<li>La méthode RPN économise du temps et des appuis sur les touches. Vous n'avez jamais à prendre en considération les 
 parenthèses lors du calcul. Le processus est similaire à la façon dont vous avez appris les maths sur le papier. 
<li>On peut voir les résultats intermédiaires au fur et à mesure et pas seulement la réponse à la fin, ce qui est un 
 à-côté très pratique.
<li>L'affichage du résultat intermédiaire permet la vérification et les erreurs sont plus faciles à détecter et corriger. 
Il est plus facile de suivre le cours du calcul. L'utilisateur définit la priorité relative des opérateurs.
<li>La méthode RPN est logique car l'utilisateur donne d'abord le nombre puis ensuite seulement indique ce qu'il 
 convient de faire avec.
<li>Grâce à l'évaluation des sous-calculs dès leur entrée, une erreur de saisie est plus évidente avec la méthode RPN. 
 Sur une calculatrice algébrique, l'oubli d'une parenthèse ouvrante ne conduit pas à une erreur de calcul avant le 
 moment, parfois bien longtemps après, où la sous-expression est calculée dans son intégralité. 
</ul>

    <h2>Les calculatrices</h2>
Commençons avec quelques calculatrices simples que vous pouvez tester dans votre navigateur tout en lisant cet article 
 et plus loin je présenterai des "machines" plus puissantes.

<br clear="all">
<h2>rpnjcalc</h2>
<img src="../../common/images/article319/rpnjcalc_th.gif" align="right" width="206" height="153">
Cette calculatrice utilise Javascript. Elle est de ma création et fonctionne dans n'importe quel navigateur moderne 
 (ça ne fonctionne pas correctement avec Opéra 5/6, Netscape 4, Konqueror). Elle est différente de beaucoup 
 d'autres calculatrices javascript car vous pouvez aussi utiliser le clavier pour saisir des nombres et les 
 opérateurs mathématiques de base. <a href="../../common/src/article319/rpnjcalc.html">Cliquez ici pour jouer 
 avec rpnjcalc</a><br><br clear="all">

<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>rpnjcalc</td></tr>
<tr><td>Site:</td><td><a href="http://main.linuxfocus.org/~guido/javascript/rpnjcalcallver.html">http://main.linuxfocus.org/~guido/javascript/rpnjcalcallver.html</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>hp-35</h2>
<img src="../../common/images/article319/hp35_th.gif" align="right" width="148" height="286">
Cette calculatrice utilise aussi Javascript mais plus d'attention a été consacrée à sa ressemblance avec une vraie 
 (vieille) calculatrice HP-35 de poche. Vous pouvez la tester en ligne 
 <a href="../../common/src/article319/hp-35/launch.html">en suivant ce lien</a>
<br> Si vous voulez vraiment l'utiliser, je vous recommande de télécharger le fichier compressé ci-dessous car il 
 utilise des images gif et le temps de réponse est beaucoup plus court quand vous l'installez localement. Notez aussi
 que cette calculatrice n'offre pas les mêmes fonctionnalités qu'une vraie HP35. Elle ne peut par exemple effectuer 
 de trigonométrie qu'en degrés (0-360°).

</a><br><br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>hp-35</td></tr>
<tr><td>Site:</td><td>Inconnu, récupéré depuis <a href="http://www.hpmuseum.org">http://www.hpmuseum.org</a>. 
Téléchargez ici <a href="../../common/src/article319/hp-35.zip">hp-35.zip</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>dc</h2>

<img src="../../common/images/article319/dc.gif" align="right" width="250" height="188">
Cette calculatrice est une commande Unix standard que l'on trouve même sur les plus vieux systèmes Unix. 
Elle ne peut effectuer que des calculs arithmétiques basiques mais est capable de manipuler de très grands nombres. 
Pour la lancer taper simplement dc et un nombre suivi de "k" (par ex.: 6k et appuyez sur Entrée) pour régler 
 la précision. Vous pouvez maintenant effectuer des calculs (+-*/) et afficher le bas de la pile avec "p". 
 Le programme s'interrompt avec Crtl-d.
<br><br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>dc (desk calculator)</td></tr>
<tr><td>Site:</td><td>Fait partie de tous les systèmes Unix. Sous Linux, le paquetage pour dc est appelé bc</td></tr>
<tr><td>Licence:</td><td>en principe la même que celle de votre système Unix</td></tr>
</table>

<br clear="all">
<h2>vc.pl</h2>

<img src="../../common/images/article319/vc_th.gif" align="right" width="259" height="154">

Cette calculatrice est écrite en Perl. C'est une implémentation intéressante car c'est en fait une calculatrice 
 vectorielle. Vous pouvez bien sûr l'utiliser aussi pour l'arithmétique normale dans la mesure ou un nombre unique 
 n'est qu'un vecteur à une seule dimension. Elle offre un système d'aide intégré (tapez simplement help).
L'installation est facile car elle n'utilise que des modules perl standard. 
<br><br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>vc (vector calculator)</td></tr>
<tr><td>Site:</td><td><a href="http://vc-calc.sourceforge.net/">http://vc-calc.sourceforge.net/</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>
<br clear="all">

<h2>x48</h2>

<img src="../../common/images/article319/x48-gx_th.gif" align="right" width="135" height="307">
<img src="../../common/images/article319/x48-sx_th.gif" align="left" width="135" height="307">
Ce programme est un émulateur de la calculatrice HP-48&nbsp;: vous pouvez faire tourner dessus 
 du code HP véritable. La calculatrice n'installe que l'émulateur, pas le code de la ROM HP-48 qu'il 
 vous faudra charger. Le programme x48 est sous licence GPL mais la ROM est bien sûr sous copyright HP. 

La calculatrice hp48 d'origine n'est plus fabriquée par HP et ils autorisent maintenant le téléchargement 
 des images de ROM depuis l'année 2000. 
NB : C'est sympa d'avoir une calculatrice comme celle-ci à l'écran de l'ordinateur mais ça ne remplace 
 toujours pas une HP-48 d'origine car x48 n'a pas une très bonne interface clavier. Finalement vous devez 
 vous débrouiller en utilisant la souris la plupart du temps et c'est assez lent.
<br><br>
C'est parce que x48 est un émulateur qu'il peut faire toutes les opérations exactement comme la HP-48 originale. 
La dernière version que j'ai pu trouver était la 0.4 qui a déjà quelques années. Elle fonctionne cependant sans 
 aucun problème. La version 0.4 a besoin d'un petit patch pour se compiler sur un système Linux moderne. Vous 
 trouverez le manuel d'origine, quelques images ROM, le patch et des instructions supplémentaires sur la page 
 "détails sur x48" ci-dessous. 


<br clear="all">
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>x48</td></tr>
<tr><td>Site:</td><td><a href="ftp://www.sunsite.unc.edu/pub/linux/system/emulators/">ftp://www.sunsite.unc.edu/pub/linux/system/emulators/</a></td></tr>
<tr><td>Détails sur x48:</td><td> <a href="../../common/src/article319/x48.html">"détails sur x48", 
 installation, documentation, images ROM</a> (voir aussi les liens à la fin de cet article pour d'autres images ROM)</td></tr>
<tr><td>Licence:</td><td>GPL, mais une image ROM HP est nécessaire</td></tr>
</table>

<br clear="all">
<h2>hp67</h2>

<img src="../../common/images/article319/hp67_th.gif" align="right" width="272" height="152">
Ce programme possède toutes les fonctionnalités d'une vraie hp67 mais il a été complètement réécrit et est 
 indépendant du code de la hp67. Ce n'est pas un émulateur. L'interface paraît un peu basique (ncurses) mais 
 c'est très fonctionnel. Une excellente documentation l'accompagne, sous la forme d'une page de manuel (voir 
 lien ci-dessous).
 On peut même la programmer comme une vraie hp67. Pour commencer à programmer, utiliser la touche "prog" puis 
 saisir le programme, en commençant par un nom de programme. Pour sortir du mode programmation 
 on utilise "immed". Pour exécuter un programme "run nom_du_programme". 

Voici un exemple. Il n'est guère utilisable car il n'implémente que la fonction "carré d'un nombre" mais c'est 
 pour vous donner une idée de la façon de programmer la hp67:
<pre class="code">
prog (entrer en mode programmation)

label mon_programme
ENTER
*
rtn
immed (sortie du mode programmation)
</pre>
Maintenant vous pouvez utiliser "run mon_programme" pour exécuter x^2.

<br clear="all">
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>hp67</td></tr>
<tr><td>Manuel:</td><td><a href="../../common/src/article319/hp67.html">La page de manuel de la hp67 au format html</a></td></tr>
<tr><td>Site:</td><td><a href="http://www.ibiblio.org/pub/Linux/apps/math/calc/">http://www.ibiblio.org/pub/Linux/apps/math/calc/</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>kalc</h2>
<img src="../../common/images/article319/kalc_th.gif" align="right" width="288" height="183">
kalc fonctionne également en ligne de commande. Le programme utilise la bibliothèque readline et a quelques fonctions 
 de complétion de commande. kalc fonctionne avec des nombres réels et des nombres complexes, des entiers sans limitation 
 de taille, des nombres réels de précision arbitraire. La documentation est aussi très bonne (voir fichier pdf ci-dessous).
<br clear="all">
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>kalc</td></tr>
<tr><td>Manuel:</td><td><a href="../../common/src/article319/kalc.pdf">kalc.pdf 230K</a></td></tr>
<tr><td>Site:</td><td><a href="http://sourceforge.net/projects/kalc/">http://sourceforge.net/projects/kalc/</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>dcalc</h2>
<img src="../../common/images/article319/dcalc_th.gif" align="right" width="286" height="172">
C'est encore un programme de calcul basé sur ncurses qui tourne en console. Il n'est pas programmable comme hp67 
 mais il convient bien pour convertir des nombres entre hexadécimal, binaire et décimal.
<br clear="all">
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>dcalc</td></tr>
<tr><td>Site:</td><td><a href="http://www.ibiblio.org/pub/Linux/apps/math/calc/">http://www.ibiblio.org/pub/Linux/apps/math/calc/</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>rpncalc</h2>
<img src="../../common/images/article319/rpncalc_th.gif" align="right" width="286" height="172">
Encore une calculatrice RPN en console mais qui n'est pas sur une base ncurses. 
Très similaire à la commande "dc", mais beaucoup plus avancé, rpncalc implémente les fonctionnalités de la HP28s.
Il peut manipuler les nombres complexes, les vecteurs et les matrices. 
rpncalc fait partie de Debian.
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>rpncalc</td></tr>
<tr><td>Site:</td><td><a href="http://www.gnu.org/directory/science/math/rpncalc.html">http://www.gnu.org/directory/science/math/rpncalc.html</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>gdcalc</h2>
<img src="../../common/images/article319/gdcalc_th.gif" align="right" width="281" height="130">
Voici une jolie calculatrice utilisant l'interface graphique gtk. 
Vous pouvez la configurer pour entrer vos calculs en utilisant soit la méthode RPN de notation polonaise inversée 
 soit la méthode algébrique. 
Elle offre quatre modes: scientifique, financier, statistique, et un mode de conversion de nombre appelé mode 
 de programmation ("programming mode"). Ce mode n'a cependant rien à voir avec la programmation de la calculatrice 
(à l'image de x48 ou hp67). Vous avez là tout ce qu'on peut attendre d'une calculatrice de bureau. 
<br>
<br>
Pour pouvoir utiliser le menu de conversion d'unités, il faut avoir installé le programme units(1) qui fait partie 
 de pratiquement toutes les distributions Linux (ou depuis ftp://ftp.gnu.org/gnu/units/)
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>gdcalc</td></tr>
<tr><td>Site:</td><td><a href="http://bhepple.freeshell.org/dcalc/unix/">http://bhepple.freeshell.org/dcalc/unix/</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>grpn</h2>
<img src="../../common/images/article319/grpn_th.gif" align="right" width="186" height="227">
C'est une calculatrice RPN également basée sur l'interface gtk. Elle offre les fonctions de base 
 d'algèbre et de trigonométrie.
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>grpn</td></tr>
<tr><td>Site:</td><td><a href="http://lashwhip.com/grpn.html">http://lashwhip.com/grpn.html</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>galculator</h2>
<img src="../../common/images/article319/galculator_th.gif" align="right"  width="276" height="170">
Ce programme est très similaire à gdcalc du point de vue des fonctionnalités. On peut le configurer pour utiliser 
 la méthode de saisie RPN ou algébrique. galculator permet la conversion de nombres binaire / hexadécimal /décimal 
 et a toutes les fonctions scientifiques de base.<br>
galculator utilisant les toutes dernières bibliothèques gtk (gtk 2.2) risque d'être problématique à installer 
 sur des systèmes Linux un peu anciens. C'est cependant un programme de bonne facture dont l'interface utilisateur 
 est agréable.
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>galculator</td></tr>
<tr><td>Site:</td><td><a href="http://galculator.sourceforge.net/">http://galculator.sourceforge.net/</a></td></tr>
<tr><td>Licence:</td><td>GPL
</td></tr>
</table>

<br clear="all">
<h2>calcoo</h2>
<img src="../../common/images/article319/calcoo_th.gif" align="right" width="212" height="134">
C'est un programme ancien, configurable soit en mode RPN soit en mode algébrique, qui convient bien pour 
 l'algèbre de base et la trigonométrie. 
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>calcoo</td></tr>
<tr><td>Site:</td><td><a href="http://calcoo.sourceforge.net">http://calcoo.sourceforge.net</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>Kalk</h2>
<img src="../../common/images/article319/kalk.jpg" align="right" width="200" height="262">
C'est une calculatrice RPN basique (mais libre) pour le Palm Pilot. Le Palm ne permet pas de faire tourner Linux mais 
 je présente ce programme parce qu'il est disponible sous licence GPL, chose rare parmi les logiciels pour Palm. 
<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>kalk</td></tr>
<tr><td>Site:</td><td><a href="http://www.klawitter.de/palm/kalk.html">http://www.klawitter.de/palm/kalk.html</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

<br clear="all">
<h2>GCalc</h2>
<img src="../../common/images/article319/GCalc_th.gif" align="right" width="231" height="184">
Ce n'est pas du tout une calculatrice RPN mais ce programme est toujours très très utile. C'est une calculatrice 
 graphique en ligne basée sur Java qui permet de dessiner instantanément des graphiques dans un navigateur. 
Pour l'utiliser il vous faudra le greffon Java pour Mozilla ou Netscape qui 
 fait partie du paquetage jre de blackdown.org. 

<br>
<table border="1" bgcolor="#DDDDDD">
<tr><td>Nom:</td><td>GCalc</td></tr>
<tr><td>Site:</td><td><a href="http://humblestar.net/GCalc/">http://humblestar.net/GCalc/</a></td></tr>
<tr><td>Licence:</td><td>GPL</td></tr>
</table>

    <h2>Conclusion</h2>
Comme vous pouvez le constater il existe des calculatrices utilisant la notation polonaise inversée (RPN) 
 pour tous les goûts. Il en existe probablement d'autres mais les programmes cités ci-dessus sont tous sous 
 licence GPL. 
    <h2>Références</h2>

    <ul>
      <li><a href=
      "../../common/src/article319/">page de téléchargement</a> des version de calculatrice disponibles lors de la rédaction de cet article</li>
      <li><a href=
      "http://www.hpcalc.org/details.php?id=4524">images ROM HP48</a>, de hpcalc.org</li>
      <li><a href=
      "http://www.hpmuseum.org/">http://www.hpmuseum.org/</a>, musée virtuel à propos de toutes les calculatrices HP</li>
      <li><a href=
      "http://www.area48.com/history.html">area48.com/history.html</a>, l'histoire de la fameuse calculatrice HP48</li>
      <li><a href=
      "http://www.transnull.com/hp48.html">www.transnull.com/hp48.html</a>, FAQs et images ROM pour la HP48</li>
      <li><a href=
      "http://www.hp-collection.org/hewlettpackard.htm">www.hp-collection.org/hewlettpackard.htm</a>, une collection 
 privée de presque toutes les calculatrices HP - la page est en allemand</li>
      <li><a href=
      "http://www.limov.com/rcl20/">www.limov.com/rcl20/</a>, "RCL 20: des gens des rêves et des calculatrices HP" (RCL 20: People, Dreams &amp; HP Calculators). 
Voici un livre (pas de version en ligne) à propos de la fameuse HP41</li>
      <li><a href=
      "http://www.finseth.com/~fin/hpdata.html">www.finseth.com/~fin/hpdata.html</a>, base de données HP, des détails à propos de toutes les calculatrices HP</li>
      <li><a href=
      "http://www.hp.com/calculators/">www.hp.com/calculators/</a>, le site officiel des calculatrices HP (tous les autres 
liens ci-dessus sont des initiatives personnelles de fans de calculatrices RPN HP). Il n'y a plus grand-chose de disponible 
 qui provienne de HP de nos jours. Une page assez triste.</li>
    </ul>
  </body>
</html>