userpref.js In der Datei userpref.js befindet sich die Funktion userpref_k1pp, durch JavaSript-Anweisungen innerhalb dieser Funktion lassen sich Aussehen und Verhalten von k1pp.htm geringfügig ändern. Bei den Anweisungen ist zu beachten, daß JavaScript genau zwischen Groß- und Kleinschreibung unterscheidet, d.h. z.B. die Anweisung "user.start_A" wird nicht als "user.start_a" erkannt. Startverhalten Gemäß Default ist beim Start von k1pp.htm das 1. Formular "Komb. und Var." aktiv, das beiden anderen Formulare sind grau = inaktiv und werden erst durch einen Klick aktiviert. Durch die Anweisung user.start_a = 2 wird das 2. Formular bereits beim Start von k1pp.htm aktiviert. Durch die Anweisung user.start_a = 3 wird das 3. Formular bereits beim Start von k1pp.htm aktiviert. Startverhalten ( Formular 3 ) Formular 3 besteht aus Unterformularen, von denen immer nur eines angezeigt wird. Durch die Anweisung user.start_a3 = kleinbuchstabe(n) wird festgelegt, welches Unterformular beim Start von k1pp.htm zunächst sichtbar ist: user.start_a3 = 'v' // Unterformular "mvv" user.start_a3 = 'g' // Unterformular "ggT" user.start_a3 = 'm' // Unterformular "mod" user.start_a3 = 'z' // Unterformular "Zerlegung und φ" user.start_a3 = 'x' // Unterformular "Hex / Dez / ..." user.start_a3 = 'rk' // Unterformular "Rechner: Kombinatorik-Funktionen" user.start_a3 = 'rb' // Unterformular "Rechner: bit strings" user.start_a3 = 'rz' // Unterformular "Rechner: Ganzzahlige Funktionen" user.start_a3 = 'rr' // Unterformular "Rechner: Reellwertige Funktionen" user.start_a3 = 'rc' // Unterformular "Rechner: Komplexwertige Funktionen" Anzeige der Ergebnisse ( Formulare 1 und 2 ) - Fall 0 Fall 0 = das Ergebnis wird von JavaScript ganzzahlig dargestellt. Default: die Darstellung von JavaScript wird unverändert übernommen, z.B. 913517247483640800, durch die Anweisung user.set_nt0 ( ziffernzahl , trennzeichen ) kann die Ausgabe in Gruppen mit 6 oder 3 Ziffern unterteilt werden. Parameter ziffernzahl muß 6 oder 3 sein, andere Werte werden ignoriert. Parameter trennzeichen ist optional, wenn er fehlt, wird ein Leerzeichen angenommen. Bei ziffernzahl gleich 3 kann trennzeichen aus 2 Zeichen bestehen, das erste Zeichen wird für die "Millionen-Lücken", das zweite für die "Tausender-Lücken" benutzt. Beispiele: user.set_nt0 ( 6 ) // Ausgabe: 913517 247483 640800 user.set_nt0 ( 6 , '-' ) // Ausgabe: 913517-247483-640800 user.set_nt0 ( 3 ) // Ausgabe: 913 517 247 483 640 800 user.set_nt0 ( 3 , '-' ) // Ausgabe: 913-517-247-483-640-800 user.set_nt0 ( 3 , '- ' ) // Ausgabe: 913 517-247 483-640 800 Anzeige der Ergebnisse ( Formulare 1 und 2 ) - Fall 1 Fall 1 = das Ergebnis ist so groß, daß es von JavaScript in Exponentialdarstellung ausgegeben wird. Default: die Darstellung von JavaScript wird unverändert übernommen, z.B. 9.910359161258741e+26. Durch die Anweisung user.nt1_str = Ausgabemuster kann der Defaultwertwert überschrieben werden, dabei sollte Ausgabemuster folgende Teilstrings enthalten: {m} ( oder {M} ) = Platzhalter für die Mantisse des Ergebnisses {e} ( oder {E} ) = Platzhalter für den Exponenten ( ohne "+"-Vorzeichen ) des Ergebnisses Beispiel: user.nt1_str = '{m} mal zehn hoch {e}' // Ausgabe: 9.910359161258741 mal zehn hoch 26 Anzeige der Ergebnisse - ( Formulare 1 und 2 ) Fall 2 Fall 2 = das Ergebnis ist so groß, daß es den in JavaScript üblichen Zahlenbereich übersteigt, k1pp.htm verwendet intern eine Näherungslösung. Default: Die Mantisse wird auf 8 Nachkommastellen gerundet, zur Ausgabe wird ( zur Unterscheidung von Fall 1 ) das Ausgabemuster "{M} × 10^{E}" verwendet. Beispiel: 9.04923386 × 10^3995 Durch die Anweisung user.nt2_fix = neuer_Wert kann ein neuer Rundungswert festgelegt werden. Beispiele: user.nt2_fix = 2 // auf 2 Nachkommastellen runden, Ausgabe: 9.05 × 10^3995 user.nt2_fix = 10 // auf 10 Nachkommastellen runden, Ausgabe: 9.0492338590 × 10^3995, // Ergebnis entspricht vermutlich immer noch der Rechengenauigkeit der Näherungslösung user.nt2_fix = 99 // nicht runden, Ausgabe: 9.049233858962124 × 10^3995, // eventuell sinnvoll für Uralt-Browser, die mit der JavaScript-Methode "toFixed" nicht zurechtkommen Durch die Anweisung user.nt2_str = neues_Ausgabemuster kann das Default-Ausgabemuster überschrieben werden. Beispiel: user.nt2_str = '{m}ä+{e}' // Ausgabe: 9.04923386ä+3995 Anzeige der Ergebnisse - ( Formular 3, Unterformular "mvv" ) Die Anweisungen user.set_nt0, user.nt1_str, user.nt2_str und user.nt2_fix für Formular 1 und 2 bestimmen auch im Unterformular "mvv" das Ausgabeformat der Felder a.G, a.t und teilweise W.t. Anzeige der Ergebnisse - ( Formular 3, Unterformular "r.K" = "Rechner für Kombinatorik-Funktionen" ) Das Ausgabemuster user.nt2_str bestimmt auch hier das Format bei großen Ergebnisses. Anzeige der Ergebnisse - ( Formular 3, Unterformular "r.B" = "Rechner für bit strings" ) Über radio buttons kann das Ergebnis wahlweise binär, oktal, hexadezimal, unsigned ( = dezimal ohne Vorzeichen ) oder signed ( = dezimal mit Vorzeichen ) ausgegeben werden. Durch die Anweisung user.bs_out = 'b' wird die binäre Anzeige als Startwert für k1pp festgelegt ( analog: o / h / u / s ). Bei binärer, bzw. hexadezimaler Ausgabe kann das Ergebnis in 4er- und/oder 8er-Gruppen unterteilt werden: user.set_bbin ( ziffernzahl , trennzeichen ) user.set_bhex ( ziffernzahl , trennzeichen ) Parameter ziffernzahl muß 8 oder 4 sein, andere Werte werden ignoriert. Parameter trennzeichen ist optional, wenn er fehlt, wird ein Leerzeichen angenommen. Bei ziffernzahl gleich 4 kann trennzeichen aus 2 Zeichen bestehen, das erste Zeichen wird für die "8er-Lücken", das zweite für die "4er-Lücken" benutzt. Beispiele: user.set_bhex ( 8 ) // Ausgabe: 018B241F 7C0D8392 user.set_bhex ( 8 , '-' ) // Ausgabe: 018B241F-7C0D8392 user.set_bhex ( 4 ) // Ausgabe: 018B 241F 7C0D 8392 user.set_bhex ( 4 , '-' ) // Ausgabe: 018B-241F-7C0D-8392 user.set_bhex ( 4 , '- ' ) // Ausgabe: 018B 241F-7C0D 8392 Bei hexadezimaler Ausgabe werden die Ziffern A bis F als Großbuchstaben angezeigt, durch die Anweisung user.upcase_x = false werden die Ziffern a bis f als Kleinbuchstaben angezeigt. Anzeige der Ergebnisse - ( Formular 3, Unterformular "r.Z" = "Rechner für ganzzahlige Funktionen" ) Sofern die Checkbox "runden" angekreuzt ist, gilt: Falls das Rechenergebnis mehr als z0 Dezimalstellen besitzt, wird es in Exponentialdarstellung mit maximal z1 Ziffern angezeigt, z0 und z1 können in userpref.js z.B. wie folgt definiert werden: user.round_z0 = 15 // 15 statt Defaultwert 12 user.round_z1 = 30 // 30 statt Defaultwert 40 Die aktuellen Parameterwerte für z0 und z1 können als tooltip über dem Text "runden" eingesehen werden. Startverhalten: Beim Start von k1pp ist die Checkbox "runden" bereits angekreuzt, durch die Anweisung user.cz_SRound = false kann dieses Startverhalten geändert werden. Anzeige der Ergebnisse - ( Formular 3, Unterformular "r.R" = "Rechner für reellwertige Funktionen" ) Sofern die Checkbox "runden" angekreuzt ist, wird die Ausgabe auf 10 Dezimalstellen gerundet. Der Defaultwert 10 kann durch die Anweisung user.cr_round = n geändert werden, zulässige Werte für n sind 1 bis 99. Beispiele: Eingabe: E * 100 ... E / 1000 ..... E * 1e30 Anzeige bei user.cr_round = 6 ... 271.828 ... 0.00271828 ... 2.71828e+30 Anzeige bei user.cr_round = 5 ... 271.83 .... 0.0027183 .... 2.7183e+30 Anzeige bei user.cr_round = 4 ... 271.8 ..... 0.002718 ..... 2.718e+30 Anzeige bei user.cr_round = 3 ... 272 ....... 0.00272 ...... 2.72e+30 Anzeige bei user.cr_round = 2 ... 272 ....... 0.0027 ....... 2.7e+30 Anzeige bei user.cr_round = 1 ... 272 ....... 0.003 ........ 3e+30 Werte für n größer als 16 sind ( z.Z. ? ) wirkungslos, da JavaScript - Stand Jahr 2012 - in der Regel ohnehin nur maximal 16 Dezimalstellen ausgibt. Sonderfall "ungenaue Rechenausdrücke": - als "ungenaue Rechenausdrücke" gelten Eingaben, die die Gauss-Funktion enthalten. - user.cr_roundG = n bestimmt die Ausgabe bei solchen Ausdrücken, wenn "runden" angekreuzt ist, zulässige Werte für n sind 1 bis 99, Defaultwert ist 7. - user.cr_roundH = n bestimmt die Ausgabe bei solchen Ausdrücken, wenn "runden" nicht angekreuzt ist, zulässige Werte für n sind 1 bis 99, Defaultwert ist 7. Die aktuellen Parameterwerte für das Runden können als tooltip über dem Text "runden" eingesehen werden. Startverhalten: Beim Start von k1pp ist die Checkbox "runden" noch nicht angekreuzt, durch die Anweisung user.cr_SRound = true kann dieses Startverhalten geändert werden. Anzeige der Ergebnisse - ( Formular 3, Unterformular "r.C" = "Rechner für komplexwertige Funktionen" ) Bei Programmstart ist für die Ergebnis-Anzeige das kartesische Format vorgewählt. user.cc_out = 1 // mit Polar-Anzeige in Rad starten user.cc_out = 2 // mit Polar-Anzeige in 360-Grad starten Mit der Anweisung user.cc_c_str = Muster kann ein Anzeigemuster für das kartesische Format definiert werden, dabei sind {R} und {I} Platzhalter für Real- und Imaginärteil. Beispiel: user.cc_c_str = 'Realteil: {R} &nbsp; Imginärteil: {I}' Mit der Anweisung user.cc_p_str = Muster kann ein Anzeigemuster für das Polar-Format definiert werden, dabei sind {B}, {W} und {S} Platzhalter für Betrag, Argument und Maßeinheit. Beispiel: user.cc_p_str = 'Betrag: {B} &nbsp; Winkel: {W} {S}' Die Anweisung user.cc_180 = true verschiebt bei Polar-Anzeige den Winkelwert um π, bzw. 180° "nach unten". Default-Anzeige ohne dieser Anweisung: 0 <= arg < 2 × PI , bzw. 0 <= arg < 360° Anzeige mit dieser Anweisung: minus PI < arg <= plus PI , bzw. minus 180 < arg <= plus 180° Die Anweisung user.cc_ground = true rundet bei der Polar-Anzeige in 360-Grad das Winkelargument auf 3 Nachkommastellen. Ohne Anweisung: pow ( 2i , 1/2 ) --> φ = 44.99999999999999 ° Mit Anweisung: pow ( 2i , 1/2 ) --> φ = 45 ° Hinweise: - "user.cc_ground = true" kann ab Version 0.59.02 nahezu gleichwertig durch die Anweisungen "user.cc_roundG" und "user.cc_roundH" ersetzt werden, siehe unten. - die Anweisung "user.cc_ground" wird möglicherweise in künftigen Versionen von k1pp als "veraltet" entfallen. Anweisungen zum Runden: user.cc_round = n // n = 1..99 , Default 10 // Signifikante Stellen für Real- und Imaginärteil, falls "runden" angekreuzt ist user.cc_roundA = n // n = 1..99 , Default 10 // Signifikante Stellen für Absolutwert bei Polar-Anzeige, falls "runden" angekreuzt ist user.cc_roundR = n // n = 1..99 , Default 10 // Signifikante Stellen für Argument in Rad bei Polar-Anzeige, falls "runden" angekreuzt ist user.cc_roundG = n // n = 1..99 , Default 6 // Signifikante Stellen für Argument in 360-Grad, falls "runden" angekreuzt ist user.cc_roundH = n // n = 1..99 , Default 15 // Signifikante Stellen für Argument in 360-Grad, falls "runden" nicht angekreuzt ist Die aktuellen Parameterwerte für das Runden können als tooltip über dem Text "runden" eingesehen werden. Weitere Details und Beispiele zum Runden: wie beim reellwertigen Rechner, siehe vorhergehenden Abschnitt. Mit der Anweisung user.cc_SRound = true wird erzwungen, daß die Checkbox "runden" bereits beim Start von k1pp angekreuzt ist. Exponentialdarstellung erzwingen ( reellwertiger und komplexer Rechner) Verhalten von k1pp gemäß Grundeinstellung: - wenn als Ergebnis eine ganze Zahl mit mehr als 16 Stellen herauskommt, ... - ... dann wird das Ergebnis in Exponentialdarstellung ausgegeben. Hintergrund: - JavaScript rechnet mit 15- bis 16-stelliger Genauigkeit - Einige (?) Browser liefern in manchen Fällen dennoch Ergebnisse in 20-stelliger "Genauigkeit" Der Defaultwert 16 von k1pp läßt sich überschreiben mit user.fix_2_exp = n // n = 1..99 Beispiel: JavaScript-Ergebnis von Math.PI*1e20 : 314159265358979330000 ( z.B. im aktuellen Seamonkey 2.6.1 und im IE8 ) Anzeige bei user.fix_2_exp = 21 : 314159265358979330000 Anzeige bei user.fix_2_exp = 20 : 3.1415926535897933e+20 Anzeige der Version Durch die Anweisung user.show_vers = negative_zahl wird rechts unten die aktuelle Version von k1pp.htm angezeigt. Durch die Anweisung user.show_vers = positive_zahl wird rechts unten die aktuelle Version von k1pp.htm angezeigt, diese Anzeige wird mit einem Link zu einer Downloadseite hinterlegt: user.show_vers = 1 // heise.de

