logo
Neues und so
Knotenseite
Mein neues Refugium
Schnell XHTML Code erzeugen
Experimentelle bzflag-Maps
"du" aufgepeppt
Eine Liste mit praktischen Pastebins
Unicode auf Webseiten
Klettern (+HMS-AVI)
 
Linux
Mensa-Speiseplan auf Palm bringen
Demo vom Speiseplan
PHP-Klasse zur Zeitangabe
Textuelle Zeitangabe
Gtk+(Glade) -> FreePascal
Perl-Stack-Rechner
tree.pl für Konsole
lcd: Directory-Array
Termine-Script
Heise-EMail-Ticker (DL)
Pakete finden
GAWK-Stack-Rechner
 
Projekte
Knoten
Opt. Täuschungen?
Bumerangs (offline)
Mein Newsportal
Mein Python-Kram
Strategie-Spiele programmieren
Makro-Fotos
Galerie 1
Galerie 2: Modf.Cam
Portal
AVR pages
LCD-Ticker
Abalone-Server
3D-Bilder mit Q.Cam
Zeitraffer m. QuickCam
Sonderzeichen
Mini-Shop
Virtuelle Tastatur
 
Links
Protestseite Studiengebühren
Gravity.txt
ISS Visual Passes
Lokale Web-Cams
Liste
 
Kontakt
E-Mail+PubKey
 
Win9x
Locator

gcalc V.06 - GAWK Stack-Rechner für Linux usw.

Das Kopieren des Programms für die persönliche Benutzung ist erlaubt!

Autor: Tjabo Kloppenburg, Siegen.

Achtung!
Ich übernehme keinerlei Garantie für die einwandfreie Funktionsweise des Programms.
Jegliche Benutzug geschieht auf eigene Gefahr!



Letzte Änderung: 5. Juli 1999
Dies ist der Downloadlink...

Das isses:

gcalc ist ein Interaktives "Taschenrechner"-Programm für das Terminalfenster.
Um Rechnungen durchzuführen legt man zuerst die beteiligten Zahlenwerte auf den Stack, um sie dann mit einem Operator wie z.B. +, -, / ,* usw. zu verrechnen.
Bei Programmende werden alle Registerinhalte abgesichert.
 

Das kann gcalc:

  • Vielfältige Rechenfunktionen: +,-,/,*, x hoch y, x-te Wurzel aus y, 1/x, x², Wurzel(x), Konstanten (PI,e,g), sin,cos,tan (deg), arcsin (testweise), bald auch weitere Arcus-Funktionen.
  • Stacktiefe: 20 Speicherzellen, 10 sichtbar.
  • 10 Zusatzspeicher: Mit den Kommandos "s1", "s2".."s10" wird der Inhalt der Speicherstelle 1 des Stacks in den entsprechenden Zusatzspeicher kopiert. Das Auslesen (das Legen auf den Stack) erfolgt mit den Kommandos "m1", "m2".."m10".
  • Bezeichner für Zusatzspeicher:  z.B. mit "l6 Gesamtzahl" (kleines L) setzt man für den Zusatzspeicher Nr. 6 den Beschreibungstext auf "Gesamtzahl".
  • Direkt ansprechbare Stack-Speicherzellen: mit "a1" bis "a10" legt man den Inhalt der Stack-Speicherzelle erneut auf den Stack.
  • Grundlegende Stackaktionen: drop (d), clear (c), clear all (ca).
  • Findbare Hilfe im Programm: "?(enter)", "h(enter)", "hilfe(enter" und "help(enter)".  In der zweiten Bildschirmzeile steht immer, wie man die Hilfe findet... :-)
  • Register-Sicherung: Bei Programmende werden alle Register- und Bezeichnerwerte in einer Datei im Homeverzeichnis (~/.gcalcsave) gesichert. Diese werden bei Neustart wiederhergestellt.
  • Kommastellen beständig: Bei gcalc verschwinden Nachkommastellen im Gegensatz zu bc nicht, wenn man das nicht will. Will man es doch, kann man die Nach/Vorkommastellen mittels int und frac abschnibbeln.

"Screenshot" aus dem Terminalfenster:

     -- gcalc V.05: GAWK - Stack - Rechner (1999 by Tjabo Kloppenburg) --
                     (Hilfe: "?", "h", "hilfe", "help")

  a10  :                 m10/r10 =                 Berechnungen für Zeitrafferaufnahmen
  a9   :                 m9 /r9  =
  a8   :                 m8 /r8  =
  a7   : 8               m7 /r7  = 8               Ereignisdauer / Stunden
  a6   : 3600            m6 /r6  = 28800           Ereignisdauer / sek
  a5   : 28800           m5 /r5  = 30              Dauer des Films / sek
  a4   : 8               m4 /r4  = 16              Bilder / sek
  a3   : 60              m3 /r3  = 480             Zahl benötigter Bilder
  a2   : 60              m2 /r2  =
  a1   : 28800           m1 /r1  =                 Bildabstand / sek

Eingabe> m3

In diesem Beispiel versuche ich auszurechnen, alle wieviel Sekunden ich ein Bild machen muss, um einen 8 Stunden dauernden Vorgang in einen 30 Sekunden langen Film zu bannen, bei einer Filmabspulung von 16 Bildern pro Sekunde.

