Syntax In den oberen 3 Zeilen des Unterformulars "r.Z" kann zur Berechnung ein einfacher Ausdruck mit ganzzahligen Funktionen eingeben werden. Ausdruck Jeder Ausdruck besteht aus einem Argument ( alias Operand ) oder mehreren Argumenten, die durch Operatoren verbunden sind. Operatoren können sein: a + b ... für die Addition a - b ... für die Subtraktion a * b ... für die Multiplikation a / b ... für die Ganzzahldivision, z.B. 59 / 10 ---> ergibt 5 a % b ... für den Divisionsrest a mod b, z.B. 59 % 10 ---> ergibt 9 Das erste Argument "a" bei der Division, bzw. dem Divisionsrest darf nicht negativ sein, das zweite Argument "b" darf nicht Null sein. Einfache Beispiele für Ausdrücke mit ganzzahligen Argumenten sind ... 1234 ---> ergibt 1234 1 + 2 + 3 ---> ergibt 6 1 + 2 * 3 ---> ergibt 7, wegen der "Punkt_vor_Strich-Regel" Argumente können sein: Ganze Zahlen, z.B. 0 oder 1 oder 12 oder 123 Ausdrücke in Klammern, z.B. ... ( 3 + 8 ) oder [ 3 + 8 ] oder { 3 + 8 } Funktionen mit Argument(en) als Parameter(n) in Klammern, z.B. ... p2 ( 7 ) oder p2 [ 7 ] oder p2 { 7 } Jedes Argument kann Vorzeichen besitzen: '-' und/oder '+' Groß- und Kleinschreibung / Leerzeichen Groß- und Kleinschreibung ... ... interessiert nicht, die folgenden Eingaben liefern ein identisches Ergebnis: ABS ( - 7 ) abs ( - 7 ) Abs ( - 7 ) Leerzeichen ... ... interessieren nicht, außer in den folgenden Fällen: - Zahlen dürfen keine Leerzeichen beinhalten - Funktionsnamen müssen zusammen geschrieben werden, z.B. ist die folgende Eingabe fehlerhaft: A B S  ( - 7 ) "Semantik" Folgende "Rechenergebnisse" sind möglich: DvZ ---> Division_by_Zero: es wurde versucht durch Null zu teilen. NaNN ---> Not_a_Natural_Number: an einer Stelle, an der eine natürliche Zahl erwartet wird, wurde eine negative Zahl vorgefunden.