Installation und Start Nach dem Entpacken von k1pp.zip in ein Verzeichnis - z.B. C:\hugo - liegt folgende Struktur vor: C:\hugo - Datei k1pp_de.htm - Unterverzeichnis k1pp - Datei k1pp_de.htm - Datei userpref.js - Datei liesmich.htm - weitere Einträge im Unterverzeichnis k1pp kann alternativ gestartet werden ... ... durch den Aufruf von: C:\hugo\k1pp_de.htm ... durch den Aufruf von: C:\hugo\k1pp\k1pp_de.htm

Historie 2010-04-13: Version 0.50 2010-08-13: Version 0.51 2010-09-22: Version 0.52 2011-05-13: Version 0.53 2011-06-13: Version 0.54 2011-09-22: Version 0.55 2011-10-03: Version 0.56 2011-10-09: Version 0.56.10 2011-10-23: Version 0.57 2011-11-11: Version 0.58 2011-11-30: Version 0.58.01 2012-01-11: Version 0.59 2012-01-19: Version 0.59.01 2012-01-26: Version 0.59.02 2012-02-12: Version 0.59.03 2012-02-29: Version 0.59.04 2012-09-02: Version 0.59.05 Version 0.50: HTML-Seite mit 2 Formularen zur Kombinatorik. Version 0.51: 3. Formular mit zunächst 2 Unterformularen: - ggT und mod, zunächst nur für maximal 9-stellige Zahlen - Primfaktoren-Zerlegung und φ-Funktion Version 0.52: 3. Formular erhält ein weiteres Unterformular "Hex / Dez / ...". Unterformular "ggT und mod" wird auf 50-stellige Zahlen erweitert. Version 0.53: Unterformular "ggT und mod" wird auf zwei neue Unterformular aufgeteilt: Unterformular "ggT" = erweiterter Euklidischen Algorithmus Unterformular "mod" = einfache Berechnungen im Restklassering Version 0.54: Neues Unterformular "mvv" Version 0.55: Neues Unterformular "Rechner: Reellwertige Funktionen" Version 0.56: "Reellwertige Funktionen" ergänzt ( fak / bin / rfak / rbin ) Neues Unterformular "Rechner: Kombinatorik-Funktionen" Version 0.56.10: "Kombinatorik-Funktionen": - Divisionsfehler " n / 0 = 0 " beseitigt - Rundungsproblem entschärft, Endergebnis wird nun immer auf maximal 10 Stellen gerundet "Reellwertige Funktionen" ergänzt ( ggT / rggT ) Version 0.57: "Reellwertige Funktionen" ergänzt ( SuVB / PrVB ) Neues Unterformular "Rechner: Ganzzahlige Funktionen" Version 0.58: "Ganzzahlige Funktionen" ergänzt ( XOR ) Neues Unterformular "Rechner: bit strings" Version 0.58.01: "Reellwertige Funktionen" ergänzt ( aTan2 / agTan2 ) Version 0.59: Neues Unterformular "Komplexwertige Funktionen" Version 0.59.01: "Reellwertige Funktionen" ergänzt ( Poly / n2a / n2b ) "Komplexwertige Funktionen" ergänzt ( Poly / n2a / n2b ) Version 0.59.02 "Ganzzahlige Funktionen": Option "runden" geringfügig ergänzt "Reellwertige Funktionen": Option "runden" hinzugefügt "Komplexwertige Funktionen": Option "runden" hinzugefügt user.fix_2_exp für reell- und komplexwertige Funktionen, siehe liesmich.htm weiter oben Version 0.59.03 "Komplexwertige Funktionen" ergänzt ( Arkus- und Area-Funktionen ) diverse Funktionsrechner ( r.B / r.R / r.C ) : diverse Fehler beseitigt ( Temporärer Kommentar "59.03" im Quelltext ) Version 0.59.04 "Reellwertige Funktionen" ergänzt ( Gauss- und Exponentialverteilung ) Version 0.59.05 Unterformular "mvv": Rechenfehler bei "m.W." beseitigt Unterformular "r.K": Addition und Subtraktion hinzugefügt

Copyright Kurz gesagt: k1pp.htm ist public domain mit Haftungsausschluß. Etwas ausführlicher: Für k1pp.htm und alle dazu gehörende Teile ( Includes, Dokumentationen ) gilt: - Der Autor beansprucht weder heute noch irgendwann in der Zukunft irgendwelche Rechte daran. - Der Autor gibt weder heute noch irgendwann in der Zukunft irgendwelche Zusagen auf Schadensfreiheit oder Korrektheit.

Mehr Lesestoff Das Unterverzeichnis "-/texte" enthält weitere Kurzinformationen, darunter ... ... eine Kurzbeschreibung des verwendeten Includes "big_log" ( JavaScript sinnvoll ) ... eine Test-Datei zum verwendeten Include "big_log" ( JavaScript notwendig )