In der linken Spalte sieht man die 10 Zellen des Stacks, in der Mitte die 10 Zusatzspeicher, und rechts die Label der Zusatzspeicher.

Eben habe ich mit "m6(enter)" die Ereignisdauer in Sekunden auf den Stack gezaubert, um nun mit "m3(enter)" und "/(enter)" den Aufnahmeabstand zu berechnen.
Da die 28800 ([sek]) noch auf dem Stack liegen, hätte ich sie auch mit "a4(enter)" nochmal in die Stackposition #1 zaubern können (vor "m6" lag die Zahl noch an Position a4).

Um z.B. die Zahl der benötigten Bilder zu berechnen, würde ich eintippen (ohne die "-Zeichen):
"m5(enter)"
"m4(enter)"
"*(enter)"

Das Speichern des Ergebnisses nach m3 erfolgt so:
"s3(enter)"

Das Label bei m1 habe ich so erzeugt (kleines L):
"l1 Bildabstand / sek(enter)"

Nach dem Beenden von gcalc mit "x(enter)" werden alle Register- und Labelinhalte gespeichert. Beim nächsten Start sind sie wieder da.
Will man nicht nur den Stack löschen, sondern auch alle Zusatzspeicher und Label, so kann man das mit "ca(enter)" tun.

Einfache Installation:

Da gcalc ein GAWK-Programm ist, muss ein gawk-Interpreter installiert sein. Sollte das Shellkommando which gawk ein anderes Ergebnis bringen als "/usr/bin/gawk", so muss die erste Zeile von gawk entsprechend angepasst, oder gawk installiert werden.

Damit gcalc erreichbar ist, muss es in irgendein Verzeichnis des PATH kopiert werden, z.B. nach /usr/local/bin/gcalc. Damit man es auch findet, wenn man einen Taschenrechner sucht, sollte man weitere Links wie rechner und calc anlegen... :-)

Bei mir funktioniert gcalc in folgender Systemumgebung:

  • Linux Suse 6.1 demo(tm) auf AMD(tm) K5-100 mit 48MB RAM
  • GNU bash, version 2.02.1(1)
  • GNU Awk 3.0.3
Bei abweichenden Shells usw. kann es natürlich Probleme geben. z.B. ruft gcalc das system-Kommando "clear" auf, um den Bildschirm zu löschen, und "touch", um sicherzustellen, dass die Sicherungsdatei (~/.calcsave) existiert. Sollte ein derartiges Problem auftauchen - Schicksal.
 

Verbesserungen/Kontakt:

Sendet Verbesserungsvorschläge und Bugreports bitte per EMail an mich (tjabo@unix-ag.org) !
 

Planungen für zukünftige Versionen (Codespenden gesucht):

  • Umkehrfunktionen für sin, cos und tan. Codespenden sind hier sehr willkommen! Das Problem ist, die Umkehrfunktionen für sin usw. in "Deg" zu programmieren, während sich die mangelhafte Unterstützung von GAWK auf die "rad"-Funktionen beschränkt.
    Ich habe eben mal eine arcsin-Funktion ("asin(enter)") eingebaut, die auf einer sinus-Tabelle beruht. Die Genauigkeit ist bei guter Geschwindigkeit passabel.
  • Ich denke über eine Programmierbarkeit nach. So ein kleiner BASIC-Interpreter wäre eine feine Sache. Ein kleiner Interpreter in Form eines gesonderten Projekts existiert bei mir schon. Wäre es sinnvoll, sowas in den gcalc zu integrieren?
  • Einheitenbehaftete Zahlen? Das Teilen von "[ ]" durch "[sek]" ergäbe "[1/sek]". Sinnvoll? Feedback?
  • Braucht man eine Undo-Funktion?
  • Soll der Stack tiefer sein?

Download:

Das Programm in seiner neusten Version findet sich hier.


 Dies ist nochmal ein Lesezeichen-Link!
Das Copyright für diese Seite sowie das Rechner-Programm liegen bei mir, also Tjabo Kloppenburg. Das Programm darf unentgeltlich frei kopiert werden. Die Zurverfügungstellung des Programms auf Webseiten mit kommerziellen Inhalten bedarf des papierschriftlichen Einverständnisses des Autors.
Das Kopieren für die persönliche Benutzung ist natürlich erlaubt!



Die Seiten unterhalb von http://www.home.unix-ag.org/tjabo/ wurden von mir, Tjabo Kloppenburg, erstellt.
Auf meinen Webseiten befinden sich Links zu anderen Seiten im Internet. Für alle diese Links gilt: Ich betone ausdrücklich, daß ich in keiner Form Einfluß auf Inhalt und Gestaltung der verlinkten Seiten habe. Deshalb distanziere ich mich hiermit ausdrücklich von sämtlichen Inhalten dieser verlinkten Webseiten. Dies gilt insbesondere für alle Links, Banner oder Logos.
Wenn Ihnen Inhalte oder Links auf meinen Webseiten nicht gefallen, dann geben Sie mir bitte einfach per EMail bescheid. Ich werde meine Webseiten dann entsprechend verändern.