Funktionen MOD und DIV Mod1 ( a , b ): Divisionsrest von a geteilt b Div1 ( a , b ): a ganzzahlig geteilt durch b Es gilt immer: Das Vorzeichen von Parameter b wird bei der Berechnung ignoriert. Mod1 ( a , b ) liefert eine natürliche Zahl von Null bis ( b minus 1 ) zurück. a = b × Div1 ( a , b ) + Mod1 ( a , b ) Beispiele: Mod1 ( +59 , +10 ) = +9 // Div1 ( +59 , +10 ) = +5 // +5 * +10 + +9 = +59 Mod1 ( +59 , -10 ) = +9 // Div1 ( +59 , -10 ) = -5 // -5 * -10 + +9 = +59 Mod1 ( -59 , +10 ) = +1 // Div1 ( -59 , +10 ) = -6 // -6 * +10 + +1 = -59 Mod1 ( -59 , -10 ) = +1 // Div1 ( -59 , -10 ) = +6 // +6 * -10 + +1 = -59 Mod2 ( a , b ): Divisionsrest von a geteilt b Div2 ( a , b ): a ganzzahlig geteilt durch b Es gilt immer: Das Vorzeichen von Parameter b wird bei der Berechnung ignoriert. Mod2 ( a , b ) liefert eine ganze Zahl von ( 1 minus b ) bis ( b minus 1 ) zurück, das Ergebnis ist genau dann negativ, wenn der Parameter a negativ ist. a = b × Div2 ( a , b ) + Mod2 ( a , b ) Beispiele: Mod2 ( +59 , +10 ) = +9 // Div2 ( +59 , +10 ) = +5 // +5 * +10 + +9 = +59 Mod2 ( +59 , -10 ) = +9 // Div2 ( +59 , -10 ) = -5 // -5 * -10 + +9 = +59 Mod2 ( -59 , +10 ) = -9 // Div2 ( -59 , +10 ) = -5 // -5 * +10 + -9 = -59 Mod2 ( -59 , -10 ) = -9 // Div2 ( -59 , -10 ) = +5 // +5 * -10 + -9 = -59 Spezielle Exponential- und Potenzfunktionen E10 (n) = Exponentialfunktion zur Basis 10, z.B. E10(2) = 10 hoch 2 = 100 E2 (n) = Exponentialfunktion zur Basis 2, z.B. E2 (8) = 2 hoch 8 = 256 Hinweis: Parameter n darf nicht negativ sein. P2 (z): z hoch 2 P3 (z): z hoch 3 Allgemeine Potenzfunktionen POW (b,e) oder POT (b,e): Berechnet wird b hoch e. Parameter e darf nicht negativ sein. POW (b,e,m) oder POT (b,e,m): Berechnet wird ( b hoch e ) mod m, falls Parameter b negativ ist wird er durch mod1 ( b , m ) ersetzt. Parameter e darf nicht negativ sein, Parameter m muß größer als Null sein. bit strings and (n,m) oder und (n,m): Bitweise UND-Verknüpfung von n und m, z.B. and ( 10 , 6 ) ---> 2 // 1010 and 0110 ---> 0010 Hinweis: Falls Parameter n oder m negativ ist, wird das Vorzeichen ignoriert, and (-10,-6) = and (-10,+6) = and (+10,-6) = and (+10,+6) = 2. or (n,m) oder oder (n,m): Bitweise ODER-Verknüpfung von n und m, z.B. or ( 10 , 6 ) ---> 14 // 1010 and 0110 ---> 1110 Hinweis: Falls Parameter n oder m negativ ist, wird das Vorzeichen ignoriert. xor (n,m) oder xoder (n,m): Bitweise Exklusiv-ODER-Verknüpfung von n und m, z.B. or ( 10 , 6 ) ---> 12 // 1010 and 0110 ---> 1100 Hinweis: Falls Parameter n oder m negativ ist, wird das Vorzeichen ignoriert. Weitere Funktionen mit fixer Parameterzahl abs (z): Absolutwert von z ggT (n,m): Größter gemeinsamer Teiler von n und m fak (n): Fakultät von n Hinweis: Parameter n darf nicht negativ sein. Warnung: Bei großen Werten für n rechnet k1pp sehr lange ( Hintergrund: es werden intern ( n minus 1 ) Multiplikationen durchgeführt ). bin (n,m): Binomialkoeffizient "n über m" Hinweis: Parameter n und m dürfen nicht negativ sein. Warnung: Bei großen Werten für n rechnet k1pp unter Umständen sehr lange. SuVB(v,b): Summe von v bis b, z.B. suvb ( 3 , 5 ) = suvb ( 5 , 3 ) = 3 + 4 + 5 = 12 PrVB(v,b): Produkt von v bis b, z.B. prvb ( 3 , 5 ) = prvb ( 5 , 3 ) = 3 × 4 × 5 = 60 Warnung: Bei großen Unterschieden zwischen v und b rechnet k1pp u.U. sehr lange. Funktionen mit variabler Parameterzahl Min(v1,...,vN): Minimum der übergebenen Parameter, z.B. min ( 8 , 2 , - 7 ) = - 7 Max(v1,...,vN): Maximum der übergebenen Parameter Sum (v1,...,vN): Summe der übergebenen Parameter Prod(v1,...,vN): Produkt der übergebenen Parameter

Ergebnis-Anzeige Falls das Rechenergebnis mehr als 12 Dezimalstellen besitzt, wird es - sofern die Checkbox "runden" angekreuzt ist - in Exponentialdarstellung mit maximal 40 Ziffern angezeigt. Die Parameterwerte 12 und 40 können in der Datei userpref.js z.B. durch die folgenden Anweisungen verändert werden: user.round_z0 = 15 // statt 12 user.round_z1 = 30 // statt 40 Die aktuellen Parameterwerte können als tooltip über der Checkbox und dem Text "runden" eingesehen werden.

Sonstiges k1pp unterliegt in der Version 0.5x folgenden Einschränkungen: - es stehen nur 3 Zeilen für die Eingabe zu Verfügung - Zwischenergebnisse der Berechnung werden nicht angezeigt Mögliche Notlösung: In der Download-Version befindet sich im Verzeichnis "texte" die Test-Datei "test_saec.htm" mit dem Menüpunkt "..r:Z..". Link zur Test-Seite ( nur in der Download-Version )