HP-42S mit Original-SkinOK, als ‚Fortgeschrittenen‘ würde ich mich im Bereich Mathematik nicht sehen. Absolut nicht. Ich kann nicht mal mehr schriftlich multiplizieren, geschweige denn dividieren. Aber dafür weiß ich wie man einen Taschenrechner bedient. Dachte ich… :-)

Bislang habe ich auf dem Computer immer gcalctool benutzt. Das ist übersichtlich und kann eigentlich alles was man so dauernd braucht. Zufällig habe ich vor ein paar Tagen einen Emulator für einen real existierenden Taschenrechner gefunden. Emulator? Für einen verdammten Taschenrechner?!? Ja, genau. Free42 heißt das dann.

Bei dem Vorbild handelt es sich um das Modell HP-42S, das wurde 1988 von Hewlett Packard vorgestellt und — ich glaube — bis 1994 gebaut. Das Ding findet man natürlich im Taschenrechner-Museum von HP, aber auch in der Wikipedia. Ein programmierbarer Taschenrechner, Umgekehrte polnische Notation, etwa 600 eingebaute Funktionen und 7200 Bytes Platz für eigene Programme. Ich weiß nicht warum, aber das hat mich irgendwie fasziniert. Und nicht nur mich: bei Online-Versteigerungen wird das Ding offenbar teilweise mit über 200 Euro gehandelt. Das ist deutlich mehr als der originale Verkaufspreis vor 15 Jahren, als man das noch im Laden kriegen konnte. Der lag soweit ich weiß bei 130 Dollar.

HP-42S PlatzsparenderWie sieht jetzt so ein Taschenrechner-Programm aus? Was kann man damit machen? Man kann damit eine ganze Menge tun, wie man schnell sieht wenn man sich ansieht was es an Beispielen im Netz gibt. Ich habe mir mal das Alternative Manual durchgelesen und losgespielt. Ein Beispiel muss her…

Das erste was ich benutzt habe ist die Solver-Funktion. Dabei programmiert man eine Funktion mit mehreren Unbekannten (z. B. das Ohmsche Gesetz: U=R*I) die man umgestellt hat so dass 0 rauskommt (also U-R*i=0). Dann kann man die Variablen der Reihe nach mit Werten belegen und den unbekannten berechnen lassen. Man gibt also Spannung und Strom an die für eine LED benötigt werden und kriegt direkt den Widerstand, ohne selbst zu rechnen. Oder Man gibt den gewünschten Strom und den Widerstand an und bekommt die Spannung an der das betrieben werden muss. Nett, aber trivial. Ein komplizierteres Beispiel muss her…

Die Aufgabenstellung habe ich aus einem Podcast ueber Leonhard Euler, allerdings habe ich als Laie wohl was falsch verstanden. Wahrscheinlich ging es um die Euler-Mascheroni-Konstante oder um das Basel-Problem, mein Programm ist vermutlich total uninteressant. Trotzdem taugt es als Beispiel. Die Aufgabe besteht darin, die Kehrwerte von ganzen Zahlen zu addieren. Also 1/1 + 1/2 + 1/3 + 1/4 und so weiter. Mittlerweile weiß ich, dass man das auch mit Logarithmen berechnen kann, aber wie angedeutet würde ich da von alleine nicht drauf kommen.

LBL "EULER"
STO 01
0
STO 02
RCL 01
LBL A
1/x
STO+ 02
RCL 01
1
-
STO 01
x>0?
GTO A
RCL 02

Das Programm arbeitet wie folgt:

  • aktuellen Wert des X-Registers (also die letzte eingegebene Zahl) in Speicher 01 sichern
  • 0 in Speicher 02 schreiben
  • Speicher 01 wieder herstellen
  • Sprungmarke A setzen
  • von der wiederhergestellten Zahl den Kehrwert bilden und zu Speicher 02 addieren
  • Speicher 01 wieder herstellen
  • 1 subtrahieren und den neuen Wert wieder in 01 speichern
  • wenn der Wert groesser 0 ist, nach A springen
  • ansonsten das Ergebnis aus Speicher 02 anzeigen

Also quasi folgendes, nur halt im Taschenrechner (und nicht nur fuer 100):

perl -e "$j=0;for($i=1;$i<=100;$i++){$j+=1/$i};print$j;

In einer Tabellenkalkulation habe ich das auch mal gemacht um die Werte zu kontrollieren, aber da kann man das (ohne wirklich zu programmieren) nur bis knapp ueber 60.000 machen, weil dann die Tabelle am Ende ist. Das Ergebnis fuer 999.999.999 ist 21,3004815013 (da hat der Taschenrechner aber auch eine Weile drauf rumgekaut).

Ich bin einfach mal weiter fasziniert, vielleicht konnte ich ja irgendwen anstecken… ;-)