KeyJ's Recher ist eine recht einfache Desktop-Taschenrechner-Anwendung, vergleichbar mit »echten« programmierbaren Taschenrechnern von HP, Casio, TI o.ä.
Ganz einfach: Einfach eine mathematische Formel (z.B. 5*4
) eingeben, ENTER drücken, und das Ergebnis wird angezeigt (hier also 20
).
Ausdrücke werden genau so ausgewertet wie man sie auch auf Papier schreiben würde, d.h. mit korrekter Klammerung und Operratorreihenfolge (s.u.).
Zahlen können als einfache EDV-typische Dezimalzahlen geschrieben werden, z.B. 37
, 23.42
oder 1.5482E-4
.
Ganzzahlige Konstanten können auch in binärer, hexadezimaler oder oktaler Schreibweise angegeben werden, wenn ihnen jeweils ein %
(Prozentzeichen), $
(Dollarzeichen), oder &
(kaufmännisches Und) vorangestellt wird. Beispiele: %101011
(ergibt 43 dezimal), #B0A7
(ergibt 45223), oder &775
(509).
Zusätzlich gibt es noch eine weitere vordefinierte Konstante, Pi
.
Sortiert nach Rangfolge, von höchster nach niedrigster Priorität:
1 ^
Potenz
2 *
Multiplikation
2 /
Division
3 +
Addition
3 -
Subtraktion
4 =
Gleich -- ergibt 1, wenn beide Seiten gleiche Werte ergeben, sonst 0
4 <
Kleiner als -- ergibt nur dann 1, wenn die linke Seite kleiner ist als die rechte
4 >
Größer als -- ergibt nur dann 1, wenn die linke Seite größer ist als die rechte
5 &
Logisches UND -- ergibt nur dann 1, wenn beide Seiten nicht Null ergeben
5 |
Logisches ODER -- ergibt nur dann 1, wenn mindestens eine Seite nicht null ergibt
(HINWEIS: <=
und >=
funktionieren nicht!)
Zur Zeit werden folgende Funktionen von KeyJ's Rechner unterstützt:
neg(
a)
abs(
a)
sgn(
a)
not(
a)
round(
a)
trunc(
a)
, int(
a)
frac(
a)
sqr(
a)
sqrt(
a)
exp(
a)
ln(
a)
lg(
a)
ld(
a)
deg2rad(
a)
rad2deg(
a)
random(
a)
sin(
a)
, cos(
a)
, tan(
a)
, cot(
a)
, sec(
a)
, csc(
a)
arcsin(
a)
, arccos(
a)
, arctan(
a)
, arccot(
a)
, arcsec(
a)
, arccsc(
a)
sinh(
a)
, cosh(
a)
, tanh(
a)
, coth(
a)
, sech(
a)
, csch(
a)
arcsinh(
a)
, arccosh(
a)
, arctanh(
a)
, arccoth(
a)
, arcsech(
a)
, arccsch(
a)
deg2rad
und rad2deg
verwendet werden.log(
a,
b)
root(
a,
b)
mod(
a,
b)
fmod(
a,
b)
KeyJ's Rechner enthält eine sehr einfacher (aber dennoch kryptische :) Scriptsprache. Jede Zeile, die im Programmfenster eingegeben wird, wird in Wirklichkeit als einzeiliges Script ausgeführt. Am Ende der Ausführung eines Scriptes wird der letzte Wert, der einer Variable zugewiesen wurde, auf die Konsole geschrieben.
#
, //
oder ;
beginnen, werden als Kommentare interpretiert (d.h. ignoriert).x^2-4*y+z
) enthalten, werden ausgewertet und das Berechnungsergebnis wird in der speziellen Variable namens Ans
(»Answer«) oder _
(Unterstrich) gespeichert. Das Ergebnis von Berechnungen, die zu Fehlern führen (z.B. Division durch Null, Logarithmus einer nicht-positiven Zahl usw.) ist immer Null, aber die Programmausführung wird fortgesetzt. Mit der spezielle Variable ` (Backtick) kann geprüft werden, ob eine Operation fehlgeschlagen ist: Sie enthält den Wert 1, wenn die letzte Operation einen Fehler bewirkte, oder 0, wenn sie erfolgreich durchgeführt werden konnte.:=
AusdruckAns
.a
bis z
, Groß-/Kleinschreibung wird ignoriert.write
|print
"
Zeichenkette"
write
|print
Ausdruck[:
Länge[:
Stellen]]write
|print
hex
|bin
|oct
Ausdruck[:
Länge]
write
, im Gegensatz zu print
, schreibt die Zeile nicht sofort in die Konsole, sondern schreibt sie in einen Zeilenpuffer. Somit ist es möglich, mehrere Werte in einer Zeile auszugeben.hex
|bin
|oct
wird der Wert als eine 32-Bit-Ganzzahl in hexadezimaler, binärer oder oktaler Notation ausgegeben.input
Variablelabel
Marke0
bis 9
und a
bis z
(ohne Berücksichtigung von Groß-/Kleinschreibung).goto
Markeif
Bedingung goto
Markeif
Bedingungelse
endif
if
folgen, nur dann aus, wenn die Bedingung einen Nicht-Null-Wert ergibt. Andernfalls wird der else
-Zweig ausgeführt, wenn er existiert.skip
Bedingungexit