home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / kzr_0899.zip / kzr.INF (.txt) < prev    next >
OS/2 Help File  |  1999-08-24  |  75KB  |  1,453 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Allgemeines ΓòÉΓòÉΓòÉ
  3.  
  4. !!! kzr.CMD !!!
  5. F╨ær die OS/2-Kommandozeile
  6. unter dem klassischen REXX und Object REXX 
  7. Version vom August 1998 
  8.  
  9. kzr.CMD ist ein REXX-(k)ommando (z)eilen-(r)echner mit (fast) beliebiger 
  10. Genauigkeit f╨ær die folgenden Rechenoperationen: 
  11.  
  12.           Rechenoperation                                 Kommandozeilen- 
  13.                                                               Operator 
  14.           Addieren                                            (+) 
  15.           Subtrahieren                                        (-) 
  16.           Multiplizieren                                      (*) 
  17.           Potenzieren mit ganzzahligem Exponenten             (**) 
  18.           Dividieren                                          (:) oder (/) 
  19.  
  20.           Dividieren und den ganzzahligen Teil 
  21.           des Ergebnisses ausgeben                            (divganz) 
  22.  
  23.           Dividieren und den Divisionsrest ausgeben           (divrest) 
  24.  
  25.  In REXX (oder auch grunds╨ötzlich in OS/2) k╨ñnnen sowohl das Symbol  %  als 
  26.  auch der String  //  nicht als Kommandozeilen-Parameter ╨æbernommen werden. Um 
  27.  die internen mathematischen Operatoren  %  und  //  von der Kommandozeile aus 
  28.  verwenden zu k╨ñnnen, war es erforderlich, die "externen Operatoren"  divganz 
  29.  f╨ær  %  und  divrest  f╨ær  // zu definieren. 
  30.  
  31.  Zus╨ötzlich zu den hier beschriebenen elementaren Rechenoperationen k╨ñnnen auch 
  32.  Mathematische Funktionen 
  33.  in die "aktuelle Rechenaufgabe" eingebunden werden. 
  34.  
  35.  kzr.CMD ist dann besonders praktisch, wenn man, ohne eines der gro╤üen, 
  36.  meistens grafischen Mathematik-Programme starten zu m╨æssen, auf der 
  37.  OS/2-Kommandozeile ganz schnell eine Rechenaufgabe mit den oben erkl╨örten 
  38.  Rechenoperationen und den verf╨ægbaren mathematischen Funktionen ausf╨æhren 
  39.  m╨ñchte. Au╤üerdem beanspruchen auf einer HPFS-formatierten Festplatte die 
  40.  "Kernfunktion" kzr.CMD weniger als 24,5 Kilobyte, die kleine Version kzr0.CMD 
  41.  weniger als 3,2 Kilobyte und die "Hilfsfunktion" MinNDA.CMD weniger als 6,1 
  42.  Kilobyte. Hinzu kommen, je nach Bedarf etwa 3 bis 6 Kilobyte (eine Ausnahme 
  43.  mit ca. 10 Kilobyte) f╨ær jede mathematische Funktion. 
  44.  
  45.  Die kleine Version kzr0.CMD hat fast die gleiche Rechenf╨öhigkeit wie die der 
  46.  gro╤üen Version kzr.CMD ; 
  47.  nur ist die interne Rechengenauigkeit mit 48 Dezimalstellen konstant 
  48.  festgelegt. 
  49.  
  50.  Des weiteren k╨ñnnen von der OS/2-Kommandozeile, direkt, das hei╤üt ohne die 
  51.  Datei kzr.CMD zu verwenden, 
  52.  6 REXX-Umwandlungsfunktionen aufgerufen werden, die es gestatten, Zahlen -- 
  53.  Integer-Anteil und/oder Mantisse -- von dezimal nach hexadezimal, von dezimal 
  54.  nach bin╨ör, von bin╨ör nach hexadezimal und jeweils umgekehrt umzuwandeln. 
  55.  
  56.  kzr.CMD, kzr0.CMD, MinNDA.CMD, die REXX-Dateien f╨ær die mathematischen 
  57.  Funktionen sowie die sechs Umwandlungsfunktionen sind "Cardware". ╨¬ber eine 
  58.  Nachricht (auch Fax oder e-mail), da╤ü der REXX-(k)ommando(z)eilen-(r)echner 
  59.  kzr.CMD  verwendet wird, w╨ærde ich mich freuen. 
  60.  
  61.  Diese Version vom August 1998 soll vorl╨öufig die endg╨æltige Version von 
  62.  kzr.CMD, den 34 mathematischen Unterprogrammen, den 6 Umwandlungsfunktionen 
  63.  und Prim.CMD bleiben. Weitere Versionen sind nicht geplant, es sei denn, es 
  64.  w╨ærden mir Fehler mitgeteilt werden oder ich w╨ærde selber Fehler bemerken. 
  65.  
  66.  Wenn allerdings der Wunsch bestehen sollte, weitere " externe" Funktionen, 
  67.  auch weitere der sogenannten "h╨ñheren Funktionen" verwenden zu k╨ñnnen, so 
  68.  erbitte ich eine diesbez╨ægliche Nachricht. Nachrichten ╨æber (von mir noch 
  69.  nicht entdeckte) Fehler sind sehr willkommen. 
  70.  
  71.  Das Gesamtpaket kzr.CMD wird ab Mitte August 1998 auch f╨ær Object REXX 1.0 f╨ær 
  72.  Linux verf╨ægbar sein. 
  73.  Object Rexx 1.0 f╨ær Linux ist aus dem Internet ╨æber die Adresse 
  74.  
  75.       http://service2.boulder.ibm.com/dl/rexx/orexxlinux-d 
  76.  
  77.  ΓûÆkostenlosΓûÆ erh╨öltlich. 
  78.  
  79.  Diese INF-Datei wurde erstellt mit Hilfe von Phelsuma/2, einer 
  80.  Entwicklungsumgebung f╨ær OS/2-Hilfe-Dateien. Der Autor von Phelsuma/2 ist 
  81.  Michael Petz, B╨ñr╤üumer Str. 15 in D-38312 Heiningen; Tel.: 05334 7186 
  82.  
  83.  Im August 1998, 
  84.  Hermann Mahr 
  85.  Kafkastra╤üe 14 
  86.  64291 Darmstadt 
  87.  Telefon:  06151 373802 
  88.  Telefax:  06151 373805  (von 09.00 Uhr bis 23.00 Uhr) 
  89.  e-mail:   h_mahr@hrzpub.tu-darmstadt.de 
  90.  
  91.  
  92. ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
  93.  
  94.  
  95. Die Installation des 
  96. (k)ommando(z)eilen(r)echners kzr.CMD
  97.  
  98.  geschieht dadurch, da╤ü man die Dateien 
  99.                                                   kzr.CMD, kzr0.CMD, 
  100.                                                   MinNDA.CMD, und kzr.INF, 
  101.  
  102.  alle mathematischen Funktionen 
  103.                                                   sin.CMD, cos.CMD, tan.CMD, 
  104.                                                   cot.CMD, u.s.w., 
  105.  
  106.  alle Umwandlungsfunktionen 
  107.                                                   d2b, d2x, u.s.w. 
  108.  
  109.  und die Funktion 
  110.                                                   prim.CMD 
  111.  
  112.  in ein gemeinsames Verzeichnis kopiert, das ╨æber den Pfad erreichbar ist. 
  113.  
  114.  Da OS/2 Warp 3.0 und Warp 4.0 den ANSI-Treiber standardm╨ö╤üig geladen hat, kann 
  115.  die Bildschirm-Anzeige der Ergebnisse von von  kzr.CMD  farbig erfolgen. 
  116.  Alle von kzr.CMD aufrufbaren Funktionen und auch  kzr.CMD  selbst sind f╨ær 
  117.  eine farbige Ausgabe eingerichtet. 
  118.  
  119.  Die Anwendung des  (k)ommando(z)eilen(r)echners  kzr.CMD  erfolgt nat╨ærlich 
  120.  von der OS/2-Kommandozeile aus. 
  121.  
  122.  
  123. ΓòÉΓòÉΓòÉ 3. Anwendung ΓòÉΓòÉΓòÉ
  124.  
  125. Die Anwendung von kzr.CMD ist au╤üerordentlich einfach, was in den folgenden 
  126. Unterabschnitten 
  127.  
  128.                         Rein numerische Anwendung 
  129.  und 
  130.                         Anwendung mir Variablen 
  131.  
  132.  an Beispielen erl╨öutert wird. 
  133.  
  134.  Wichtige Anmerkung: 
  135.  
  136.  Die Symbole  ,  $,  ?,  \,  @,  #,  '  und  "  d╨ærfen auf der 
  137.  OS/2-Kommandozeile in der Eingabe-Kette f╨ær kzr.CMD  und  kzr0.CMD  nicht 
  138.  verwendet werden, weil sie keine der in der arithmetischen Syntax erlaubten 
  139.  Operatoren sind. Geschieht dies doch, so wird eine diesbez╨ægliche Meldung 
  140.  angezeigt. 
  141.  
  142.  Die Symbole  %,  &,  <, >  und  |  sowie die Strings  <<, >>  und  // k╨ñnnen 
  143.  auf der OS/2-Kommandozeile nur in bestimmten F╨öllen verwendet werden; nur 
  144.  zeigt kzr.CMD bei Verletzung der einschl╨ögigen Regeln leider keine 
  145.  diesbez╨ægliche Meldungen an. 
  146.  
  147.  
  148. ΓòÉΓòÉΓòÉ 3.1. Rein numerische Anwendung ΓòÉΓòÉΓòÉ
  149.  
  150. Man gebe als Beispiel folgendes auf der OS/2-Kommandozeile ein: 
  151.  
  152.           kzr  36, 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2 
  153.  
  154.  oder -- der besseren ╨¬bersichtlichkeit wegen -- mit Leerzeichen: 
  155.  
  156.           kzr  36, 2.5 + ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2 
  157.  
  158.  Diese Zeichenkette, bestehend aus Strings und einzelnen Symbolen, wird im 
  159.  folgenden Text als Eingabe-Kette (EK), Teile davon als Eingabe-String, also 
  160.  als EK-String bezeichnet. 
  161.  
  162.  Nach dem EK-String kzr, gefolgt von mindestens 1 Leerzeichen, stellt die 
  163.  positive ganze Zahl 36 die Anzahl der Dezimalstellen ein, mit denen intern 
  164.  maximal gerechnet werden soll. 
  165.  In der Eingabe-Kette 
  166.  
  167.           kzr  36, 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2 
  168.  
  169.  oder auch 
  170.  
  171.           kzr  36, 2.5 + ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2 
  172.  
  173.  ist nach der ganzen Zahl 36 ein Komma zwingend erforderlich. Vor diesem Komma 
  174.  k╨ñnnen ein oder mehrere Leerzeichen stehen und nach diesem Komma mu╤ü 
  175.  mindestens  1  Leerzeichen folgen. 
  176.  Wird nach dem EK-String kzr keine ganze Zahl, die gr╨ñ╤üer als 1 sein mu╤ü, 
  177.  eingetragen, so ist an dieser Stelle dennoch ein Komma mit mindesten 1 
  178.  Leerzeichen davor und dahinter unbedingt erforderlich. (In diesem Fall wird 
  179.  intern mit maximal 20 Dezimalstellen gerechnet.) 
  180.  
  181.  Der im Anschlu╤ü an den EK-String 
  182.  
  183.           kzr 36, oder kzr , 
  184.  
  185.  einzugegebende EK-String 
  186.  
  187.           2.5+(2.8E-2+2.4E-1*exp(-1.313))**2 
  188.  
  189.  oder auch 
  190.  
  191.           2.5 + ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2 
  192.  
  193.  mu╤ü die gleiche Form haben, demzufolge auch nach den gleichen Syntax-Regeln 
  194.  aufgebaut sein, wie eine entsprechende Anweisung in einer REXX-Stapel-Datei 
  195.  aufgebaut sein m╨æ╤üte. Verst╨ñ╤üe gegen diese Syntax-Regeln bewirken Meldungen, 
  196.  die in den meisten F╨öllen den Syntaxfehler auch erl╨öutern. 
  197.  
  198.  In den Dezimalbr╨æchen  2.5,  2.8E-2,  2.4E-1  und  -1.313  mu╤ü jeweils der im 
  199.  angloamerikanischen Sprachraum ╨æbliche Dezimalpunkt verwendet werden. Ein 
  200.  Komma dient in Funktions-Argumenten mit mehreren Variablen der Trennung dieser 
  201.  Variablen, die ja ihrerseits wiederum Dezimalbr╨æche sein k╨ñnnen. Bei den 
  202.  Dezimalbr╨æchen ist es gleichg╨æltig, ob der Buchstabe  "E"  oder  "e" 
  203.  verwendet wird. 
  204.  
  205.  Die Eingabe der "aktuelle Rechenaufgabe" auf der OS/2-Kommandozeile hat 
  206.  gegen╨æber einer Eingabe "innerhalb von kzr.CMD" den Vorteil, da╤ü die 
  207.  Eingabe-Kette mit einem Tastendruck wieder auf die OS/2-Kommandozeile gebracht 
  208.  werden kann und so sehr leicht Eingabefehler beseitigt werden k╨ñnnen oder da╤ü 
  209.  eine neue "aktuelle Rechenaufgabe" durch ╨₧nderung einzelner Teile dieser 
  210.  Eingabe-Kette formuliert werden kann. 
  211.  
  212.    Sonderfall: 
  213.  
  214.        Wenn man bei der unmittelbar vorangegangenen Berechnung schon ein 
  215.        Ergebnis berechnet hat, kann man, nachdem man die vorherige 
  216.        OS/2-Kommandozeilen-Eingabe per Tastendruck zur╨æckgeholt oder eine neue 
  217.        "aktuelle Rechenaufgabe" eingegeben hat, durch Ersetzen einer bestimmten 
  218.        Zahl durch die Variable  z  das Ergebnis der unmittelbar vorangegangenen 
  219.        Berechnung in der neuen "aktuellen Rechenaufgabe" weiterverwenden. Aber 
  220.        nur dann ! 
  221.  
  222.        Hierzu ein Beispiel: 
  223.  
  224.           Das Ergebnis der unmittelbar vorangegangenen Berechnung der 
  225.           "Rechenaufgabe"  45-40  durch die Eingabe-Kette 
  226.  
  227.                 kzr , 45-40 
  228.  
  229.           ist 
  230.  
  231.                 5. 
  232.  
  233.           Ruft man jetzt die Eingabe-Kette  kzr , 45-40 der unmittelbar 
  234.           vorangegangenen Rechenaufgabe auf die ╨æbliche Weise auf die 
  235.           OS/2-Kommandozeile zur╨æck, so kann man einen oder auch mehrere 
  236.           Zahlenwerte der Eingabe-Kette durch die Variable  z  ersetzen. Somit 
  237.           w╨öre zum Beispiel die neue Eingabe-Kette 
  238.  
  239.                 kzr , z-40 , 
  240.  
  241.           deren Ergebnis wegen  z = 5  gleich  -35  ist. 
  242.  
  243.           Dieses Verfahren kann, auch in komplizierteren algebraischen 
  244.           Ausdr╨æcken, mehrmals nacheinander nacheinander angewendet werden. 
  245.  
  246.  Bei der kleinen Version kzr0.CMD 
  247.  
  248.  ist die interne Rechengenauigkeit mit 48 Dezimalstellen fest eingestellt. 
  249.  Daher ist das erste Komma in der Eingabekette -- unmittelbar nach der 
  250.  Teilkette kzr0.CMD -- nicht erlaubt. 
  251.  Die "aktuelle Rechenaufgabe" mu╤ü daher unmittelbar nach dem der Teilkette 
  252.  kzr0.CMD folgenden Leerzeichen (mindestens eines) geschehen. 
  253.  
  254.  Die Eingabe 
  255.                  kzr0 sin(.2) 
  256.                                  w╨öre ein Beispiel. 
  257.  
  258.  Bei Eingabefehlern oder internen St╨ñrungen, zum Beispiel das Erzeugen zu 
  259.  gro╤üer Zahlen, geben REXX oder kzr0.CMD lediglich eine allgemeine 
  260.  Fehlermeldung aus. 
  261.  
  262.  
  263. ΓòÉΓòÉΓòÉ 3.2. Anwendung mit Variablen ΓòÉΓòÉΓòÉ
  264.  
  265. kzr.CMD bietet die M╨ñglichkeit, eine auf der OS/2-Kommandozeile eingegebene 
  266. "Rechenaufgabe" zu l╨ñsen, in der in algebraischen Ausdr╨æcken und 
  267. Funktions-Argumenten nicht nur feste Zahlenwerte sondern auch eine Mischung aus 
  268. festen Zahlenwerten und maximal zwei verschiedenen Variablen  x  und  y, denen 
  269. nat╨ærlich jeweils ein Wert zugewiesen werden mu╤ü, vorkommen. Es k╨ñnnen aber 
  270. auch nur eine oder zwei verschiedene Variable verwendet werden. 
  271.  
  272. (Leider d╨ærfen nicht alle Buchstaben als Variablen-Namen verwendet werden; 
  273. x und y, u und v sowie p und q sind erlaubte Variablen-Namen.) 
  274.  
  275. Hierzu zwei Beispiele: 
  276.  
  277. 1.    Die Eingabe auf der OS/2-Kommandozeile 
  278.  
  279.                 kzr , 1 + x/y ; x = 1, y = 2 
  280.  
  281.       formuliert die Rechenaufgabe 
  282.  
  283.                 1 + x/y  . 
  284.  
  285.       Das Semikolon trennt diese Rechenaufgabe von den Zuweisungen 
  286.  
  287.                 x = 1  und  y = 2, 
  288.  
  289.       ab, die ihrerseits durch ein Komma voneinander getrennt werden m╨æssen. 
  290.  
  291.       Hat man nun durch Bet╨ötigung der Eingabetaste das Ergebnis 1.5 erhalten, 
  292.       so kann man, nachdem man die vorherige Eingabe 
  293.  
  294.                 kzr , 1 + x/y ; x = 1, y = 2 
  295.  
  296.       auf die OS/2-Kommandozeile zur╨æckgeholt hat, eine oder auch beide 
  297.       Variablen ╨öndern. 
  298.       Hierbei erleichtert es die Arbeit, da╤ü sowohl die Variablen als auch der 
  299.       Cursor am Ende der "zur╨æckgeholten Kommandozeilen-Eingabe" stehen und 
  300.       daher das Positionieren des Cursors zur ╨₧nderung der Wertes einer 
  301.       Variablen schnell geschehen ist. 
  302.  
  303.       Wird jetzt die Variable y = 4 gesetzt, so erh╨ölt man das neue Ergebnis 
  304.       1.25. 
  305.  
  306.       Nachdem man die so ge╨önderte Eingabe 
  307.  
  308.                 kzr , 1 + x/y ; x = 1, y = 4 
  309.  
  310.       auf die OS/2-Kommandozeile zur╨æckgeholt hat, kann man auch in diesem 
  311.       Beispiel das am Ende des Unter-Abschnittes "Rein numerische Anwendung" 
  312.       als Sonderfall beschriebene Verfahren mit der Variablen  z anwenden, um 
  313.       das Ergebnis  z = 1.25  in diese neue Rechenaufgabe einzubringen. 
  314.       Man ╨öndert in der "zur╨æckgeholten Kommandozeilen-Eingabe" 
  315.  
  316.                 kzr , 1 + x/y ; x = 1, y = 4 
  317.  
  318.       die Variable y in die Variable z und erh╨ölt mit der Eingabe 
  319.  
  320.                 kzr , 1 + x/z ; x = 1, y = 4 
  321.  
  322.       das Ergebnis 1.8, da  x = 1  und  z = 1.25  ist. 
  323.  
  324.       Die Zuweisung  y = 4  kann hier stehen bleiben; sie hat keine Wirkung 
  325.       mehr, weil die Variable y in der Rechenaufgabe 
  326.  
  327.                 kzr , 1 + x/z ; x = 1, y = 4 
  328.  
  329.       nicht mehr vorgekommt; man h╨ötte sie ebenso gut auch entfernen k╨ñnnen, 
  330.       ebenso auch das Komma im Anschlu╤ü an die Zuweisung  x = 1. 
  331.  
  332.  2.   Die etwas kompliziertere Eingabe auf der OS/2-Kommandozeile 
  333.  
  334.                 kzr 48, sin(1 + x/y) + sqrt(x+y) * pot(y,x) ; x = 1.3, y = 
  335.                 .29E-1 
  336.  
  337.       formuliert die Rechenaufgabe 
  338.  
  339.                 sin(1 + x/y) + sqrt(x+y) * pot(y,x), 
  340.  
  341.       die mit 48 Dezimalstellen gerechnet werden soll. 
  342.       Das Semikolon ; trennt diese Rechenaufgabe von den Zuweisungen 
  343.  
  344.                 x = 1.3 und y = .29E-1. 
  345.  
  346.  Bei der kleinen Version kzr0.CMD 
  347.  
  348.  ist die zuvor beschriebene Anwendung mit Variablen nicht m╨ñglich. 
  349.  
  350.  
  351. ΓòÉΓòÉΓòÉ 4. Mathematische Funktionen ΓòÉΓòÉΓòÉ
  352.  
  353. Die "Kernfunktion" kzr.CMD kann die folgenden "externen" mathematische 
  354. Funktionen verwenden, deren Argumente reelle Zahlen sein m╨æssen. 
  355.  
  356. Trigonometrische Funktionen und Hyperbelfunktionen 
  357.  
  358.     Sinusfunktion                                                 sin(x) 
  359.     Cosinusfunktion                                               cos(x) 
  360.     Tangensfunktion                                               tan(x) 
  361.     Cotangensfunktion                                             cot(x) 
  362.     Hyperbel-Sinusfunktion                                        sinh(x) 
  363.     Hyperbel-Cosinusfunktion                                      cosh(x) 
  364.     Hyperbel-Tangensfunktion                                      tanh(x) 
  365.     Hyperbel-Cotangensfunktion                                    coth(x) 
  366.  
  367.  Bei den folgenden vieldeutigen inversen trigonometrischen und hyperbolischen 
  368.  Funktionen, den Umkehrfunktionen der trigonometrische Funktionen und der 
  369.  Hyperbelfunktionen, wird stets der sogenannte Hauptwert berechnet. 
  370.  
  371.     Arcus-Sinusfunktion                                           arcsin(x) 
  372.     Arcus-Cosinusfunktion                                         arccos(x) 
  373.     Arcus-Tangensfunktion                                         arctan(x) 
  374.     Arcus-Cotangensfunktion                                       arccot(x) 
  375.     Area-Sinusfunktion                                            arsinh(x) 
  376.     Area-Cosinusfunktion                                          arcosh(x) 
  377.     Area-Tangensfunktion                                          artanh(x) 
  378.     Area-Cotangensfunktion                                        arcoth(x) 
  379.  
  380.  Weitere wichtige elementare und hoehere mathematische Funktionen 
  381.  
  382.     Exponentialfunktion                                           exp(x) 
  383.     Potenzfunktion                                                pot(x,y) 
  384.     Funktion 2. Wurzel                                            sqrt(x) 
  385.     Funktion 3. Wurzel                                            root3(x) 
  386.     Logarithmus zur Basis e                                       ln(x) 
  387.     Logarithmus zur Basis 10                                      log(x) 
  388.     Logarithmus zur Basis 2                                       ld(x) 
  389.     Fakult╨ötsfunktion                                             n!(u) 
  390.     Fakult╨ötsfunktion                                             n!!(u) 
  391.     Gammafunktion                                                 ga(x) 
  392.     Binomialkoeffizient                                           bin(u,v) 
  393.     Gau╤üsche Fehlerfunktion ╤ì(x)                                  phi(x) 
  394.     Fehlerfunktion p_(x) = (1 + ╤ì(x))/2                           p_(x) 
  395.     Fehlerfunktion q_(x) = (1 - ╤ì(x))/2                           q_(x) 
  396.     Errorfunktion                                                 erf(x) 
  397.     Komplement╨öre Errorfunktion                                   erfc(x) 
  398.     Modulofunktion                                                mod(u,v) 
  399.     Kleinster gemeinsamer Teiler                                  gcd(u,v) 
  400.  
  401.  Ist das Ergebnis einer Funktion mit einem reellen Argument eine komplexe oder 
  402.  rein imagin╨öre Zahl, wie zum Beispiel bei der Funktion sqrt(x) f╨ær Werte  x < 
  403.  0, so wird eine diesbez╨ægliche Meldung ausgegeben. 
  404.  
  405.  ╨¬ber die mit diesen mathematischen Funktionen erzielbare maximale numerische 
  406.  Genauigkeit siehe den Abschnitt ==> Numerische Genauigkeit 
  407.  
  408.           Literatur 
  409.  
  410.  [1]      I. S. GRADSHTEYN and I. M. RYZHIK 
  411.           Γûê Table of Integrals, Series and Products Γûê 
  412.           ACADEMIC PRESS New York and London 1965 
  413.  
  414.  [2]      Milton Abramowitz & Irene A. Stegun 
  415.           Γûê Handbook of Mathematical Functions Γûê 
  416.           DOVER PUBLICATIONS, INC., NEW YORK 1965 
  417.  
  418.  [3]      Milton Abramowitz & Irene A. Stegun 
  419.           Γûê Handbook oh Mathematical Functions Γûê 
  420.           DOVER PUBLICATIONS, INC., NEW YORK 1970 
  421.  
  422.  [4]      JEROME SPANIER and KEITH B. OLDHAM 
  423.           Γûê AN ATLAS OF FUNCTIONS Γûê 
  424.           HEMISPHERE PUBLISHING CORPORATION, Washington New York London 1987; 
  425.           ebenfalls: Springer-Verlag Berlin 
  426.  
  427.  [5]      I. N. BRONSTEIN und K. A. SEMENDJAJEW 
  428.           Γûê TASCHENBUCH DER MATHEMATIK Γûê 
  429.           Verlag Harri Deutsch, Thun und Frankfurt, 19. Auflage 1980 
  430.  
  431.  [6]      P. H. M╨æller 
  432.           Γûê Lexikon der Stochastik Γûê 
  433.           Akademie-Verlag GmbH, Berlin 1991, 5. Auflage 
  434.  
  435.  [7]      Robert Sedgewick 
  436.           Γûê Algorithmen in C Γûê 
  437.           Addison-Wesley (Deutschland) GmbH, 1. Auflage 1992 
  438.  
  439.  
  440. ΓòÉΓòÉΓòÉ 5. Mathematische Konstanten ΓòÉΓòÉΓòÉ
  441.  
  442. Die "Kernfunktion" kzr.CMD kann die folgenden elementaren mathematischen 
  443. Konstanten verwenden: 
  444.  
  445.     ╤â [1]                                                           pi() 
  446.  
  447.     e                                                               e() 
  448.  
  449.  Literatur oder sonstige Quellen 
  450.  
  451.  [1]  John Brock 
  452.       Γûê RXXMATH v1.3 -- Arbitrary Precision Math Functions for REXX 1996 Γûê 
  453.       Bei verschiedenen Internet-Adressen 
  454.  
  455.  
  456. ΓòÉΓòÉΓòÉ 6. Numerische Genauigkeit ΓòÉΓòÉΓòÉ
  457.  
  458. Ohne Verwendung der "externen" mathematischen Funktionen ist die 
  459. Rechengenauigkeit der "Kernfunktion"  kzr.CMD fast beliebig hoch. 
  460. Dabei ist aber zu beachten, da╤ü die Rechenzeit mit steigender Anzahl  ND  der 
  461. f╨ær den Rechenvorgang verwendeten Dezimalstellen ╨æberproportional zunimmt. 
  462. Man sollte daher sorgf╨öltig absch╨ötzen, wieviele Dezimalstellen f╨ær eine 
  463. bestimmte Aufgabe erforderlich sind. 
  464.  
  465. Im Gegensatz dazu k╨ñnnen einige der f╨ær  kzr.CMD  verf╨ægbaren mathematischen 
  466. Funktionen (==> Mathematische Funktionen) nur mit einer begrenzten numerischen 
  467. Genauigkeit berechnet werden. 
  468.  
  469. Wichtig: 
  470.  
  471.       Bei Verwendung der "externen" mathematischen Funktionen wird bei 
  472.       ╨¬berschreitung der Rechengenauigkeit durch ein akustisches Signal und 
  473.       eine zus╨ötzliche Anzeige darauf aufmerksam gemacht. Au╤üerdem wird die von 
  474.       der Eingabe-Kette (Definition folgt.) verlangte Gesamt-Rechengenauigkeit, 
  475.       wenn sie h╨ñher als die der aufgerufenen mathematischen Funktionen ist, 
  476.       (mit Hilfe der von kzr.CMD intern aufgerufenen MinNDA.CMD) reduziert und 
  477.       von derjenigen der aufgerufenen mathematischen Funktionen bestimmt, 
  478.       welche die geringste maximale Rechengenauigkeit liefern kann. 
  479.  
  480.       Ein Beispiel: 
  481.  
  482.       Die Eingabe-Kette sei 
  483.                                 kzr 56, 1/3 + phi(0.3) 
  484.  
  485.       Der Bruch  1/3  k╨ñnnte mit der geforderten Gesamt-Rechengenauigkeit von 
  486.       56 Dezimalstellen berechnet und ausgegeben werden. 
  487.       Die Funktion phi(x) aber kann mit nur maximal 50 Dezimalstellen berechnet 
  488.       werden. 
  489.       Die Gesamt-Rechengenauigkeit der in dieser Eingabe-Kette aufgerufenen 
  490.       mathematischen Funktionen entspricht also maximal 50 Dezimalstellen. 
  491.       Daher wird auch das Ergebnis mit maximal 50 Dezimalstellen ausgegeben. 
  492.       Es wird somit keine h╨ñhere Gesamt-Rechengenauigkeit vorget╨öuscht als 
  493.       tats╨öchlich vorhanden war. 
  494.  
  495.  Bitte folgendes beachten: 
  496.  
  497.      Die  Schwierigkeit, bei einer Differenz zweier nahezu gleich gro╤üer Zahlen 
  498.      ein gen╨ægend genaues Ergebnis zu erreichen, ist kein spezielles Problem 
  499.      von  kzr.CMD,  sondern ein allgemeines Problem der numerischen Mathematik. 
  500.  
  501.      Ein Beispiel f╨ær die Schwierigkeit, bei einer Differenz zweier nahezu 
  502.      gleich gro╤üer Zahlen ein gen╨ægend genaues Ergebnis zu erreichen, findet 
  503.      man im Abschnitt "Bekannte Fehlerm╨ñglichkeiten" 
  504.  
  505.  
  506. ΓòÉΓòÉΓòÉ 7. Bekannte Fehlerm╨ñglichkeiten ΓòÉΓòÉΓòÉ
  507.  
  508. 1.   Wenn man aus irgendwelchen Gr╨ænden eine laufende Rechenprozedur abbricht, 
  509.      zum Beispiel mit der Tastenkombination  Strg+c,  wird die Datei 
  510.      NDZahl.DAT  nicht gel╨ñscht, was bei einem normalen Ablauf von kzr.CMD 
  511.      immer geschieht. 
  512.      Die Datei  NDZahl.DAT  mu╤ü dann von Hand gel╨ñscht werden, denn es k╨ñnnte 
  513.      sein, da╤ü man (versehentlich ?) eine zu gro╤üe Zahl ND f╨ær die Anzahl der 
  514.      zu verwendenden Dezimalstellen eingegeben hatte, was die Geduld des 
  515.      Anwenders so ╨æberforderte, da╤ü er den Rechenvorgang abgebrochen hatte. Ist 
  516.      die Datei  NDZahl.DAT  nicht gel╨ñscht, so hat sie diese zu gro╤üe Zahl ND 
  517.      gespeichert und ╨æbergibt sie bei dem erneuten Rechenvorgang der dabei 
  518.      aufgerufenen Funktion, was den erneuten Rechenvorgang wieder mit einer zu 
  519.      hohen Zahl ND f╨ær die zu verwendenden Dezimalstellen belastet. 
  520.  
  521.      Zur Fehlerdiagnose hilft eine einfache Eingabe, 
  522.      zum Beispiel: 
  523.                               kzr , 1+1 
  524.  
  525.      Diese einfache Rechenprozedur wird dann, ohne da╤ü man eine bestimmte Zahl 
  526.      ND f╨ær die Anzahl der zu verwendenden Dezimalstellen eingegeben hat, mit 
  527.      der vorher (versehentlich ?) eingegebenen Zahl ND durchgef╨æhrt, was aber 
  528.      ohne Zwischenfall geschieht. Da kzr.CMD in der Zeile oberhalb des 
  529.      numerischen Ergebnisses  2  die verwendete Zahl ND anzeigt, kann man 
  530.      erkennen, ob dort bei dieser Berechnung  1+1  eine unvern╨ænftig gro╤üe Zahl 
  531.      ND verwendet worden ist. (Diese Zahl ND ist dann in der Datei  NDZahl.DAT 
  532.      gespeichert.) Ist dies der Fall, so mu╤ü man die Datei  NDZahl.DAT 
  533.      l╨ñschen, womit der Fehler beseitigt ist. 
  534.  
  535.  2.  Γûê Bei Rechenaufgaben, in denen eine Differenz Γûê 
  536.      Γûê zweier nahezu gleich gro╤üer Zahlen auftritt, ΓûêΓûê 
  537.      Γûê ist besondere Vorsicht geboten ! ΓûêΓûêΓûêΓûêΓûêΓûêΓûêΓûêΓûêΓûêΓûê 
  538.  
  539.      Beispiel: 
  540.  
  541.      Die bekannte Funktional-Beziehung 
  542.  
  543.                                             cosh┬ñ(x) - sinh┬ñ(x) = 1 
  544.  
  545.      kann, wenn man sie zum Beispiel als die aktuelle Rechenaufgabe mit der 
  546.      Eingabe-Kette 
  547.  
  548.                     kzr 48, cosh(x)**2 - sinh(x)**2;  x=3 
  549.  
  550.      auf der OS/2-Kommandozeile startet, je nach Gr╨ñ╤üe der Variablen  x 
  551.      ungenaue, also von der ganzen Zahl  1 mehr oder weniger abweichende 
  552.      Ergebnisse liefern. 
  553.  
  554.      Dies liegt daran, da╤ü die Funktionswerte 
  555.  
  556.             cosh(x) = (exp(+x) + exp(-x))/2 
  557.      und 
  558.             sinh(x) = (exp(+x) - exp(-x))/2 
  559.  
  560.      sich umso weniger von einander unterscheiden, je gr╨ñ╤üer die Variable  x 
  561.      ist. 
  562.  
  563.      Man kann durch Erh╨ñhen der Zahl  ND, welche als die erste ganze Zahl 
  564.      unmittelbar nach dem String  kzr  folgt und die Zahl der f╨ær die 
  565.      Berechnung zu verwendenden Dezimalstellen festlegt, vergr╨ñ╤üern und so die 
  566.      numerische Genauigkeit erh╨ñhen. 
  567.      Da aber die Zahl  ND  der zu verwendenden Dezimalstellen sich nicht 
  568.      beliebig vergr╨ñ╤üern l╨ö╤üt und ╨æberdies die Rechenzeit ╨æberprortional zur 
  569.      Vergr╨ñ╤üerung von  ND  ansteigen w╨ærde, ist die hier als Beispiel gew╨öhlte 
  570.      Funktional-Beziehung nicht geeignet, zum Beispiel die Richtigkeit der 
  571.      numerischen Ergebnisse der Funktionen cosh(x)  und  sinh(x)  zu 
  572.      ╨æberpr╨æfen. 
  573.      (Ein zuf╨öllig richtiges Ergebnis, n╨ömlich die ganze Zahl  1  bei einer 
  574.      solchen Pr╨æfung, w╨öre notwendig aber nicht hinreichend.) 
  575.  
  576.  
  577. ΓòÉΓòÉΓòÉ 8. d2x, x2d, b2d, d2b, b2x, x2b ΓòÉΓòÉΓòÉ
  578.  
  579. Umwandlungen von Zahlen 
  580. zwischen den Darstellungsformen 
  581. Dezimal, Hexadezimal und Bin╨ör
  582.  
  583. Die Funktionen D2X.CMD, X2D.CMD, D2B.CMD, B2D.CMD, B2X.CMD u d X2B.CMD estatten 
  584. im direkten Aufruf von der OS/2-Kommandozeile die Umwandlung 
  585.  
  586.      von Dezimalzahlen in Hexadezimalzahlen (D2X.CMD), 
  587.      von Hexadezimalzahlen in Dezimalzahlen (X2D.CMD), 
  588.  
  589.      von Dezimalzahlen in Bin╨örzahlen (D2B.CMD), 
  590.      von Bin╨örzahlen in Dezimalzahlen (B2D.CMD), 
  591.  
  592.      von Bin╨örzahlen in Hexadezimalzahlen (B2X.CMD) und 
  593.      von Hexadezimalzahlen in Bin╨örzahlen (X2B.CMD). 
  594.  
  595.  Alle sechs Funktionen sind sowohl auf Dezimalbr╨æche als auch auf deren 
  596.  Spezialf╨ölle "ganzzahliger Anteil" und Mantisse separat anwendbar. 
  597.  
  598.  1. Die Funktionen 
  599.  D2X.CMD, X2D.CMD, D2B.CMD und B2D.CMD.
  600.  
  601.  F╨ær die Umwandlung ganzer Zahlen sind die Funktionen D2X.CMD, X2D.CMD, D2B.CMD 
  602.  und B2D.CMD exakt, da sie aufgrund einer diesbez╨æglichen, von der auf der 
  603.  OS/2-Kommandozeile eingegebenen und umzuwandelnden Zahl abgeleiteten Anweisung 
  604.  in den externen Prozeduren gen╨ægend Stellen f╨ær arithmetische Operationen zur 
  605.  Verf╨ægung haben. 
  606.  
  607.  Hierzu ein Beispiel: 
  608.  
  609.      Die Eingabe der Dezimalzahl 
  610.                                                         16696875 
  611.      mit der Eingabe-Kette 
  612.                                                         D2X 16696875 
  613.      erzeugt den String 
  614.                                                         FEC62B 
  615.      als die entsprechende Hexadezimalzahl. 
  616.  
  617.  
  618.  Die R╨æck-Umwandlung ist ebenso einfach: 
  619.  
  620.      Die Eingabe der Hexadezimalzahl 
  621.                                                         FEC62B 
  622.      mit der Eingabe-Kette 
  623.                                                         X2D FEC62B 
  624.      erzeugt den String 
  625.                                                         16696875 
  626.      als die entsprechende Dezimalzahl. 
  627.  
  628.  
  629.  Dagegen sind Umwandlungen von Dezimalbr╨æchen nur in Ausnahmef╨öllen exakt. 
  630.  Der ganzzahlige Anteil eines Dezimalbruchs wird jeweils exakt umgewandelt; 
  631.  f╨ær die Mantisse ist im allgemeinen Fall nur eine N╨öherung erzielbar, die aber 
  632.  umso genauer ist, je mehr Stellen f╨ær die dazu erforderlichen arithmetischen 
  633.  Operationen verf╨ægbar sind. 
  634.  
  635.  Die Stellengenauigkeit f╨ær die arithmetischen Operationen f╨ær die Umwandlung 
  636.  von Mantissen kann ╨æber die OS/2-Kommandozeile eingestellt werden. 
  637.  
  638.  Beispiel 1: 
  639.  
  640.      Die Eingabe der Dezimalzahl 
  641.                                                         166.96875 
  642.      mit der Eingabe-Kette 
  643.                                                         D2X 56, 166.96875 
  644.      erzeugt den String 
  645.                                                         A6.F8 
  646.      als die entsprechende Hexadezimalzahl. 
  647.  
  648.      Bei den Funktionen  D2X.CMD  und  X2D.CMD  bedeutet die positive ganze 
  649.      Zahl 56 zwischen den Teilstrings  D2X  oder  X2D  der Eingabe-Kette 
  650.      einerseits und dem f╨ær die Umwandlung von Dezimalbr╨æchen in jedem Fall 
  651.      verbindlichen Komma andererseits, da╤ü f╨ær die Umwandlung der Mantisse 
  652.      intern bis zu 56 Stellen f╨ær die zur Umwandlung ben╨ñtigten arithmetischen 
  653.      Operationen aufgewender werden k╨ñnnen. 
  654.  
  655.      In diesem Fall ist zu erkennen, da╤ü f╨ær die Umwandlung der dezimalen 
  656.      Mantisse  .96875   in die hexadezimale Mantisse  .F8  nur sehr wenige 
  657.      Stellen erforderlich waren; die Umrechnung gelang offenbar exakt. Dies 
  658.      kann nat╨ærlich nachgepr╨æft werden. 
  659.  
  660.      Die Eingabe der Hexadezimalzahl 
  661.                                                         A6.F8 
  662.      mit der Eingabe-Kette 
  663.                                                         X2D 56, A6.F8 
  664.      erzeugt den String 
  665.                                                         166.96875 
  666.      als die entsprechende Dezimalzahl. 
  667.  
  668.      Da auch hier keine 56 Dezimalstellen ausgegeben wurden, ist es in hohem 
  669.      Ma╤üe wahrscheinlich, da╤ü die Umrechnung in beiden F╨öllen exakt geschehen 
  670.      konnte. 
  671.  
  672.  
  673.  Ganz anders ist das Ergebnis einer solchen Umrechnung in den sehr h╨öufig 
  674.  auftretenden F╨öllen, in denen nur eine N╨öherung erreicht werden kann. Hierzu 
  675.  das folgende; 
  676.  
  677.  Beispiel 2: 
  678.  
  679.      Die Eingabe der Dezimalzahl 
  680.                                                         15.23 
  681.      mit der Eingabe-Kette 
  682.                                               D2X 32, 15.23 
  683.      erzeugt den String 
  684.                                               F.3AE147AE147AE147AE147AE147AE147 
  685.  
  686.      als die entsprechende Hexadezimalzahl. 
  687.  
  688.      Zerlegt man in Gedanken den String f╨ær diese Hexadezimalzahl in de 
  689.      folgenden Weise 
  690.  
  691.                                               F.3 AE147 AE147 AE147 AE147 AE147 
  692.                                               AE147, 
  693.  
  694.      so erkennt man an der 6-fachen periodischen Aneinanderreihung des 
  695.      Teilstrings  AE147, da╤ü die Hexadezimale Darstellung der Dezimalzahl 
  696.      15.23  nur eine N╨öherung sein kann. 
  697.  
  698.      Die Eingabe der Hexadezimalzahl 
  699.                                               F.3AE147AE147AE147AE147AE147AE147 
  700.      mit der Eingabe-Kette 
  701.                                               X2D 32, 
  702.                                               F.3AE147AE147AE147AE147AE147AE147 
  703.      erzeugt den String 
  704.                                               15.23 
  705.      als die entsprechende Dezimalzahl. 
  706.  
  707.  Noch augenscheinlicher ist das folgende 
  708.  
  709.  Beispiel 3: 
  710.  
  711.      Die Eingabe der Dezimalzahl 
  712.                                               12.4 
  713.      mit der Eingabe-Kette 
  714.                                               D2X 32, 12.4 
  715.      erzeugt den String 
  716.                                               C.6666666666666666666666666666666 
  717.  
  718.      als die entsprechende Hexadezimalzahl. 
  719.  
  720.      Man erkennt man an der periodischen Aneinanderreihung der Ziffer 6, da╤ü 
  721.      die Hexadezimale Darstellung der Dezimalzahl  12.4  nur eine N╨öherung sein 
  722.      kann. 
  723.  
  724.      Die Eingabe der Hexadezimalzahl 
  725.                                               C.6666666666666666666666666666666 
  726.      mit der Eingabe-Kette 
  727.                                               X2D 32, 
  728.                                               C.6666666666666666666666666666666 
  729.      erzeugt den String 
  730.                                               12.4 
  731.      als die entsprechende Dezimalzahl. 
  732.  
  733.  Es ist das Ergebnis einer Formatierungsanweisung innerhalb von  X2D.CMD, da╤ü 
  734.  als R╨æck- Umwandlungs-Ergebnis die Dezimalzahl  12.4  wieder exakt 
  735.  herausgekommen ist. 
  736.  Voraussetzung daf╨ær ist allerdings, da╤ü bei der R╨æck-Umwandlung  Hexadezimal 
  737.  --> Dezimal  mit  X2D.CMD  nicht mehr Stellen f╨ær die arithmetischen 
  738.  Operationen in der Kommandozeilen-Eingabe-Kette vorgegeben werden, als es bei 
  739.  der Umwandlung Dezimal --> Hexadezimal  mit  X2D.CMD  der Fall war, n╨ömlich 32 
  740.  Stellen. 
  741.  W╨ærde man f╨ær die R╨æck-Umwandlung Hexadezimal --> Dezimal weniger als 32 
  742.  Stellen in der Eingabe-Kette vorgeben, so bleibt das Ergebnis  12.4. 
  743.  W╨ærde man allerdings f╨ær die R╨æck-Umwandlung Hexadezimal --> Dezimal mehr als 
  744.  32 -- beispielsweise 38 -- Stellen in der Eingabe-Kette vorgeben, so bleibt 
  745.  das Ergebnis 
  746.  
  747.                                               12.39999999999999999999999999999999999998 
  748.  eine N╨öherung. 
  749.  
  750.  Bei der Umwandlung  Hexadezimal --> Dezimal  mit  X2D.CMD  und der 
  751.  anschlie╤üenden R╨æck-Umwandlung  Dezimal --> Hexadezimal  mit  D2X.CMD  mu╤ü ein 
  752.  wenig anders verfahren werden. Hierzu das folgende 
  753.  
  754.  Beispiel 4: 
  755.  
  756.      Die Eingabe der Hexadezimalzahl 
  757.                                               F1.DD6345F 
  758.      mit der Eingabe-Kette 
  759.                                               X2D 24, F1.DD6345F 
  760.      erzeugt den String 
  761.                                               241.864796038717031478881836 
  762.      als die entsprechende Dezimalzahl. 
  763.  
  764.      Die Eingabe der Dezimalzahl 
  765.                                               241.864796038717031478881836 
  766.      mit der Eingabe-Kette 
  767.                                               D2X 24, 
  768.                                               241.864796038717031478881836 
  769.      erzeugt den String 
  770.                                               F1.DD6345F0000000000000135 
  771.  
  772.      als die entsprechende Hexadezimalzahl, die, wie man sieht, nat╨ærlich nur 
  773.      eine N╨öherung ist. 
  774.  
  775.      W╨ærde man wie im vorhergehende Fall vorgehen, da╤ü man n╨ömlich bei der 
  776.      R╨æck-Umwandlung  Dezimal --> Hexadezimal  mit  D2X.CMD  die Zahl der 
  777.      Stellen f╨ær die arithmetischen Operationen erh╨ñht, also zum Beispiel von 
  778.      24 auf 30, so ist das Ergebnis 
  779.                                               F1.DD6345F00000000000001357C29 
  780.      auch nicht genauer. 
  781.  
  782.      Es liegt also die Vermutung nahe, da╤ü schon das Ergebnis 
  783.  
  784.                                               241.864796038717031478881836 
  785.  
  786.      der Umwandlung  Hexadezimal --> Dezimal eine N╨öherung gewesen ist. 
  787.  
  788.      Es ist jetzt zweckm╨ö╤üig, die Zahl der Stellen f╨ær die arithmetischen 
  789.      Operationen bei der Umwandlung Hexadezimal --> Dezimal  nach und nach zu 
  790.      erh╨ñhen, und zwar so weit, bis die Mantisse der Ergebnis-Dezimalzahl nicht 
  791.      mehr an Stellen zunimmt. Dies ist bei  diesem Beispiel  einer 
  792.      Umwandlungsaufgabe ab der Zahl 29 der Fall. 
  793.  
  794.      Die Eingabe der Hexadezimalzahl 
  795.                                               F1.DD6345F 
  796.      mit der Eingabe-Kette 
  797.                                               X2D 29, F1.DD6345F 
  798.      erzeugt den String 
  799.                                               241.8647960387170314788818359375 
  800.      als die entsprechende Dezimalzahl. 
  801.  
  802.      Die Eingabe der Dezimalzahl 
  803.                                               241.8647960387170314788818359375 
  804.      mit der Eingabe-Kette 
  805.                                               D2X 29, 
  806.                                               241.8647960387170314788818359375 
  807.      erzeugt den String 
  808.                                               F1.DD6345F 
  809.  
  810.      als die entsprechende Hexadezimalzahl. 
  811.  
  812.      Wer nur eine Mantisse umwandeln will, darf den (Dezimal)punkt nicht 
  813.      vergessen. 
  814.      Auch dazu ein Beispiel: 
  815.  
  816.      Die Eingabe der Dezimalzahl 
  817.                                               .0765625 
  818.      mit der Eingabe-Kette 
  819.                                               D2X 24, .9765625 
  820.      erzeugt den String 
  821.                                               .FA 
  822.      als die entsprechende Mantisse in hexadezimaler Darstellung. 
  823.  
  824.      Die Eingabe der Hexadezimalzahl 
  825.                                               .1A3 
  826.      mit der Eingabe-Kette 
  827.                                               D2X 24, .1A3 
  828.      erzeugt den String 
  829.                                               .102294921873 
  830.      als die entsprechende Mantisse in dezimaler Darstellung. 
  831.  
  832.      2. Die Funktionen 
  833.      B2X.CMD und X2B.CMD.
  834.  
  835.  Im Gegensatz zu den Funktionen D2X.CMD, X2D.CMD, D2B.CMD und B2D.CMD, die f╨ær 
  836.  die Mantisse im allgemeinen Fall eine N╨öherungsdarstellung und nur in 
  837.  Spezialf╨öllen eine exakte Darstellung liefern, sind die Umwandlungen von 
  838.  
  839.           von Bin╨örzahlen in Hexadezimalzahlen (B2X.CMD) 
  840.  und 
  841.  
  842.           von Hexadezimalzahlen in Bin╨örzahlen (X2B.CMD) 
  843.  
  844.  stets exakt, und eine M╨ñglichkeit oder gar eine Notwendigkeit, die Anzahl der 
  845.  f╨ær die arithmetischen Operationen intern zu verwendenden Stellen vorzugeben, 
  846.  gibt es bei den Funktionen B2X.CMD und X2B.CMD nicht. 
  847.  
  848.  Hier zwei Beispiele dazu: 
  849.  
  850.      Die Eingabe der Hexadezimalzahl 
  851.                                               CA.B5 
  852.      mit der Eingabe-Kette 
  853.                                               X2B CA.B5 
  854.      erzeugt den String 
  855.                                               11001010.10110101 
  856.  
  857.      als die entsprechende bin╨öre Darstellung. 
  858.  
  859.      Die Eingabe der Bin╨örzahl 
  860.                                               10100101.10011011 
  861.      mit der Eingabe-Kette 
  862.                                               B2X 10100101.10011011 
  863.      erzeugt den String 
  864.                                               A5.9B 
  865.  
  866.      als die entsprechende hexadezimale Darstellung. 
  867.  
  868.  
  869. ΓòÉΓòÉΓòÉ 9. Primfaktoren ΓòÉΓòÉΓòÉ
  870.  
  871. Zerlegung einer positiven ganzen Zahl 
  872. in ihre Primfaktoren 
  873.  
  874. Die Funktion prim.CMD kann, ohne die "Kernfunktion" kzr.CMD verwenden zu 
  875. m╨æssen, direkt von der Kommandozeile mit der Eingabe 
  876.                         prim x 
  877.  
  878.  aufgerufen werden, wobei x eine positive ganze Zahl sein mu╤ü. 
  879.  
  880.  Obgleich eine interpretierende Programmiersprache wie REXX f╨ær die Zerlegung 
  881.  einer Zahl in ihre Primfaktoren nicht die ideale Programmiersprache ist, kann 
  882.  prim.CMD diese Aufgabe in vielen F╨öllen bew╨öltigen. Auch ist der 
  883.  Primitiv-Algorithmus, der in dem Versuch besteht, die zu zerlegende ganze Zahl 
  884.  x nacheinander durch die Zahlen 2,3,4,5 ...... bis sqrt(x) zu dividieren, 
  885.  sicher nicht der wirksamste Algorithmus zur Zerlegung einer ganzen positiven 
  886.  Zahl in m╨ñgliche Primfaktoren. 
  887.  Eine der Schwierigkeiten, die bei dem hier verwendeten Algorithmus auftreten, 
  888.  besteht darin, da╤ü bei Primfaktoren, die wesentlich gr╨ñ╤üer als 1.2E+12 sind, 
  889.  die Rechenzeiten unkontrollierbar lang werden. prim.CMD kann auf einem Rechner 
  890.  mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend 
  891.  Hauptspeicher 
  892.  die Zahl 
  893.  
  894.                         1 200 000 000 053 
  895.  
  896.  als eine Primzahl innerhalb von 59 Sekunden erkennen. 
  897.  
  898.  Hinweis f╨ær die Rechenpraxis:
  899.  
  900.  Wenn nach etwa 3 Minuten ein Rechenvorgang noch nicht beendet ist, kann die 
  901.  geforderte Zerlegung von prim.CMD mit hoher Wahrscheinlichkeit nicht geleistet 
  902.  werden. In einem solchen Falle sollte der Rechenvorgang mit der 
  903.  Tastenkombination  Strg+c  abgebrochen werden. 
  904.  
  905.  prim.CMD erlaubt die Eingabe von Zahlen mit Gliederungsabst╨önden, zum Beispiel 
  906.  zwischen jeweils 3 Ziffern, um die ╨¬bersichtlichkeit zu erh╨ñhen und so die 
  907.  Wahrscheinlichkeit von Eingabefehlern zu reduzieren. (Beispielsweise wird die 
  908.  Ziffernfolge 1 200 000 000 053 intern durch Entfernen der Zwischenr╨öume in die 
  909.  Ziffernfolge 1200000000053 umgeformt.) 
  910.  
  911.  Die Eingabe-Kette 
  912.                         prim 1 200 000 000 053 
  913.  
  914.  zum Beispiel erzeugt die folgende Ausgabe: 
  915.  
  916.      Γûæ                                             ┬áΓûæ 
  917.      Γûæ   Γûæ  Die Zahl, die in Primfaktoren zerlegt werden soll, Γûæ 
  918.             Γûô 
  919.      ΓûÆ   Γûæ ist: ΓûÆ                                        Γûô 
  920.      Γûæ      Γûæ 1200000000053 Γûæ                             Γûæ 
  921.      ΓûÆ                                              Γûô 
  922.      Γûæ                  Γûæ Primfaktor   Exponent Γûæ              Γûæ 
  923.      ΓûÆ                                              Γûô 
  924.      Γûæ               Γûæ 1200000000053       1 Γûæ              Γûæ 
  925.      Γûæ                                              Γûæ 
  926.      Γûæ  ΓûÆ Die eingegebene Zahl Γûæ                               Γûæ 
  927.      Γûæ               Γûæ 1200000000053, ΓûÆ                    Γûæ 
  928.      Γûæ                                              Γûæ 
  929.      Γûæ  ΓûÆ die in ihre Primfaktoren zerlegt werden soll, ist selbst eine 
  930.      Primzahl. Γûæ     Γûæ 
  931.      Γûæ                                              Γûæ 
  932.  
  933.  Beispiele f╨ær erfolgreiche Zerlegungen:
  934.  
  935.  Die Eingabe-Kette 
  936.  
  937.                          Prim 39 442 372 387 147 114 006 181 929 906 022 200 
  938.  
  939.  erzeugt die folgende Ausgabe: 
  940.  
  941.      Γûæ                                              ┬áΓûæ 
  942.      Γûæ  ┬áΓûæ Die Zahl, die in Primfaktoren zerlegt werden soll, ΓûÆ 
  943.      ΓûÆ 
  944.      ΓûÆ  Γûæ ist: ΓûÆ                                         Γûæ 
  945.      Γûô      Γûæ 39442372387147114006181929906022200 Γûæ                Γûæ 
  946.      Γûæ                                               Γûæ 
  947.      Γûæ                 Γûæ Primfaktor   Exponent ΓûÆ                Γûæ 
  948.      Γûæ                                               Γûæ 
  949.      Γûæ                     Γûæ 2       3 Γûæ                 Γûæ 
  950.      Γûæ                     Γûæ 5       2 Γûæ                 Γûæ 
  951.      Γûæ                    Γûæ 11       1 Γûæ                 Γûæ 
  952.      Γûæ                    Γûæ 13       2 Γûæ                 Γûæ 
  953.      Γûæ                    Γûæ 17       3 Γûæ                 Γûæ 
  954.      Γûæ                    Γûæ 23       3 Γûæ                 Γûæ 
  955.      Γûæ                    ΓûÆ 29       1 Γûæ                 Γûæ 
  956.      Γûæ                   Γûæ 4871       3 Γûæ                 Γûæ 
  957.      Γûæ                  Γûæ 23011       2 Γûæ                 Γûæ 
  958.      Γûæ                                               Γûæ 
  959.      Γûæ  ΓûÆ Der Wert des Produktes, Γûæ                              Γûæ 
  960.      ΓûÆ  Γûæ dessen Faktoren die einzelnen Potenzen "Primfaktor hoch Exponent" 
  961.      sind, Γûæ   Γûæ 
  962.      ΓûÆ  Γûæ ist: Γûæ                                         Γûæ 
  963.      Γûæ     Γûæ 39442372387147114006181929906022200 Γûæ                Γûæ 
  964.      Γûæ                                              Γûæ 
  965.  
  966.  In dieser Darstellung ist zun╨öchst die um etwaige Leerstellen reduzierte 
  967.  eingegebene ganze Zahl zu sehen, die in ihre Primfaktoren zerlegt werden soll. 
  968.  Wird keine ganze Zahl eingegeben, erscheint eine diesbez╨ægliche Fehlermeldung. 
  969.  Darunter wird der Betrag jedes Primfaktors und seines Exponenten angegeben. 
  970.  Der Exponent besagt, wie oft dieser Primfaktor in dieser Zahl vorhanden ist. 
  971.  Zur Kontrolle werden alle ermittelten Primfaktoren mit einander multipliziert, 
  972.  um eine Kontrolle zu haben, ob auch alle Primfaktoren ermittelt worden sind 
  973.  (Produkt, dessen Faktoren die einzelnen Potenzen "Primfaktor hoch Exponent" 
  974.  sind). 
  975.  
  976.  Ein Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend 
  977.  Hauptspeicher f╨æhrt die hier dargestellte Berechnung in 2 Sekunden aus. 
  978.  
  979.  Die Eingabe-Kette 
  980.                         Prim 1 969 911 333 706 466 162 042 672 657 103 
  981.  
  982.  als n╨öchstes Beispiel erzeugt die folgende Ausgabe: 
  983.  
  984.      Γûæ                                              ┬áΓûæ 
  985.      Γûæ  ┬áΓûæ Die Zahl, die in Primfaktoren zerlegt werden soll, ΓûÆ 
  986.      ΓûÆ 
  987.      ΓûÆ  Γûæ ist: ΓûÆ                                         Γûæ 
  988.      Γûô      Γûæ 1969911333706466162042672657103 Γûæ                   Γûæ 
  989.      Γûæ                                               Γûæ 
  990.      Γûæ                 Γûæ Primfaktor   Exponent ΓûÆ                Γûæ 
  991.      Γûæ                                               Γûæ 
  992.      Γûæ                     Γûæ 3       3 Γûæ                Γûæ 
  993.      Γûæ                     Γûæ 11       2 Γûæ                Γûæ 
  994.      Γûæ                   Γûæ 1459       1 Γûæ                 Γûæ 
  995.      Γûæ                   Γûæ 4261       1 Γûæ                 Γûæ 
  996.      Γûæ                   Γûæ 4871       2 Γûæ                 Γûæ 
  997.      Γûæ                  Γûæ 448631       1 Γûæ                 Γûæ 
  998.      Γûæ                 ΓûÆ 9111821       1 Γûæ                 Γûæ 
  999.      Γûæ                                               Γûæ 
  1000.      Γûæ  ΓûÆ Der Wert des Produktes, Γûæ                              Γûæ 
  1001.      ΓûÆ  Γûæ dessen Faktoren die einzelnen Potenzen "Primfaktor hoch Exponent" 
  1002.      sind, Γûæ    Γûæ 
  1003.      ΓûÆ  Γûæ ist: Γûæ                                         Γûæ 
  1004.      Γûæ     Γûæ 1969911333706466162042672657103 Γûæ                   Γûæ 
  1005.      Γûæ                                               Γûæ 
  1006.  
  1007.  Ein Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend 
  1008.  Hauptspeicher f╨æhrt die hier dargestellte Berechnung in 26 Sekunden aus. 
  1009.  
  1010.  Die Eingabe-Kette      Prim 18 363 498 557 203 867 896 295 861 193      451 
  1011.                         655 574 494 195 634 077 086 553 
  1012.  
  1013.  als n╨öchstes Beispiel erzeugt die folgende Ausgabe: 
  1014.  
  1015.      Γûæ                                              ┬áΓûæ 
  1016.      Γûæ  ┬áΓûæ Die Zahl, die in Primfaktoren zerlegt werden soll, ΓûÆ 
  1017.      ΓûÆ 
  1018.      ΓûÆ  Γûæ ist: ΓûÆ                                         Γûæ 
  1019.      Γûô      Γûæ 18363498557203867896295861193451655574494195634077086553 Γûæ  Γûæ 
  1020.      Γûæ                                               Γûæ 
  1021.      Γûæ                 Γûæ Primfaktor   Exponent ΓûÆ                Γûæ 
  1022.      Γûæ                                               Γûæ 
  1023.      Γûæ                     Γûæ 7       9 Γûæ                 Γûæ 
  1024.      Γûæ                     Γûæ 13       6 Γûæ                Γûæ 
  1025.      Γûæ                    Γûæ 113      4 Γûæ                 Γûæ 
  1026.      Γûæ                    Γûæ 1471      3 Γûæ                 Γûæ 
  1027.      Γûæ                    Γûæ 3491      1 Γûæ                 Γûæ 
  1028.      Γûæ                    Γûæ 5501      2 Γûæ                 Γûæ 
  1029.      Γûæ                  ΓûÆ 811819      1 Γûæ                 Γûæ 
  1030.      Γûæ                  Γûæ 2118209      1 Γûæ                 Γûæ 
  1031.      Γûæ                                               Γûæ 
  1032.      Γûæ  ΓûÆ Der Wert des Produktes, Γûæ                              Γûæ 
  1033.      ΓûÆ  Γûæ dessen Faktoren die einzelnen Potenzen "Primfaktor hoch Exponent" 
  1034.      sind, Γûæ    Γûæ 
  1035.      ΓûÆ  Γûæ ist: Γûæ                                         Γûæ 
  1036.      Γûæ     Γûæ 18363498557203867896295861193451655574494195634077086553 Γûæ   Γûæ 
  1037.      Γûæ                                               Γûæ 
  1038.  
  1039.  Ein Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend 
  1040.  Hauptspeicher f╨æhrt die hier dargestellte Berechnung in 45 Sekunden aus. 
  1041.  
  1042.  Man erkennt an diesen Beispielen, da╤ü auch eine 56-stellige ganze Zahl in ihre 
  1043.  Primfaktoren vollst╨öndig zerlegt werden kann, wenn diese nicht zu gro╤ü sind. 
  1044.  
  1045.  Man kann also immerhin den Versuch unternehmen, eine unbekannte vielstellige 
  1046.  Zahl mit prim.CMD in ihre Primfaktoren zu zerlegen. 
  1047.  
  1048.  
  1049. ΓòÉΓòÉΓòÉ 10. Anhang ΓòÉΓòÉΓòÉ
  1050.  
  1051. Im Anhang sind die einzelnen mathematischen Funktionen, die von  kzr.CMD 
  1052. verwendet werden k╨ñnnen, in 
  1053. individuellen Unterabschnitten erkl╨ört. 
  1054.  
  1055.  
  1056. ΓòÉΓòÉΓòÉ 10.1. Sinusfunktion ΓòÉΓòÉΓòÉ
  1057.  
  1058. Die Sinusfunktion sin(x) 
  1059. kann im Bereich  |x| < 1.0E+8 
  1060. mit fast beliebiger Genauigkeit 
  1061. (ND <= 450) berechnet werden. 
  1062.  
  1063.  
  1064. ΓòÉΓòÉΓòÉ 10.2. Cosinusfunktion ΓòÉΓòÉΓòÉ
  1065.  
  1066. Die Cosinusfunktion cos(x) 
  1067. kann im Bereich  |x| < 1.0E+8 
  1068. mit fast beliebiger Genauigkeit 
  1069. (ND <= 450) berechnet werden. 
  1070.  
  1071.  
  1072. ΓòÉΓòÉΓòÉ 10.3. Tangensfunktion ΓòÉΓòÉΓòÉ
  1073.  
  1074. Die Tangensfunktion tan(x) 
  1075. kann im Bereich  |x| < 1.0E+8 
  1076. mit fast beliebiger Genauigkeit 
  1077. (ND <= 450) berechnet werden. 
  1078.  
  1079.  
  1080. ΓòÉΓòÉΓòÉ 10.4. Cotangensfunktion ΓòÉΓòÉΓòÉ
  1081.  
  1082. Die Cotangensfunktion cot(x) 
  1083. kann im Bereich  |x| < 1.0E+8 
  1084. mit fast beliebiger Genauigkeit 
  1085. (ND <= 450) berechnet werden. 
  1086.  
  1087.  
  1088. ΓòÉΓòÉΓòÉ 10.5. Hyperbel-Sinusfunktion ΓòÉΓòÉΓòÉ
  1089.  
  1090. Die Hyperbel-Sinusfunktion sinh(x) 
  1091. ist definiert als 
  1092.  
  1093.                     exp(+x) - exp(-x) 
  1094.        sinh(x) =  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ . 
  1095.                            2 
  1096.  
  1097.  Sie kann im Bereich |x| < 1.0E+8 
  1098.  mit fast beliebiger Genauigkeit 
  1099.  (ND <= 450) berechnet werden. 
  1100.  
  1101.  
  1102. ΓòÉΓòÉΓòÉ 10.6. Hyperbel-Cosinusfunktion ΓòÉΓòÉΓòÉ
  1103.  
  1104. Die Hyperbel-Cosinusfunktion cosh(x) 
  1105. ist definiert als 
  1106.  
  1107.                     exp(+x) + exp(-x) 
  1108.        cosh(x) =  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ . 
  1109.                            2 
  1110.  
  1111.  Sie kann im Bereich |x| < 1.0E+8 
  1112.  mit fast beliebiger Genauigkeit 
  1113.  (ND <= 450) berechnet werden. 
  1114.  
  1115.  
  1116. ΓòÉΓòÉΓòÉ 10.7. Hyperbel-Tangensfunktion ΓòÉΓòÉΓòÉ
  1117.  
  1118. Die Hyperbel-Tangensfunktion tanh(x) 
  1119. ist definiert als 
  1120.  
  1121.                     exp(+x) - exp(-x) 
  1122.        tanh(x) =  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ . 
  1123.                     exp(+x) + exp(-x) 
  1124.  
  1125.  Sie kann im Bereich |x| < 1.0E+8 
  1126.  mit fast beliebiger Genauigkeit 
  1127.  (ND <= 450) berechnet werden. 
  1128.  
  1129.  
  1130. ΓòÉΓòÉΓòÉ 10.8. Hyperbel-Cotangensfunktion ΓòÉΓòÉΓòÉ
  1131.  
  1132. Die Hyperbel-Cotangensfunktion coth(x) 
  1133. ist definiert als 
  1134.  
  1135.                     exp(+x) + exp(-x) 
  1136.        coth(x) =  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ . 
  1137.                     exp(+x) - exp(-x) 
  1138.  
  1139.  Sie kann im Bereich |x| < 1.0E+8 
  1140.  - der Wert x=0 ist aber nicht erlaubt - 
  1141.  mit fast beliebiger Genauigkeit 
  1142.  (ND <= 450) berechnet werden. 
  1143.  
  1144.  
  1145. ΓòÉΓòÉΓòÉ 10.9. Arcus-Sinusfunktion ΓòÉΓòÉΓòÉ
  1146.  
  1147. Der Hauptwert der Funktion arcsin(x) 
  1148. kann im Bereich  |x| ╤ö 1 
  1149. mit fast beliebiger Genauigkeit 
  1150. (ND <= 450) berechnet werden. 
  1151.  
  1152.  
  1153. ΓòÉΓòÉΓòÉ 10.10. Arcus-Cosinusfunktion ΓòÉΓòÉΓòÉ
  1154.  
  1155. Der Hauptwert der Funktion arccos(x) 
  1156. kann im Bereich  |x| ╤ö 1 
  1157. mit fast beliebiger Genauigkeit 
  1158. (ND <= 450) berechnet werden. 
  1159.  
  1160.  
  1161. ΓòÉΓòÉΓòÉ 10.11. Arcus-Tangensfunktion ΓòÉΓòÉΓòÉ
  1162.  
  1163. Der Hauptwert der Funktion arctan(x) 
  1164. kann im Bereich  |x| < ╤î 
  1165. mit fast beliebiger Genauigkeit 
  1166. (ND <= 450) berechnet werden. 
  1167.  
  1168.  
  1169. ΓòÉΓòÉΓòÉ 10.12. Arcus-Cotangensfunktion ΓòÉΓòÉΓòÉ
  1170.  
  1171. Der Hauptwert der Funktion arccot(x) 
  1172. kann in den Bereichen 
  1173. -╤î < x < 0  und  0 < x  +╤î 
  1174. mit fast beliebiger Genauigkeit 
  1175. (ND <= 450) berechnet werden. 
  1176.  
  1177. Anmerkung: 
  1178.  
  1179. Der Hauptwert der Funktion arccot(x) 
  1180. geht f╨ær  x ΓöÇ> -╤î  gegen  -0 
  1181. und f╨ær  x ΓöÇ> -0  gegen  -╤â/2. 
  1182. An der Stelle x = 0 
  1183. ist die Funktion  arccot(x) 
  1184. - und daher auch deren Hauptwert - 
  1185. nicht erkl╨ört. Der Hauptwert der Funktion  arccot(x) 
  1186. geht f╨ær  x ΓöÇ> +0  gegen  +╤â/2 
  1187. und f╨ær  x ΓöÇ> +╤î  gegen  +0. 
  1188.  
  1189. Diese Definion des Hauptwertes 
  1190. der Funktion  arccot(x)  ist offenbar 
  1191. die j╨ængste Festlegung [3]. 
  1192.  
  1193. In der Literatur findet man 
  1194. gelegentlich eine andere Definition, 
  1195. zum Beispiel in [2]. 
  1196.  
  1197.  
  1198. ΓòÉΓòÉΓòÉ 10.13. Area-Sinusfunktion ΓòÉΓòÉΓòÉ
  1199.  
  1200. Der Hauptwert der Funktion arsinh(x) 
  1201. kann im Bereich  -╤î < x < +╤î 
  1202. mit fast beliebiger Genauigkeit 
  1203. (ND <= 400) berechnet werden. 
  1204.  
  1205.  
  1206. ΓòÉΓòÉΓòÉ 10.14. Area-Cosinusfunktion ΓòÉΓòÉΓòÉ
  1207.  
  1208. Der Hauptwert der Funktion arcosh(x) 
  1209. kann im Bereich  x ╨ä 1 
  1210. mit fast beliebiger Genauigkeit 
  1211. (ND <= 400) berechnet werden. 
  1212.  
  1213.  
  1214. ΓòÉΓòÉΓòÉ 10.15. Area-Tangensfunktion ΓòÉΓòÉΓòÉ
  1215.  
  1216. Der Hauptwert der Funktion artanh(x) 
  1217. kann im Bereich  |x| < 1 
  1218. mit fast beliebiger Genauigkeit 
  1219. (ND <= 400) berechnet werden. 
  1220.  
  1221.  
  1222. ΓòÉΓòÉΓòÉ 10.16. Area-Cotangensfunktion ΓòÉΓòÉΓòÉ
  1223.  
  1224. Der Hauptwert der Funktion arcoth(x) 
  1225. kann im Bereich  |x| > 1 
  1226. mit fast beliebiger Genauigkeit 
  1227. (ND <= 400) berechnet werden. 
  1228.  
  1229.  
  1230. ΓòÉΓòÉΓòÉ 10.17. Exponentialfunktion ΓòÉΓòÉΓòÉ
  1231.  
  1232. Die Exponentialfunktion exp(x) 
  1233. kann im Bereich |x| < 1.0E+9 
  1234. mit fast beliebiger Genauigkeit 
  1235. berechnet werden. 
  1236.  
  1237.  
  1238. ΓòÉΓòÉΓòÉ 10.18. Potenzfunktion ΓòÉΓòÉΓòÉ
  1239.  
  1240. Die Potenz-Funktion pot(x,y) 
  1241. -- x hoch y -- 
  1242. kann im Bereich  |y*ln(|x|)| < 1.0E+9 
  1243. mit einer Genauigkeit 
  1244. von maximal 400 
  1245. Dezimalstellen berechnet werden. 
  1246.  
  1247.  
  1248. ΓòÉΓòÉΓòÉ 10.19. Funktion 2. Wurzel ΓòÉΓòÉΓòÉ
  1249.  
  1250. Die zweite Wurzel sqrt(x) 
  1251. kann im Bereich 
  1252. 1.0E-10000 < x < 1.0E+10000 
  1253. mit fast beliebiger Genauigkeit 
  1254. (ND <= 450) berechnet werden. 
  1255.  
  1256.  
  1257. ΓòÉΓòÉΓòÉ 10.20. Funktion 3. Wurzel ΓòÉΓòÉΓòÉ
  1258.  
  1259. Die dritte Wurzel root3(x) 
  1260. kann im Bereich 
  1261. 1.0E-10000 < x < 1.0E+10000 
  1262. mit fast beliebiger Genauigkeit 
  1263. (ND <= 450) berechnet werden. 
  1264.  
  1265.  
  1266. ΓòÉΓòÉΓòÉ 10.21. Logarithmus zur Basis e ΓòÉΓòÉΓòÉ
  1267.  
  1268. Der nat╨ærliche Logarithmus ln(x) 
  1269. kann im Bereich 
  1270. 1.0E-100000 < x < 1.0E+100000 
  1271. mit fast beliebiger Genauigkeit 
  1272. (ND <= 450) berechnet werden. 
  1273.  
  1274.  
  1275. ΓòÉΓòÉΓòÉ 10.22. Logarithmus zur Basis 10 ΓòÉΓòÉΓòÉ
  1276.  
  1277. Der Logarithnus zur Basis 10:  log(x) 
  1278. kann im Bereich 
  1279. 1.0E-100000 < x < 1.0E+100000 
  1280. mit fast beliebiger Genauigkeit 
  1281. (ND <= 450) berechnet werden. 
  1282.  
  1283.  
  1284. ΓòÉΓòÉΓòÉ 10.23. Logarithmus zur Basis 2 ΓòÉΓòÉΓòÉ
  1285.  
  1286. Der Logarithmus zur Basis 2: ld(x) 
  1287. kann im Bereich 
  1288. 1.0E-100000 < x < 1.0E+100000 
  1289. mit fast beliebiger Genauigkeit 
  1290. (ND <= 450) berechnet werden. 
  1291.  
  1292.  
  1293. ΓòÉΓòÉΓòÉ 10.24. Fakult╨ötsfunktion n! ΓòÉΓòÉΓòÉ
  1294.  
  1295. Die Fakult╨ötsfunktion n!(u) 
  1296. kann im Bereiche 0 < u <= 6000 
  1297. f╨ær ganzzahlige Werte von u 
  1298. berechnet werden. 
  1299.  
  1300. F╨ær u > 6000 
  1301. werden die Rechenzeiten zu gro╤ü. 
  1302.  
  1303.  
  1304. ΓòÉΓòÉΓòÉ 10.25. Fakult╨ötsfunktion n!! ΓòÉΓòÉΓòÉ
  1305.  
  1306. Die Fakult╨ötsfunktion n!!(u) 
  1307.  
  1308. kann im Bereiche 0 < u <= 6000 
  1309. f╨ær ganzzahlige Werte von u berechnet werden. 
  1310. F╨ær u > 6000 werden die Rechenzeiten zu gro╤ü. 
  1311.  
  1312.  
  1313. ΓòÉΓòÉΓòÉ 10.26. Gammafunktion ΓòÉΓòÉΓòÉ
  1314.  
  1315. Die Gamma-Funktion ╤é(x)=ga(x) ist definiert als 
  1316.  
  1317. F╨ær  x=0  und negative ganzzahlige Werte von  x 
  1318. hat die Gammafunktion Pole und ist dort nicht definiert. 
  1319. Sie kann im Bereich  -3000  < x < +3000 
  1320. mit einer Genauigkeit 
  1321. von maximal 50 Dezimalstellen berechet werden. 
  1322. F╨ær |x| > 3000 werden die Rechenzeiten zu gro╤ü. 
  1323.  
  1324.  
  1325. ΓòÉΓòÉΓòÉ 10.27. Binomialkoeffizient ΓòÉΓòÉΓòÉ
  1326.  
  1327. F╨ær einen Binomialkoeffizienten 
  1328.  
  1329.                          u! 
  1330.           bin(u,v) = ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ 
  1331.                     v!(u-v)! 
  1332.  
  1333.  m╨æssen die Bereiche 0 < u <= 2000 
  1334.                    und 0 < v <= u 
  1335.  
  1336.  eingehalten werden. 
  1337.  
  1338.  Die Variablen  u  und  v 
  1339.  m╨æssen ganze Zahlen sein. 
  1340.  
  1341.  
  1342. ΓòÉΓòÉΓòÉ 10.28. Gau╤üsche Fehlerfunktion ΓòÉΓòÉΓòÉ
  1343.  
  1344. Die Gau╤üsche Fehlerfunktion ╤ê(x)=phi(x) 
  1345.  
  1346. kann im Bereich  -╤î < x < +╤î 
  1347. mit einer Genauigkeit 
  1348. von maximal 50 Dezimalstellen 
  1349. berechnet werden. 
  1350.  
  1351.  
  1352. ΓòÉΓòÉΓòÉ 10.29. Fehlerfunktion p_(x) ΓòÉΓòÉΓòÉ
  1353.  
  1354. Die Fehlerfunktion p_(x)=(1+╤ê(x))/2 
  1355. kann im Bereich  -╤î < x < +╤î 
  1356. mit einer Genauigkeit 
  1357. von maximal 50 Dezimalstellen 
  1358. berechet werden. 
  1359.  
  1360. Zur Definition von ╤ê(x) 
  1361. siehe die Erl╨öuterunge zu phi(x) 
  1362.  
  1363.  
  1364. ΓòÉΓòÉΓòÉ 10.30. Fehlerfunktion q_(x) ΓòÉΓòÉΓòÉ
  1365.  
  1366. Die Fehlerfunktion q_(x)=(1-╤ê(x))/2 
  1367. kann im Bereich  -╤î < x < +╤î 
  1368. mit einer Genauigkeit 
  1369. von maximal 50 Dezimalstellen 
  1370. berechet werden. 
  1371.  
  1372. Zur Definition von ╤ê(x) 
  1373. siehe die Erl╨öuterunge zu phi(x) 
  1374.  
  1375.  
  1376. ΓòÉΓòÉΓòÉ 10.31. Error-Funktion ΓòÉΓòÉΓòÉ
  1377.  
  1378. Die Error-Funktion erf(x) 
  1379.  
  1380. kann im Bereich  -╤î < x < +╤î 
  1381. mit einer Genauigkeit 
  1382. von maximal 50 Dezimalstellen 
  1383. berechet werden. 
  1384.  
  1385.  
  1386. ΓòÉΓòÉΓòÉ 10.32. Komplement╨öre Error-Funktion ΓòÉΓòÉΓòÉ
  1387.  
  1388. Die komplement╨öre Error-Funktion erfc(x) 
  1389.  
  1390. kann im Bereich  -╤î < x < +╤î 
  1391. mit einer Genauigkeit 
  1392. von maximal 50 Dezimalstellen 
  1393. berechet werden. 
  1394.  
  1395.  
  1396. ΓòÉΓòÉΓòÉ 10.33. Modulo-Funktion ΓòÉΓòÉΓòÉ
  1397.  
  1398. Die Modulo-Funktion wird h╨öufig mit der divrest-Funktion von kzr (in einer 
  1399. REXX-Datei das Doppelsymbol //) 
  1400. verwechselt. Sie ist nicht identisch mit der divrest-Funktion von kzr , wenn  u 
  1401. und  v  unterschiedliche Vorzeichen 
  1402. haben. 
  1403. Hier ein Beispiel mit  u = -235 
  1404. und  v = 17: 
  1405.  
  1406. mod(u, v) = 3 
  1407.  
  1408. u divrest v = -14 
  1409.  
  1410. Die Modulo-Funktion ist folgenderma╤üen definiert 
  1411. (Siehe [6], Seite XV, oben): 
  1412.  
  1413. x = u mod(v)  bedeutet: x = m*v + u 
  1414.  
  1415. mit  x, m, und  u  aus der Menge der ganzen Zahlen 
  1416. ┬╖┬╖┬╖-3,-2,-1, 0, +1, +2, +3,┬╖┬╖┬╖ 
  1417. und  v  aus der Menge der nat╨ærlichen Zahlen  0, 1, 2, 3,┬╖┬╖┬╖, 
  1418. mit Ausnahme der Null. 
  1419.  
  1420. Die Funktion  x = m*v + u 
  1421.  
  1422. ist unendlich vieldeutig. Daher hat man den am dichtesten bei Null liegenden 
  1423. Wert als eine Art "Hauptwert" festgelegt. 
  1424.  
  1425. Die Funktion  u mod(v)  ist in der Form  mod(u,v)  programmiert; sie liefert 
  1426. als Ergebnis den "Hauptwert". 
  1427.  
  1428.  
  1429. ΓòÉΓòÉΓòÉ 10.34. Kleinster gemeinsamer Teiler ΓòÉΓòÉΓòÉ
  1430.  
  1431. Um den kleinsten gemeinsamen Teiler 
  1432. zweier Zahlen  u  und  v zu ermitteln, 
  1433. wird der bekannte Algorithmus von 
  1434. Euclid verwendet. 
  1435.  
  1436. Siehe hierzu die Seiten 28 oder 33 
  1437. in [7]. 
  1438.  
  1439.  
  1440. ΓòÉΓòÉΓòÉ 10.35. pi() ΓòÉΓòÉΓòÉ
  1441.  
  1442. Die Konstante ╤â = pi() = 3.14159.... 
  1443. kann mit fast beliebiger Genauigkeit 
  1444. berechet werden. 
  1445.  
  1446.  
  1447. ΓòÉΓòÉΓòÉ 10.36. e() ΓòÉΓòÉΓòÉ
  1448.  
  1449. Die Konstante e = e() = 2.71828..... 
  1450. kann mit fast beliebiger Genauigkeit 
  1451. berechet werden. 
  1452.  
  1453.