home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / kzr_0899.zip / kzr.BAK < prev    next >
Text File  |  1998-08-10  |  72KB  |  2,760 lines

  1. .* Dieses Dokument wurde mit Phelsuma/2 erstellt
  2. :userdoc.
  3. :title.Der (k)ommando(z)eilen(r)echner kzr.CMD
  4. :h1 res=1000.Allgemeines
  5. :color fc=darkgreen.
  6. :font facename='Tms Rmn' size=36x32.
  7. .ce !!! kzr.CMD !!!
  8. :color fc=default bc=default.
  9. :font facename=default size=0x0.
  10. .ce Für die OS/2-Kommandozeile
  11. .ce unter dem klassischen REXX und Object REXX
  12. .ce Version vom August 1998
  13. :p.:p.
  14. :color fc=Pink.kzr.CMD:color fc=default bc=default. ist ein REXX-(:color fc=Pink.k:color fc=default bc=default.)ommando
  15. (:color fc=Pink.z:color fc=default bc=default.)eilen-(:color fc=Pink.r:color fc=default bc=default.)echner mit
  16. (:color fc=Pink.fast:color fc=default bc=default.) beliebiger Genauigkeit für die folgenden Rechenoperationen: 
  17. :lm margin=10.:p.Rechenoperation:lm margin=58.Kommandozeilen- 
  18. :lm margin=62.
  19. .br
  20. Operator 
  21. :lm margin=10.
  22. .br
  23. Addieren:lm margin=62.(+)
  24. :lm margin=10.
  25. .br
  26. Subtrahieren:lm margin=62.(-)
  27. :lm margin=10.
  28. .br
  29. Multiplizieren:lm margin=62.(*)
  30. :lm margin=10.
  31. .br
  32. Potenzieren mit ganzzahligem Exponenten:lm margin=62.(**)
  33. :lm margin=10.
  34. .br
  35. Dividieren:lm margin=62.(&colon.) oder (/)
  36. :lm margin=10.
  37. :p.
  38. Dividieren und den ganzzahligen Teil
  39. .br
  40. des Ergebnisses ausgeben:lm margin=62.(divganz)
  41. :lm margin=10.
  42. :p.
  43. Dividieren und den Divisionsrest ausgeben:lm margin=62.(divrest)
  44. :lm margin=1.
  45. :p. 
  46. In REXX (oder auch grundsätzlich in OS/2) können sowohl das Symbol  %  als auch der String  //  nicht als Kommandozeilen-Parameter übernommen 
  47. werden. Um die internen mathematischen Operatoren  %  und  //  von der Kommandozeile aus verwenden zu können, 
  48. war es erforderlich, die "externen Operatoren"  divganz  für  %  und  divrest  für  // zu definieren. 
  49. :p.
  50. Zusätzlich zu den hier beschriebenen elementaren Rechenoperationen können auch
  51. :link reftype=hd res=4000 group=2.Mathematische Funktionen:elink.
  52. .br
  53. in die "aktuelle Rechenaufgabe" eingebunden werden. 
  54. :p.
  55. :color fc=Pink bc=default.kzr.CMD:color fc=default bc=default. 
  56. ist dann besonders praktisch, wenn man, ohne eines der großen, meistens grafischen Mathematik-Programme 
  57. starten zu müssen, auf der OS/2-Kommandozeile ganz schnell eine Rechenaufgabe mit den oben erklärten 
  58. Rechenoperationen und den verfügbaren mathematischen Funktionen ausführen möchte. 
  59. Außerdem beanspruchen auf einer HPFS-formatierten Festplatte die "Kernfunktion"
  60. :color fc=Pink bc=default.kzr.CMD:color fc=default bc=default. weniger als 24,5 Kilobyte, die kleine Version
  61. :color fc=Pink bc=default.kzr0.CMD:color fc=default bc=default. weniger als 3,2 Kilobyte und die "Hilfsfunktion"
  62. MinNDA.CMD weniger als 6,1 Kilobyte. Hinzu kommen, je nach Bedarf etwa 3 bis 6 Kilobyte
  63. (eine Ausnahme mit ca. 10 Kilobyte) für jede mathematische Funktion. 
  64. :p.
  65. Die kleine Version
  66. :color fc=Pink bc=default.
  67. kzr0.CMD
  68. :color fc=default bc=default.
  69. hat fast die gleiche Rechenfähigkeit wie die der großen Version
  70. :color fc=Pink bc=default.
  71. kzr.CMD
  72. :color fc=default bc=default.;
  73. .br
  74. nur ist die interne Rechengenauigkeit mit 48 Dezimalstellen konstant festgelegt.
  75. :p.
  76. Des weiteren können von der OS/2-Kommandozeile, direkt, das heißt ohne die Datei
  77. :color fc=Pink bc=default.kzr.CMD:color fc=default bc=default. zu verwenden,
  78. .br
  79. 6 REXX-Umwandlungsfunktionen aufgerufen werden, die es gestatten, Zahlen -- Integer-Anteil und/oder Mantisse --
  80. von dezimal nach hexadezimal, von dezimal nach binär, von binär nach hexadezimal und jeweils umgekehrt 
  81. umzuwandeln. 
  82. :p.
  83. kzr.CMD, kzr0.CMD, MinNDA.CMD, die REXX-Dateien für die mathematischen Funktionen sowie die sechs 
  84. Umwandlungsfunktionen sind "Cardware". Über eine Nachricht (auch Fax oder e-mail), daß der 
  85. REXX-(k)ommando(z)eilen-(r)echner  kzr.CMD  verwendet wird, würde ich mich freuen. 
  86. :p.
  87. Diese Version vom August 1998 soll vorläufig die endgültige Version von 
  88. :color fc=Pink bc=default.kzr.CMD:color fc=default bc=default., den 34 mathematischen Unterprogrammen,
  89. den 6 Umwandlungsfunktionen und Prim.CMD bleiben. Weitere Versionen 
  90. sind nicht geplant, es sei denn, es würden mir Fehler mitgeteilt werden oder ich würde selber Fehler bemerken. 
  91. :p.  
  92. Wenn allerdings der Wunsch bestehen sollte, weitere "externe" Funktionen, auch weitere der sogenannten "höheren 
  93. Funktionen" verwenden zu können, so erbitte ich eine diesbezügliche Nachricht. 
  94. Nachrichten über (von mir noch nicht entdeckte) Fehler sind sehr willkommen. 
  95. :p.
  96. Das Gesamtpaket :color fc=Pink bc=default.kzr.CMD:color fc=default bc=default. wird ab Mitte August 1998
  97. auch für Object REXX 1.0 für Linux verfügbar sein.
  98. .br
  99. Object Rexx 1.0 für Linux ist aus dem Internet über die Adresse
  100. :lm margin=6.
  101. :p. 
  102. http&colon.&slash.&slash.service2.boulder.ibm.com/dl/rexx/orexxlinux-d
  103. :lm margin=1.
  104. :p.
  105. :color fc=Green bc=Green.▒:color fc=Red bc=Green.kostenlos:color fc=Green bc=Green.▒
  106. :color fc=default bc=default.
  107. erhältlich.
  108. :p.:p.
  109. Diese INF-Datei wurde erstellt mit Hilfe von Phelsuma/2, einer Entwicklungsumgebung für OS/2-Hilfe-Dateien. 
  110. Der Autor von Phelsuma/2 ist Michael Petz, Börßumer Str. 15 in D-38312 Heiningen; 
  111. Tel.: 05334 7186 
  112. :p.:p.
  113. Im August 1998, 
  114. .br
  115. Hermann Mahr 
  116. .br
  117. Kafkastraße 14 
  118. .br
  119. 64291 Darmstadt 
  120. .br
  121. Telefon:   06151 373802 
  122. .br
  123. Telefax:   06151 373805  (von 09.00 Uhr bis 23.00 Uhr) 
  124. .br
  125. e-mail:    Hermann.Mahr@t-online.de 
  126. :p.:p.
  127. .* Ende
  128. :h1 res=2000.Installation
  129. .br
  130. Die Installation des
  131. .br
  132. :color fc=darkgreen.
  133. :font facename='Tms Rmn' size=36x32.
  134. .ce (k)ommando(z)eilen(r)echners kzr.CMD
  135. :color fc=default bc=default.
  136. :font facename=default size=0x0. 
  137. :p.
  138.        
  139. geschieht dadurch, daß man die Dateien
  140. :lm margin=50.
  141. .br
  142. kzr.CMD, kzr0.CMD, MinNDA.CMD, und kzr.INF,
  143. :lm margin=1.
  144. :p.
  145. alle mathematischen Funktionen 
  146. :lm margin=50.
  147. .br
  148. sin.CMD, cos.CMD, tan.CMD, cot.CMD, u.s.w., 
  149. :lm margin=1.
  150. :p.
  151. alle Umwandlungsfunktionen
  152. :lm margin=50.
  153. .br
  154. d2b, d2x, u.s.w.
  155. :lm margin=1.
  156. :p.
  157. und die Funktion
  158. :lm margin=50.
  159. .br
  160. prim.CMD
  161. :lm margin=1.
  162. :p.
  163. in ein gemeinsames Verzeichnis kopiert, das über den Pfad erreichbar ist. 
  164. :p.
  165. Da OS/2 Warp 3.0 und Warp 4.0 den ANSI-Treiber standardmäßig geladen hat,
  166. kann die Bildschirm-Anzeige der Ergebnisse von von
  167. :color fc=Pink bc=default.  kzr.CMD :color fc=default bc=default.  farbig erfolgen.
  168. .br
  169. Alle von kzr.CMD aufrufbaren Funktionen und auch :color fc=Pink bc=default.  kzr.CMD :color fc=default bc=default. 
  170. selbst sind für eine
  171. farbige Ausgabe eingerichtet.
  172. :p.
  173. Die Anwendung des  (k)ommando(z)eilen(r)echners
  174. :color fc=Pink bc=default.  kzr.CMD :color fc=default bc=default.
  175. erfolgt natürlich von der OS/2-Kommandozeile aus. 
  176. :p.
  177. .* Ende
  178. :h1 res=3000.Anwendung
  179. :p.
  180. Die Anwendung von kzr.CMD ist außerordentlich einfach, was in den folgenden Unterabschnitten 
  181. :lm margin=24.
  182. :p.
  183. :link reftype=hd res=3001 group=2.Rein numerische Anwendung:elink.
  184. :lm margin=1.
  185. .br
  186. und
  187. :lm margin=24.
  188. .br
  189. :link reftype=hd res=3002 group=2.Anwendung mir Variablen:elink.
  190. .br 
  191. :lm margin=1.
  192. :p.
  193. an Beispielen erläutert wird. 
  194. :p.Wichtige Anmerkung: 
  195. :p.
  196. Die Symbole  ,  $,  ?,   \,  @,  #,  '  und  "  dürfen auf der OS/2-Kommandozeile in der Eingabe-Kette für  
  197. kzr.CMD  und  kzr0.CMD  nicht verwendet werden, weil sie keine der in der arithmetischen Syntax erlaubten 
  198. Operatoren sind. 
  199. Geschieht dies doch, so wird eine diesbezügliche Meldung angezeigt. 
  200. :p.
  201. Die Symbole  %,  &.,  <, >  und  |  sowie die Strings  <<, >>  und  // können auf der OS/2-Kommandozeile nur in 
  202. bestimmten Fällen verwendet werden; nur zeigt kzr.CMD bei Verletzung der einschlägigen Regeln leider keine 
  203. diesbezügliche Meldungen an. 
  204. .* Ende
  205.  
  206. :h2 res=3001.Rein numerische Anwendung
  207. :p.
  208. Man gebe als Beispiel folgendes auf der OS/2-Kommandozeile ein: 
  209. :lm margin=10.
  210. :p.
  211. kzr  36, 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2 
  212. :lm margin=1.
  213. :p.
  214. oder -- der besseren Übersichtlichkeit wegen -- mit Leerzeichen: 
  215. :lm margin=10.
  216. :p.
  217. kzr  36, 2.5 + ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2 
  218. :lm margin=1.
  219. :p.
  220. Diese Zeichenkette, bestehend aus Strings und einzelnen Symbolen, wird im folgenden Text als Eingabe-Kette (EK),
  221. Teile davon als Eingabe-String, also als EK-String bezeichnet. 
  222. :p.
  223. Nach dem EK-String kzr, gefolgt von mindestens 1 Leerzeichen, stellt die positive ganze Zahl 36 die Anzahl der 
  224. Dezimalstellen ein, mit denen intern maximal gerechnet werden soll. 
  225. .br
  226. In der Eingabe-Kette 
  227. :lm margin=10.
  228. :p.
  229. kzr  36, 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2 
  230. :lm margin=1.
  231. :p.
  232. oder auch 
  233. :lm margin=10.
  234. :p.             
  235. kzr  36, 2.5 + ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2 
  236. :lm margin=1.
  237. :p.
  238. ist nach der ganzen Zahl 36 ein Komma zwingend erforderlich. Vor diesem Komma
  239. :color fc=Pink bc=default.können:color fc=default bc=default. ein oder mehrere
  240. Leerzeichen stehen und nach diesem Komma :color fc=Pink bc=default.muß:color fc=default bc=default.
  241. mindestens  1  Leerzeichen folgen.
  242. .br 
  243. Wird nach dem EK-String kzr keine ganze Zahl, die größer als 1 sein muß, eingetragen, so ist an dieser Stelle 
  244. dennoch ein Komma mit mindesten 1 Leerzeichen davor und dahinter unbedingt erforderlich. 
  245. (In diesem Fall wird intern mit maximal 20 Dezimalstellen gerechnet.) 
  246. :p.
  247. Der im Anschluß an den EK-String
  248. :lm margin=10.
  249. :p.
  250. kzr 36, oder kzr ,
  251. :lm margin=1. 
  252. :p.
  253. einzugegebende EK-String 
  254. :lm margin=10.
  255. :p.             
  256. 2.5+(2.8E-2+2.4E-1*exp(-1.313))**2 
  257. :lm margin=1.
  258. :p.
  259. oder auch 
  260. :lm margin=10.
  261. :p.             
  262. 2.5 + ( 2.8E-2 + 2.4E-1 * exp(-1.313) ) ** 2
  263. :lm margin=1.
  264. :p.
  265. muß die gleiche Form haben, demzufolge auch nach den gleichen Syntax-Regeln aufgebaut sein, wie eine 
  266. entsprechende Anweisung in einer REXX-Stapel-Datei aufgebaut sein müßte. 
  267. Verstöße gegen diese Syntax-Regeln bewirken Meldungen, die in den meisten Fällen den Syntaxfehler auch erläutern. 
  268. :p.
  269. In den Dezimalbrüchen  2.5,  2.8E-2,  2.4E-1  und  -1.313  muß jeweils der im angloamerikanischen Sprachraum 
  270. übliche Dezimalpunkt verwendet werden. Ein Komma dient in Funktions-Argumenten mit mehreren Variablen der 
  271. Trennung dieser Variablen, die ja ihrerseits wiederum Dezimalbrüche sein können. 
  272. Bei den Dezimalbrüchen ist es gleichgültig, ob der Buchstabe  "E"  oder  "e"  verwendet wird.   
  273. :p.
  274. Die Eingabe der "aktuelle Rechenaufgabe" auf der OS/2-Kommandozeile hat gegenüber einer Eingabe "innerhalb von 
  275. kzr.CMD" den Vorteil, daß die Eingabe-Kette mit einem Tastendruck wieder auf die OS/2-Kommandozeile gebracht 
  276. werden kann und so sehr leicht Eingabefehler beseitigt werden können oder daß eine neue "aktuelle Rechenaufgabe" 
  277. durch Änderung einzelner Teile dieser Eingabe-Kette formuliert werden kann. 
  278. :p.
  279. :lm margin=3.
  280. :p.  
  281. :font facename=Helv size=28x32.
  282. Sonderfall:
  283. :color fc=default bc=default.
  284. :font facename=default size=0x0. 
  285. :lm margin=7.
  286. :p.
  287. Wenn man bei der unmittelbar vorangegangenen Berechnung schon ein Ergebnis berechnet hat, kann man, nachdem 
  288. man die vorherige OS/2-Kommandozeilen-Eingabe per Tastendruck zurückgeholt oder eine neue "aktuelle 
  289. Rechenaufgabe" eingegeben hat, durch Ersetzen einer bestimmten Zahl durch die Variable  z  das Ergebnis der 
  290. unmittelbar vorangegangenen Berechnung in der neuen "aktuellen Rechenaufgabe" weiterverwenden. Aber nur dann !
  291. :p.
  292. Hierzu ein Beispiel: 
  293. :lm margin=10.
  294. :p.
  295. Das Ergebnis der unmittelbar vorangegangenen Berechnung der "Rechenaufgabe"  45-40  durch die Eingabe-Kette 
  296. :lm margin=16.
  297. :p.
  298. kzr , 45-40 
  299. :lm margin=10.
  300. :p.
  301. ist    
  302. :lm margin=16.
  303. :p.             
  304. 5. 
  305. :lm margin=10.
  306. :p.
  307. Ruft man jetzt die Eingabe-Kette  kzr , 45-40 der unmittelbar vorangegangenen Rechenaufgabe auf die übliche 
  308. Weise auf die OS/2-Kommandozeile zurück, so kann man einen oder auch mehrere Zahlenwerte der 
  309. Eingabe-Kette durch die Variable  z  ersetzen. 
  310. Somit wäre zum Beispiel die neue Eingabe-Kette 
  311. :lm margin=16.
  312. :p.
  313. kzr , z-40 , 
  314. :lm margin=10.
  315. :p.
  316. deren Ergebnis wegen  z = 5  gleich  -35  ist. 
  317. :p.
  318. Dieses Verfahren kann, auch in komplizierteren algebraischen Ausdrücken, mehrmals nacheinander nacheinander 
  319. angewendet werden. 
  320. :lm margin=1.
  321. :p.:p.:p.:p.
  322. :color fc=darkgreen.
  323. :font facename='Tms Rmn' size=34x24.
  324. Bei der kleinen Version
  325. :color fc=Pink.kzr0.CMD
  326. :color fc=default bc=default.
  327. :font facename=default size=0x0.
  328. :lm margin=1.
  329. :p.
  330. ist die interne Rechengenauigkeit mit 48 Dezimalstellen fest eingestellt.
  331. .br
  332. Daher ist das erste Komma in der Eingabekette -- unmittelbar nach der Teilkette kzr0.CMD -- nicht erlaubt.
  333. .br
  334. Die "aktuelle Rechenaufgabe" muß daher unmittelbar nach dem der Teilkette kzr0.CMD folgenden Leerzeichen
  335. (mindestens eines) geschehen. 
  336. :p.
  337. Die Eingabe
  338. .br
  339. :lm margin=17.kzr0 sin(.2)
  340. .br
  341. :lm margin=33.wäre ein Beispiel.
  342. :lm margin=1.
  343. :p.
  344. Bei Eingabefehlern oder internen Störungen, zum Beispiel das Erzeugen zu großer Zahlen, geben REXX oder kzr0.CMD
  345. lediglich eine allgemeine Fehlermeldung aus.
  346. :p.
  347. .* Ende
  348.  
  349. :h2 res=3002.Anwendung mit Variablen
  350. :p.
  351. kzr.CMD bietet die Möglichkeit, eine auf der OS/2-Kommandozeile eingegebene "Rechenaufgabe" zu lösen, in der in 
  352. algebraischen Ausdrücken und Funktions-Argumenten nicht nur feste Zahlenwerte sondern auch eine Mischung aus 
  353. festen Zahlenwerten und maximal zwei verschiedenen Variablen  x  und  y, denen natürlich jeweils ein Wert 
  354. zugewiesen werden muß, vorkommen. Es können aber auch nur eine oder zwei verschiedene Variable verwendet 
  355. werden. 
  356. :p.
  357. :color fc=Black bc=PaleGray.
  358. (Leider dürfen nicht alle Buchstaben als Variablen-Namen verwendet werden;
  359. .br 
  360. x und y, u und v sowie p und q sind erlaubte Variablen-Namen.) 
  361. :color fc=default bc=default.
  362. :p.
  363. Hierzu zwei Beispiele: 
  364. :p.
  365. 1.
  366. :lm margin=6.
  367. Die Eingabe auf der OS/2-Kommandozeile 
  368. :lm margin=16.
  369. :p.
  370. kzr , 1 + x/y ; x = 1, y = 2 
  371. :lm margin=6.
  372. :p.
  373. formuliert die Rechenaufgabe 
  374. :lm margin=16.
  375. :p.
  376. 1 + x/y  . 
  377. :lm margin=6.
  378. :p.
  379. Das Semikolon trennt diese Rechenaufgabe von den Zuweisungen 
  380. :lm margin=16.
  381. :p.
  382. x = 1  und  y = 2, 
  383. :lm margin=6.
  384. :p.
  385. ab, die ihrerseits durch ein Komma voneinander getrennt werden müssen. 
  386. :p.
  387. Hat man nun durch Betätigung der Eingabetaste das Ergebnis 1.5 erhalten, 
  388. so kann man, nachdem man die vorherige Eingabe 
  389. :lm margin=16.
  390. :p.
  391. kzr , 1 + x/y ; x = 1, y = 2 
  392. :lm margin=6.
  393. :p.
  394. auf die OS/2-Kommandozeile zurückgeholt hat, eine oder auch beide Variablen ändern. 
  395. .br
  396. Hierbei erleichtert es die Arbeit, daß sowohl die Variablen als auch der Cursor am Ende der "zurückgeholten 
  397. Kommandozeilen-Eingabe" stehen und daher das Positionieren des Cursors zur Änderung der Wertes einer 
  398. Variablen schnell geschehen ist. 
  399. :p.
  400. Wird jetzt die Variable y = 4 gesetzt, so erhält man das neue Ergebnis 1.25. 
  401. :p.
  402. Nachdem man die so geänderte Eingabe 
  403. :lm margin=16.
  404. :p.
  405. kzr , 1 + x/y ; x = 1, y = 4 
  406. :lm margin=6.
  407. :p.
  408. auf die OS/2-Kommandozeile zurückgeholt hat, kann man auch in diesem Beispiel das am Ende des 
  409. Unter-Abschnittes "Rein numerische Anwendung" als Sonderfall beschriebene Verfahren mit der Variablen  z  
  410. anwenden, um das Ergebnis   z = 1.25  in diese neue Rechenaufgabe einzubringen. 
  411. .br
  412. Man ändert in der "zurückgeholten Kommandozeilen-Eingabe" 
  413. :lm margin=16.
  414. :p.
  415. kzr , 1 + x/y ; x = 1, y = 4 
  416. :lm margin=6.
  417. :p.
  418. die Variable y in die Variable z und erhält mit der Eingabe 
  419. :lm margin=16.
  420. :p.
  421. kzr , 1 + x/z ; x = 1, y = 4 
  422. :lm margin=6.
  423. :p.
  424. das Ergebnis 1.8, da  x = 1  und  z = 1.25  ist. 
  425. :p.
  426. Die Zuweisung  y = 4  kann hier stehen bleiben; sie hat keine Wirkung mehr, weil die Variable y in der 
  427. Rechenaufgabe 
  428. :lm margin=16.
  429. :p.
  430. kzr , 1 + x/z ; x = 1, y = 4 
  431. :lm margin=6.
  432. :p.
  433. nicht mehr vorgekommt; man hätte sie ebenso gut auch entfernen können, ebenso auch das Komma im Anschluß 
  434. an die Zuweisung  x = 1.   
  435. :lm margin=1.
  436. :p.
  437. 2.
  438. :lm margin=6.
  439. Die etwas kompliziertere Eingabe auf der OS/2-Kommandozeile 
  440. :lm margin=16.
  441. :p.
  442. kzr 48, sin(1 + x/y) + sqrt(x+y) * pot(y,x) ; x = 1.3, y = .29E-1 
  443. :lm margin=6.
  444. :p.
  445. formuliert die Rechenaufgabe 
  446. :lm margin=16.
  447. :p.
  448. sin(1 + x/y) + sqrt(x+y) * pot(y,x), 
  449. :lm margin=6.
  450. :p.
  451. die mit 48 Dezimalstellen gerechnet werden soll. 
  452. .br
  453. Das Semikolon ; trennt diese Rechenaufgabe von den Zuweisungen 
  454. :lm margin=16.
  455. :p.
  456. x = 1.3 und y = .29E-1. 
  457. :lm margin=1.
  458. :p.:p.:p.:p.
  459. :color fc=darkgreen.
  460. :font facename='Tms Rmn' size=34x24.
  461. Bei der kleinen Version
  462. :color fc=Pink.kzr0.CMD
  463. :color fc=default bc=default.
  464. :font facename=default size=0x0.
  465. :lm margin=1.
  466. :p.
  467. :color fc=default bc=default.
  468. ist die zuvor beschriebene Anwendung mit Variablen nicht möglich.
  469. :p.
  470. .* Ende
  471.  
  472. :h1 res=4000.Mathematische Funktionen
  473. :p. 
  474. Die "Kernfunktion" kzr.CMD kann die folgenden "externen" mathematische Funktionen verwenden, deren Argumente 
  475. reelle Zahlen sein müssen. 
  476. :p.
  477. Trigonometrische Funktionen und Hyperbelfunktionen 
  478. :lm margin=4.
  479. :p.
  480. Sinusfunktion 
  481. :lm margin=66.
  482. :link reftype=hd res=10001
  483.   vpx=0% vpy=0% vpcx=50% vpcy=100%
  484.   group=2.sin(x)
  485. :elink.
  486. :lm margin=4.
  487. .br
  488. Cosinusfunktion                                           
  489. :lm margin=66.
  490. :link reftype=hd res=10002
  491.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  492.   group=2.cos(x)
  493. :elink.
  494. :lm margin=4.
  495. .br
  496. Tangensfunktion
  497. :lm margin=66.
  498. :link reftype=hd res=10003
  499.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  500.   group=2.tan(x)
  501. :elink.
  502. :lm margin=4.
  503. .br
  504. Cotangensfunktion
  505. :lm margin=66.
  506. :link reftype=hd res=10004
  507.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  508.   group=2.cot(x)
  509. :elink.
  510. :lm margin=4.
  511. .br                                         
  512. Hyperbel-Sinusfunktion
  513. :lm margin=66.
  514. :link reftype=hd res=10005
  515.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  516.   group=2.sinh(x)
  517. :elink.
  518. :lm margin=4.
  519. .br 
  520. Hyperbel-Cosinusfunktion
  521. :lm margin=66.
  522. :link reftype=hd res=10006
  523.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  524.   group=2.cosh(x)
  525. :elink.
  526. :lm margin=4.
  527. .br   
  528. Hyperbel-Tangensfunktion
  529. :lm margin=66.
  530. :link reftype=hd res=10007
  531.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  532.   group=2.tanh(x)
  533. :elink.
  534. :lm margin=4.
  535. .br
  536. Hyperbel-Cotangensfunktion
  537. :lm margin=66.
  538. :link reftype=hd res=10008
  539.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  540.   group=2.coth(x)
  541. :elink.
  542. :lm margin=1.
  543. :p.
  544. Bei den folgenden vieldeutigen inversen trigonometrischen und hyperbolischen Funktionen, den Umkehrfunktionen der 
  545. trigonometrische Funktionen und der Hyperbelfunktionen, wird stets der sogenannte Hauptwert berechnet. 
  546. :lm margin=4.
  547. :p.
  548. Arcus-Sinusfunktion
  549. :lm margin=66.
  550. :link reftype=hd res=10009
  551.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  552.   group=2.arcsin(x)
  553. :elink.
  554. :lm margin=4.
  555. .br
  556. Arcus-Cosinusfunktion
  557. :lm margin=66.
  558. :link reftype=hd res=10010
  559.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  560.   group=2.arccos(x)
  561. :elink.
  562. :lm margin=4.
  563. .br
  564. Arcus-Tangensfunktion
  565. :lm margin=66.
  566. :link reftype=hd res=10011
  567.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  568.   group=2.arctan(x)
  569. :elink.
  570. :lm margin=4.
  571. .br
  572. Arcus-Cotangensfunktion
  573. :lm margin=66.
  574. :link reftype=hd res=10012
  575.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  576.   group=2.arccot(x)
  577. :elink.
  578. :lm margin=4.
  579. .br
  580. Area-Sinusfunktion
  581. :lm margin=66.
  582. :link reftype=hd res=10013
  583.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  584.   group=2.arsinh(x)
  585. :elink.
  586. :lm margin=4.
  587. .br
  588. Area-Cosinusfunktion
  589. :lm margin=66.
  590. :link reftype=hd res=10014
  591.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  592.   group=2.arcosh(x)
  593. :elink.
  594. :lm margin=4.
  595. .br
  596. Area-Tangensfunktion
  597. :lm margin=66.
  598. :link reftype=hd res=10015
  599.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  600.   group=2.artanh(x)
  601. :elink.
  602. :lm margin=4.
  603. .br
  604. Area-Cotangensfunktion
  605. :lm margin=66.
  606. :link reftype=hd res=10016
  607.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  608.   group=2.arcoth(x)
  609. :elink.
  610. :lm margin=1.
  611. :p.  
  612. Weitere wichtige elementare und hoehere mathematische Funktionen 
  613. :lm margin=4.
  614. :p.
  615. Exponentialfunktion
  616. :lm margin=66.
  617. :link reftype=hd res=10017
  618.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  619.   group=2.exp(x)
  620. :elink.
  621. :lm margin=4.
  622. .br
  623. Potenzfunktion
  624. :lm margin=66.
  625. :link reftype=hd res=10018
  626.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  627.   group=2.pot(x,y)
  628. :elink.
  629. :lm margin=4.
  630. .br
  631. Funktion 2. Wurzel
  632. :lm margin=66.
  633. :link reftype=hd res=10019
  634.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  635.   group=2.sqrt(x)
  636. :elink.
  637. :lm margin=4.
  638. .br
  639. Funktion 3. Wurzel
  640. :lm margin=66.
  641. :link reftype=hd res=10020
  642.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  643.   group=2.root3(x)
  644. :elink.
  645. :lm margin=4.
  646. .br
  647. Logarithmus zur Basis e
  648. :lm margin=66.
  649. :link reftype=hd res=10021
  650.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  651.   group=2.ln(x)
  652. :elink.
  653. :lm margin=4.
  654. .br
  655. Logarithmus zur Basis 10
  656. :lm margin=66.
  657. :link reftype=hd res=10022
  658.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  659.   group=2.log(x)
  660. :elink.
  661. :lm margin=4.
  662. .br
  663. Logarithmus zur Basis 2
  664. :lm margin=66.
  665. :link reftype=hd res=10023
  666.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  667.   group=2.ld(x)
  668. :elink.
  669. :lm margin=4.
  670. .br
  671. Fakultätsfunktion
  672. :lm margin=66.
  673. :link reftype=hd res=10024
  674.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  675.   group=2.n!(u)
  676. :elink.
  677. :lm margin=4.
  678. .br
  679. Fakultätsfunktion
  680. :lm margin=66.
  681. :link reftype=hd res=10025
  682.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  683.   group=2.n!!(u)
  684. :elink.
  685. :lm margin=4.
  686. .br
  687. Gammafunktion
  688. :lm margin=66.
  689. :link reftype=hd res=10026
  690.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  691.   group=2.ga(x)
  692. :elink.
  693. :lm margin=4.
  694. .br
  695. Binomialkoeffizient
  696. :lm margin=66.
  697. :link reftype=hd res=10027
  698.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  699.   group=2.bin(u,v)
  700. :elink.
  701. :lm margin=4.
  702. .br
  703. Gaußsche Fehlerfunktion φ(x)
  704. :lm margin=66.
  705. :link reftype=hd res=10028
  706.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  707.   group=2.phi(x)
  708. :elink.
  709. :lm margin=4.
  710. .br
  711. Fehlerfunktion p_(x) = (1 + φ(x))/2
  712. :lm margin=66.
  713. :link reftype=hd res=10029
  714.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  715.   group=2.p_(x)
  716. :elink.
  717. :lm margin=4.
  718. .br
  719. Fehlerfunktion q_(x) = (1 - φ(x))/2
  720. :lm margin=66.
  721. :link reftype=hd res=10030
  722.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  723.   group=2.q_(x)
  724. :elink.
  725. :lm margin=4.
  726. .br
  727. Errorfunktion
  728. :lm margin=66.
  729. :link reftype=hd res=10031
  730.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  731.   group=2.erf(x)
  732. :elink.
  733. :lm margin=4.
  734. .br
  735. Komplementäre Errorfunktion
  736. :lm margin=66.
  737. :link reftype=hd res=10032
  738.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  739.   group=2.erfc(x)
  740. :elink.
  741. :lm margin=4.
  742. .br
  743. Modulofunktion
  744. :lm margin=66.
  745. :link reftype=hd res=10033
  746.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  747.   group=2.mod(u,v)
  748. :elink.
  749. :lm margin=4.
  750. .br
  751. Kleinster gemeinsamer Teiler
  752. :lm margin=66.
  753. :link reftype=hd res=10034
  754.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  755.   group=2.gcd(u,v)
  756. :elink.
  757. :lm margin=1.
  758. :p.
  759. Ist das Ergebnis einer Funktion mit einem reellen Argument eine komplexe oder rein imaginäre Zahl, wie zum Beispiel 
  760. bei der Funktion sqrt(x) für Werte  x < 0, so wird eine diesbezügliche Meldung ausgegeben. 
  761. :p.
  762. Über die mit diesen mathematischen Funktionen erzielbare maximale numerische Genauigkeit siehe den Abschnitt ==> 
  763. :link reftype=hd res=6000.Numerische Genauigkeit:elink.
  764. :p.:p.:p.:p. 
  765. :color fc=darkgreen.
  766. :font facename='Tms Rmn' size=36x32.
  767. :lm margin=10.
  768. Literatur
  769. :color fc=default bc=default.
  770. :font facename=default size=0x0.
  771. :lm margin=1.
  772. :p.:p.  
  773. [1]  
  774. :lm margin=10.   
  775. I. S. GRADSHTEYN and I. M. RYZHIK 
  776. .br
  777. :color fc=PaleGray bc=PaleGray.
  778. &BOX.
  779. :color fc=Black bc=PaleGray.
  780. Table of Integrals, Series and Products
  781. :color fc=PaleGray bc=PaleGray.
  782. &BOX. 
  783. :color fc=default bc=default.
  784. .br
  785. ACADEMIC PRESS New York and London 1965 
  786. :lm margin=1.
  787. :p.  
  788. [2]     
  789. :lm margin=10.
  790. Milton Abramowitz &. Irene A. Stegun 
  791. .br
  792. :color fc=PaleGray bc=PaleGray.
  793. &BOX.
  794. :color fc=Black bc=PaleGray.
  795. Handbook of Mathematical Functions
  796. :color fc=PaleGray bc=PaleGray.
  797. &BOX.
  798. :color fc=default bc=default.   
  799. .br
  800. DOVER PUBLICATIONS, INC., NEW YORK 1965 
  801. :lm margin=1.
  802. :p.
  803. [3] 
  804. :lm margin=10.
  805. Milton Abramowitz &. Irene A. Stegun 
  806. .br
  807. :color fc=PaleGray bc=PaleGray.
  808. &BOX.
  809. :color fc=Black bc=PaleGray.
  810. Handbook oh Mathematical Functions
  811. :color fc=PaleGray bc=PaleGray.
  812. &BOX.
  813. :color fc=default bc=default.   
  814. .br
  815. DOVER PUBLICATIONS, INC., NEW YORK 1970 
  816. :lm margin=1.
  817. :p.
  818. [4] 
  819. :lm margin=10.
  820. JEROME SPANIER and KEITH B. OLDHAM  
  821. .br
  822. :color fc=PaleGray bc=PaleGray.
  823. &BOX.
  824. :color fc=Black bc=PaleGray.
  825. AN ATLAS OF FUNCTIONS
  826. :color fc=PaleGray bc=PaleGray.
  827. &BOX.
  828. :color fc=default bc=default.   
  829. .br
  830. HEMISPHERE PUBLISHING CORPORATION, Washington New York London 1987; 
  831. .br
  832. ebenfalls: Springer-Verlag Berlin 
  833. :lm margin=1.
  834. :p.
  835. [5] 
  836. :lm margin=10.
  837. I. N. BRONSTEIN und K. A. SEMENDJAJEW  
  838. .br
  839. :color fc=PaleGray bc=PaleGray.
  840. &BOX.
  841. :color fc=Black bc=PaleGray.
  842. TASCHENBUCH DER MATHEMATIK
  843. :color fc=PaleGray bc=PaleGray.
  844. &BOX.
  845. :color fc=default bc=default.   
  846. .br
  847. Verlag Harri Deutsch, Thun und Frankfurt, 19. Auflage 1980 
  848. :lm margin=1.
  849. :p.
  850. [6] 
  851. :lm margin=10.
  852. P. H. Müller 
  853. .br
  854. :color fc=PaleGray bc=PaleGray.
  855. &BOX.
  856. :color fc=Black bc=PaleGray.
  857. Lexikon der Stochastik
  858. :color fc=PaleGray bc=PaleGray.
  859. &BOX.
  860. :color fc=default bc=default.   
  861. .br
  862. Akademie-Verlag GmbH, Berlin 1991, 5. Auflage 
  863. :lm margin=1.
  864. :p.
  865. [7] 
  866. :lm margin=10.
  867. Robert Sedgewick 
  868. .br
  869. :color fc=PaleGray bc=PaleGray.
  870. &BOX.
  871. :color fc=Black bc=PaleGray.
  872. Algorithmen in C
  873. :color fc=PaleGray bc=PaleGray.
  874. &BOX.
  875. :color fc=default bc=default.   
  876. .br
  877. Addison-Wesley (Deutschland) GmbH, 1. Auflage 1992 
  878. :lm margin=1.
  879. :p.:p.
  880. .* Ende
  881.  
  882. :h1 res=5000.Mathematische Konstanten
  883. :p.
  884. Die "Kernfunktion" kzr.CMD kann die folgenden elementaren mathematischen Konstanten verwenden: 
  885. :lm margin=4.
  886. :p.
  887. π [1]
  888. :lm margin=68.
  889. :link reftype=hd res=10035
  890.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  891.   group=2.pi()
  892. :elink.
  893. .br
  894. :lm margin=4.
  895. .br
  896. :lm margin=68.
  897. :link reftype=hd res=10036
  898.   vpx=0% vpy=0% vpcx=50% vpcy=100% 
  899.   group=2.e()
  900. :elink.
  901. :lm margin=1.
  902. :p.:p.
  903. :color fc=darkgreen.
  904. :font facename='Tms Rmn' size=36x32.
  905. Literatur oder sonstige Quellen
  906. :color fc=default bc=default.
  907. :font facename=default size=0x0.
  908. :p.  
  909. [1]
  910. :lm margin=6.
  911. John Brock 
  912. .br
  913. :color fc=PaleGray bc=PaleGray.
  914. &BOX.
  915. :color fc=Black bc=PaleGray.
  916. RXXMATH v1.3 -- Arbitrary Precision Math Functions for REXX 1996
  917. :color fc=PaleGray bc=PaleGray.
  918. &BOX.
  919. :color fc=default bc=default.   
  920. .br
  921. Bei verschiedenen Internet-Adressen
  922. :lm margin=1.
  923. :p.
  924.  
  925.  
  926.  
  927.  
  928.  
  929.             
  930.             
  931.  
  932.  
  933.  
  934. .* Ende
  935.  
  936. :h1 res=6000.Numerische Genauigkeit
  937. :p.
  938. Ohne Verwendung der "externen" mathematischen Funktionen ist die Rechengenauigkeit der "Kernfunktion"  kzr.CMD  
  939. fast beliebig hoch. 
  940. .br
  941. Dabei ist aber zu beachten, daß die Rechenzeit mit steigender Anzahl  ND  der für den Rechenvorgang verwendeten 
  942. Dezimalstellen überproportional zunimmt. 
  943. .br
  944. Man sollte daher sorgfältig abschätzen, wieviele Dezimalstellen für eine bestimmte Aufgabe erforderlich sind. 
  945. :p.
  946. Im Gegensatz dazu können einige der für  kzr.CMD  verfügbaren mathematischen Funktionen (==>
  947. :link reftype=hd res=4000 group=2.Mathematische Funktionen:elink.)
  948. nur mit einer begrenzten numerischen Genauigkeit berechnet werden. 
  949.  
  950. :p.:p.:p.
  951. :color fc=darkgreen.
  952. :font facename='Tms Rmn' size=36x32.
  953. Wichtig:
  954. :color fc=default bc=default.
  955. :font facename=default size=0x0.
  956. :lm Margin=6.
  957. :p.
  958. Bei Verwendung der "externen" mathematischen Funktionen wird bei Überschreitung der Rechengenauigkeit durch 
  959. ein akustisches Signal und eine zusätzliche Anzeige darauf aufmerksam gemacht. Außerdem wird die von der 
  960. Eingabe-Kette (Definition folgt.) verlangte Gesamt-Rechengenauigkeit, wenn sie höher als die der aufgerufenen 
  961. mathematischen Funktionen ist, (mit Hilfe der von kzr.CMD intern aufgerufenen MinNDA.CMD) reduziert und von 
  962. derjenigen der aufgerufenen mathematischen Funktionen bestimmt, welche die geringste maximale 
  963. Rechengenauigkeit liefern kann. 
  964. :p.
  965. Ein Beispiel: 
  966. :p.
  967. Die Eingabe-Kette sei 
  968. :lm margin=32.
  969. .br
  970. kzr 56, 1/3 + phi(0.3) 
  971. :lm margin=6.
  972. :p.
  973. Der Bruch  1/3  könnte mit der geforderten Gesamt-Rechengenauigkeit von 56 Dezimalstellen berechnet und 
  974. ausgegeben werden. 
  975. .br
  976. Die Funktion phi(x) aber kann mit nur maximal 50 Dezimalstellen berechnet werden. 
  977. .br
  978. Die Gesamt-Rechengenauigkeit der in dieser Eingabe-Kette aufgerufenen mathematischen Funktionen entspricht 
  979. also maximal 50 Dezimalstellen. 
  980. .br
  981. Daher wird auch das Ergebnis mit maximal 50 Dezimalstellen ausgegeben. 
  982. .br
  983. Es wird somit keine höhere Gesamt-Rechengenauigkeit vorgetäuscht als tatsächlich vorhanden war. 
  984. :lm margin=1.
  985. .br
  986. :p.:p.:p.
  987. :color fc=darkgreen.
  988. :font facename='Tms Rmn' size=36x32.
  989. Bitte folgendes beachten:
  990. :color fc=default bc=default.
  991. :font facename=default size=0x0.
  992. :lm margin=5. 
  993. :p. 
  994. Die  Schwierigkeit, bei einer Differenz zweier nahezu gleich großer Zahlen ein genügend genaues Ergebnis zu 
  995. erreichen, ist kein spezielles Problem von  kzr.CMD,  sondern ein allgemeines Problem der numerischen 
  996. Mathematik.   
  997. :p.
  998. Ein Beispiel für die Schwierigkeit, bei einer Differenz zweier nahezu gleich großer Zahlen ein genügend genaues 
  999. Ergebnis zu erreichen, findet man im Abschnitt 
  1000. &odq.:link reftype=hd res=7000 group=2.Bekannte Fehlermöglichkeiten:elink.&odq.
  1001. :p.:p.
  1002. .* Ende
  1003.  
  1004. :h1 res=7000.Bekannte Fehlermöglichkeiten
  1005. :p.
  1006. 1.
  1007. :lm margin=5.
  1008. Wenn man aus irgendwelchen Gründen eine laufende Rechenprozedur abbricht, zum Beispiel mit der 
  1009. Tastenkombination  Strg+c,  wird die Datei  NDZahl.DAT  nicht gelöscht, was bei einem normalen Ablauf von  
  1010. kzr.CMD  immer geschieht. 
  1011. .br
  1012. Die Datei  NDZahl.DAT  muß dann von Hand gelöscht werden, denn es könnte sein, daß man (versehentlich ?) eine 
  1013. zu große Zahl ND für die Anzahl der zu verwendenden Dezimalstellen eingegeben hatte, was die Geduld des 
  1014. Anwenders so überforderte, daß er den Rechenvorgang abgebrochen hatte. 
  1015. Ist die Datei  NDZahl.DAT  nicht gelöscht, so hat sie diese zu große Zahl ND gespeichert und übergibt sie bei 
  1016. dem erneuten Rechenvorgang der dabei aufgerufenen Funktion, was den erneuten Rechenvorgang wieder mit einer 
  1017. zu hohen Zahl ND für die zu verwendenden Dezimalstellen belastet. 
  1018. :p.
  1019. Zur Fehlerdiagnose hilft eine einfache Eingabe, 
  1020. .br
  1021. zum Beispiel: 
  1022. .br           
  1023. :lm margin=30.kzr , 1+1
  1024. :lm margin=5. 
  1025. :p.
  1026. Diese einfache Rechenprozedur wird dann, ohne daß man eine bestimmte Zahl ND für die Anzahl der zu 
  1027. verwendenden Dezimalstellen eingegeben hat, mit der vorher (versehentlich ?) eingegebenen Zahl ND durchgeführt, 
  1028. was aber ohne Zwischenfall geschieht. Da kzr.CMD in der Zeile oberhalb des numerischen Ergebnisses  2  die 
  1029. verwendete Zahl ND anzeigt, kann man erkennen, ob dort bei dieser Berechnung  1+1  eine unvernünftig große Zahl 
  1030. ND verwendet worden ist. (Diese Zahl ND ist dann in der Datei  NDZahl.DAT  gespeichert.) 
  1031. Ist dies der Fall, so muß man die Datei  NDZahl.DAT  löschen, womit der Fehler beseitigt ist. 
  1032. :lm margin=1.
  1033. :p.:p.
  1034. 2.
  1035. :lm margin=5.
  1036. :color fc=PaleGray bc=PaleGray.
  1037. &BOX.
  1038. :color fc=Black bc=PaleGray.
  1039. Bei Rechenaufgaben, in denen eine Differenz
  1040. :color fc=PaleGray bc=PaleGray.&BOX.
  1041. .br
  1042. &BOX.
  1043. :color fc=Black bc=PaleGray.
  1044. zweier nahezu gleich großer Zahlen auftritt,
  1045. :color fc=PaleGray bc=PaleGray.
  1046. &BOX.&BOX.
  1047. .br
  1048. &BOX.
  1049. :color fc=Black bc=PaleGray.
  1050. ist besondere Vorsicht geboten !
  1051. :color fc=PaleGray bc=PaleGray.
  1052. &BOX.&BOX.&BOX.&BOX.&BOX.&BOX.&BOX.&BOX.&BOX.&BOX.&BOX.
  1053. :color fc=default bc=default.
  1054. :p.
  1055. Beispiel: 
  1056. :p.
  1057. Die bekannte Funktional-Beziehung 
  1058. :lm margin=44.
  1059. :p.
  1060. cosh²(x) - sinh²(x) = 1 
  1061. :lm margin=5.
  1062. :p.
  1063. kann, wenn man sie zum Beispiel als die aktuelle Rechenaufgabe mit der Eingabe-Kette 
  1064. :lm margin=20.
  1065. :p.
  1066. kzr 48, cosh(x)**2 - sinh(x)**2;  x=3 
  1067. :lm margin=5.
  1068. :p.
  1069. auf der OS/2-Kommandozeile startet, je nach Größe der Variablen  x  ungenaue, also von der ganzen Zahl  1  
  1070. mehr oder weniger abweichende Ergebnisse liefern. 
  1071. :p.
  1072. Dies liegt daran, daß die Funktionswerte 
  1073. :lm margin=12.
  1074. :p.
  1075. cosh(x) = (exp(+x) + exp(-x))/2 
  1076. :lm margin=5.
  1077. .br
  1078. und       
  1079. :lm margin=12.
  1080. .br
  1081. sinh(x) = (exp(+x) - exp(-x))/2 
  1082. :lm margin=5.
  1083. :p.
  1084. sich umso weniger von einander unterscheiden, je größer die Variable  x  ist. 
  1085. :p.
  1086. Man kann durch Erhöhen der Zahl  ND, welche als die erste ganze Zahl unmittelbar nach dem String  kzr  folgt und 
  1087. die Zahl der für die Berechnung zu verwendenden Dezimalstellen festlegt, vergrößern und so die numerische 
  1088. Genauigkeit erhöhen. 
  1089. .br
  1090. Da aber die Zahl  ND  der zu verwendenden Dezimalstellen sich nicht beliebig vergrößern läßt und überdies die 
  1091. Rechenzeit überprortional zur Vergrößerung von  ND  ansteigen würde, ist die hier als Beispiel gewählte 
  1092. Funktional-Beziehung nicht geeignet, zum Beispiel die Richtigkeit der numerischen Ergebnisse der Funktionen  
  1093. cosh(x)  und  sinh(x)  zu überprüfen. 
  1094. .br
  1095. (Ein zufällig richtiges Ergebnis, nämlich die ganze Zahl  1  bei einer solchen Prüfung, wäre notwendig aber nicht 
  1096. hinreichend.) 
  1097. :p.
  1098. .* Ende
  1099.  
  1100. :h1 res=8000.d2x, x2d, b2d, d2b, b2x, x2b
  1101. :color fc=darkgreen.
  1102. :font facename='Tms Rmn' size=36x32.
  1103. .ce Umwandlungen von Zahlen
  1104. .ce zwischen den Darstellungsformen
  1105. .ce Dezimal, Hexadezimal und Binär
  1106. :color fc=default bc=default.
  1107. :font facename=default size=0x0.
  1108. :p.:p.:p.:p.
  1109. Die Funktionen D2X.CMD, X2D.CMD, D2B.CMD, B2D.CMD, B2X.CMD u d X2B.CMD 
  1110. estatten im direkten Aufruf von der OS/2-Kommandozeile die Umwandlung 
  1111. :lm margin=5.
  1112. :p.
  1113. von Dezimalzahlen in Hexadezimalzahlen (D2X.CMD), 
  1114. .br
  1115. von Hexadezimalzahlen in Dezimalzahlen (X2D.CMD), 
  1116. :p.
  1117. von Dezimalzahlen in Binärzahlen (D2B.CMD), 
  1118. .br
  1119. von Binärzahlen in Dezimalzahlen (B2D.CMD), 
  1120. :p.
  1121. von Binärzahlen in Hexadezimalzahlen (B2X.CMD) und 
  1122. .br
  1123. von Hexadezimalzahlen in Binärzahlen (X2B.CMD). 
  1124. :lm margin=1.
  1125. :p.
  1126. Alle sechs Funktionen sind sowohl auf Dezimalbrüche als auch auf deren Spezialfälle "ganzzahliger Anteil" und 
  1127. Mantisse separat anwendbar. 
  1128. :p.
  1129. :color fc=darkgreen.
  1130. :font facename='Tms Rmn' size=28x18.
  1131. .ce 1. Die Funktionen
  1132. .ce D2X.CMD, X2D.CMD, D2B.CMD und B2D.CMD.
  1133. :color fc=default bc=default.
  1134. :font facename=default size=0x0.  
  1135. :color fc=Red bc=default.
  1136. :p.:p.
  1137. Für die Umwandlung ganzer Zahlen sind die Funktionen D2X.CMD, X2D.CMD, D2B.CMD und B2D.CMD exakt, da sie 
  1138. aufgrund einer diesbezüglichen, von der auf der OS/2-Kommandozeile eingegebenen und umzuwandelnden Zahl 
  1139. abgeleiteten Anweisung in den externen Prozeduren genügend Stellen für arithmetische Operationen zur Verfügung 
  1140. haben.
  1141. :color fc=default bc=default.
  1142. :p.  
  1143. Hierzu ein Beispiel: 
  1144. :lm margin=5.
  1145. :p.
  1146. Die Eingabe der Dezimalzahl             
  1147. :lm margin=56.
  1148. .br
  1149. 16696875 
  1150. :lm margin=5.
  1151. .br
  1152. mit der Eingabe-Kette              
  1153. :lm margin=56.
  1154. .br            
  1155. D2X 16696875 
  1156. :lm margin=5.
  1157. .br
  1158. erzeugt den String            
  1159. :lm margin=56.
  1160. .br
  1161. FEC62B 
  1162. :lm margin=5.
  1163. .br
  1164. als die entsprechende Hexadezimalzahl. 
  1165. :lm margin=1.
  1166. :p.
  1167. .br
  1168. Die Rück-Umwandlung ist ebenso einfach: 
  1169. :lm margin=5.
  1170. :p.
  1171. Die Eingabe der Hexadezimalzahl         
  1172. :lm margin=56.
  1173. .br
  1174. FEC62B 
  1175. :lm margin=5.
  1176. .br      
  1177. mit der Eingabe-Kette              
  1178. :lm margin=56.
  1179. .br
  1180. X2D FEC62B 
  1181. :lm margin=5.
  1182. .br
  1183. erzeugt den String            
  1184. :lm margin=56.
  1185. .br
  1186. 16696875 
  1187. :lm margin=5.
  1188. .br
  1189. als die entsprechende Dezimalzahl. 
  1190. :lm margin=1.
  1191. :p.
  1192. .br
  1193. :color fc=Red bc=default.
  1194. Dagegen sind Umwandlungen von Dezimalbrüchen nur in Ausnahmefällen exakt.
  1195. .br 
  1196. Der ganzzahlige Anteil eines Dezimalbruchs wird jeweils exakt umgewandelt; 
  1197. .br
  1198. für die Mantisse ist im allgemeinen Fall nur eine Näherung erzielbar, die aber umso genauer ist,
  1199. je mehr Stellen für die dazu erforderlichen arithmetischen Operationen verfügbar sind. 
  1200. :color fc=default bc=default.
  1201. :p.  
  1202. Die Stellengenauigkeit für die arithmetischen Operationen für die Umwandlung von Mantissen kann über die 
  1203. OS/2-Kommandozeile eingestellt werden. 
  1204. :p.
  1205. Beispiel 1: 
  1206. :lm margin=5.
  1207. :p.
  1208. Die Eingabe der Dezimalzahl             
  1209. :lm margin=56.
  1210. .br
  1211. 166.96875 
  1212. :lm margin=5.
  1213. .br
  1214. mit der Eingabe-Kette         
  1215. :lm margin=56.
  1216. .br
  1217. D2X 56, 166.96875 
  1218. :lm margin=5.
  1219. .br
  1220. erzeugt den String            
  1221. :lm margin=56.
  1222. .br
  1223. A6.F8 
  1224. :lm margin=5.
  1225. .br
  1226. als die entsprechende Hexadezimalzahl. 
  1227. :p.
  1228. Bei den Funktionen  D2X.CMD  und  X2D.CMD  bedeutet die positive ganze Zahl 56 zwischen den Teilstrings   D2X  
  1229.  oder  X2D  der Eingabe-Kette einerseits und dem für die Umwandlung von Dezimalbrüchen in jedem Fall 
  1230. verbindlichen Komma andererseits, daß für die Umwandlung der Mantisse intern bis zu 56 Stellen für die zur 
  1231. Umwandlung benötigten arithmetischen Operationen aufgewender werden können. 
  1232. :p.
  1233. In diesem Fall ist zu erkennen, daß für die Umwandlung der dezimalen Mantisse  .96875    in die hexadezimale 
  1234. Mantisse  .F8  nur sehr wenige Stellen erforderlich waren; die Umrechnung gelang offenbar exakt. Dies kann 
  1235. natürlich nachgeprüft werden. 
  1236. :p.
  1237. Die Eingabe der Hexadezimalzahl         
  1238. :lm margin=56.
  1239. .br
  1240. A6.F8 
  1241. :lm margin=5.
  1242. .br
  1243. mit der Eingabe-Kette         
  1244. :lm margin=56.
  1245. .br
  1246. X2D 56, A6.F8 
  1247. :lm margin=5.
  1248. .br
  1249. erzeugt den String            
  1250. :lm margin=56.
  1251. .br
  1252. 166.96875 
  1253. :lm margin=5.
  1254. .br
  1255. als die entsprechende Dezimalzahl. 
  1256. :p.
  1257. Da auch hier keine 56 Dezimalstellen ausgegeben wurden, ist es in hohem Maße wahrscheinlich, daß die 
  1258. Umrechnung in beiden Fällen exakt geschehen konnte. 
  1259. :lm margin=1.
  1260. :p.
  1261. .br
  1262. Ganz anders ist das Ergebnis einer solchen Umrechnung in den sehr häufig auftretenden Fällen, in denen nur eine 
  1263. Näherung erreicht werden kann. Hierzu das folgende; 
  1264. :p.
  1265. Beispiel 2: 
  1266. :lm margin=5.
  1267. :p.
  1268. Die Eingabe der Dezimalzahl             
  1269. :lm margin=56.
  1270. .br
  1271. 15.23 
  1272. :lm margin=5.
  1273. .br
  1274. mit der Eingabe-Kette         
  1275. :lm margin=46.
  1276. .br
  1277. D2X 32, 15.23 
  1278. :lm margin=5.
  1279. .br
  1280. erzeugt den String            
  1281. :lm margin=46.
  1282. .br
  1283. F.3AE147AE147AE147AE147AE147AE147 
  1284. :lm margin=5.
  1285. :p.
  1286. als die entsprechende Hexadezimalzahl. 
  1287. :p.
  1288. Zerlegt man in Gedanken den String für diese Hexadezimalzahl in de folgenden Weise 
  1289. :lm margin=46.
  1290. :p.
  1291. F.3 AE147 AE147 AE147 AE147 AE147 AE147, 
  1292. :lm margin=5.
  1293. :p.
  1294. so erkennt man an der 6-fachen periodischen Aneinanderreihung des Teilstrings  AE147, daß die Hexadezimale 
  1295. Darstellung der Dezimalzahl  15.23  nur eine Näherung sein kann. 
  1296. :p.
  1297. Die Eingabe der Hexadezimalzahl         
  1298. :lm margin=46.
  1299. .br
  1300. F.3AE147AE147AE147AE147AE147AE147 
  1301. :lm margin=5.
  1302. .br
  1303. mit der Eingabe-Kette         
  1304. :lm margin=46.
  1305. .br
  1306. X2D 32, F.3AE147AE147AE147AE147AE147AE147 
  1307. :lm margin=5.
  1308. .br
  1309. erzeugt den String            
  1310. :lm margin=46.
  1311. .br
  1312. 15.23 
  1313. :lm margin=5.
  1314. .br
  1315. als die entsprechende Dezimalzahl. 
  1316. :lm margin=1.
  1317. :p.:p.
  1318. Noch augenscheinlicher ist das folgende 
  1319. :p.
  1320. Beispiel 3: 
  1321. :lm margin=5.
  1322. :p.
  1323. Die Eingabe der Dezimalzahl             
  1324. :lm margin=46.
  1325. .br
  1326. 12.4
  1327. :lm margin=5. 
  1328. .br
  1329. mit der Eingabe-Kette         
  1330. :lm margin=46.
  1331. .br
  1332. D2X 32, 12.4 
  1333. :lm margin=5.
  1334. .br
  1335. erzeugt den String            
  1336. :lm margin=46.
  1337. .br
  1338. C.6666666666666666666666666666666 
  1339. :lm margin=5.
  1340. :p.
  1341. als die entsprechende Hexadezimalzahl. 
  1342. :p.
  1343. Man erkennt man an der periodischen Aneinanderreihung der Ziffer 6, daß die Hexadezimale Darstellung der 
  1344. Dezimalzahl  12.4  nur eine Näherung sein kann. 
  1345. :lm margin=5.
  1346. :p.
  1347. Die Eingabe der Hexadezimalzahl         
  1348. :lm margin=46.
  1349. .br
  1350. C.6666666666666666666666666666666 
  1351. :lm margin=5.
  1352. .br
  1353. mit der Eingabe-Kette         
  1354. :lm margin=46.
  1355. .br
  1356. X2D 32, C.6666666666666666666666666666666 
  1357. :lm margin=5.
  1358. .br
  1359. erzeugt den String            
  1360. :lm margin=46.
  1361. .br
  1362. 12.4 
  1363. :lm margin=5.
  1364. .br
  1365. als die entsprechende Dezimalzahl. 
  1366. :lm margin=1.
  1367. :p.:p.
  1368. Es ist das Ergebnis einer Formatierungsanweisung innerhalb von  X2D.CMD, daß als Rück- Umwandlungs-Ergebnis die 
  1369. Dezimalzahl  12.4  wieder exakt herausgekommen ist. 
  1370. .br
  1371. Voraussetzung dafür ist allerdings, daß bei der Rück-Umwandlung  Hexadezimal --> Dezimal  mit  X2D.CMD  nicht 
  1372. mehr Stellen für die arithmetischen Operationen in der Kommandozeilen-Eingabe-Kette vorgegeben werden, als es bei 
  1373. der Umwandlung Dezimal --> Hexadezimal  mit  X2D.CMD  der Fall war, nämlich 32 Stellen.
  1374. .br
  1375. Würde man für die Rück-Umwandlung Hexadezimal --> Dezimal weniger als 32 Stellen in der Eingabe-Kette vorgeben, 
  1376. so bleibt das Ergebnis  12.4.
  1377. .br
  1378. Würde man allerdings für die Rück-Umwandlung Hexadezimal --> Dezimal mehr als 32 
  1379. -- beispielsweise 38 -- Stellen in der Eingabe-Kette vorgeben, so bleibt das Ergebnis            
  1380. :lm margin=46.
  1381. :p.
  1382. 12.39999999999999999999999999999999999998 
  1383. :lm margin=1.
  1384. .br
  1385. eine Näherung. 
  1386. :p.:p.
  1387. Bei der Umwandlung  Hexadezimal --> Dezimal  mit  X2D.CMD  und der anschließenden Rück-Umwandlung  Dezimal 
  1388. --> Hexadezimal  mit  D2X.CMD  muß ein wenig anders verfahren werden. Hierzu das folgende 
  1389. :p.
  1390. Beispiel 4: 
  1391. :lm margin=5.
  1392. :p.
  1393. Die Eingabe der Hexadezimalzahl         
  1394. :lm margin=46.
  1395. .br
  1396. F1.DD6345F 
  1397. :lm margin=5.
  1398. .br
  1399. mit der Eingabe-Kette         
  1400. :lm margin=46.
  1401. .br
  1402. X2D 24, F1.DD6345F 
  1403. :lm margin=5.
  1404. .br
  1405. erzeugt den String            
  1406. :lm margin=46.
  1407. .br
  1408. 241.864796038717031478881836 
  1409. :lm margin=5.
  1410. .br
  1411. als die entsprechende Dezimalzahl. 
  1412. :p.:p.
  1413. Die Eingabe der Dezimalzahl             
  1414. :lm margin=46.
  1415. .br
  1416. 241.864796038717031478881836 
  1417. :lm margin=5.
  1418. .br
  1419. mit der Eingabe-Kette         
  1420. :lm margin=46.
  1421. .br
  1422. D2X 24, 241.864796038717031478881836 
  1423. :lm margin=5.
  1424. .br
  1425. erzeugt den String            
  1426. :lm margin=46.
  1427. .br
  1428. F1.DD6345F0000000000000135 
  1429. :lm margin=5.
  1430. :p.
  1431. als die entsprechende Hexadezimalzahl, die, wie man sieht, natürlich nur eine Näherung ist. 
  1432. :p.
  1433. Würde man wie im vorhergehende Fall vorgehen, daß man nämlich bei der Rück-Umwandlung  Dezimal --> 
  1434. Hexadezimal  mit  D2X.CMD  die Zahl der Stellen für die arithmetischen Operationen erhöht, also zum Beispiel von 
  1435. 24 auf 30, so ist das Ergebnis           
  1436. :lm margin=46.
  1437. .br
  1438. F1.DD6345F00000000000001357C29 
  1439. :lm margin=5.
  1440. .br
  1441. auch nicht genauer. 
  1442. :p.
  1443. Es liegt also die Vermutung nahe, daß schon das Ergebnis 
  1444. :lm margin=46.
  1445. :p.
  1446. 241.864796038717031478881836 
  1447. :lm margin=5.
  1448. :p.
  1449. der Umwandlung  Hexadezimal --> Dezimal eine Näherung gewesen ist. 
  1450. :p.
  1451. Es ist jetzt zweckmäßig, die Zahl der Stellen für die arithmetischen Operationen bei der Umwandlung  
  1452. Hexadezimal --> Dezimal  nach und nach zu erhöhen, und zwar so weit, bis die Mantisse der 
  1453. Ergebnis-Dezimalzahl nicht mehr an Stellen zunimmt. Dies ist bei
  1454.  :color fc=Pink bc=default.diesem Beispiel:color fc=default bc=default.
  1455.  einer Umwandlungsaufgabe ab der Zahl 29 der Fall. 
  1456. :lm margin=5.
  1457. :p.
  1458. Die Eingabe der Hexadezimalzahl         
  1459. :lm margin=46.
  1460. .br
  1461. F1.DD6345F 
  1462. :lm margin=5.
  1463. .br
  1464. mit der Eingabe-Kette         
  1465. :lm margin=46.
  1466. .br
  1467. X2D 29, F1.DD6345F 
  1468. :lm margin=5.
  1469. .br
  1470. erzeugt den String            
  1471. :lm margin=46.
  1472. .br
  1473. 241.8647960387170314788818359375 
  1474. :lm margin=5.
  1475. .br
  1476. als die entsprechende Dezimalzahl. 
  1477. :p.:p.
  1478. Die Eingabe der Dezimalzahl             
  1479. :lm margin=46.
  1480. .br
  1481. 241.8647960387170314788818359375 
  1482. :lm margin=5.
  1483. .br
  1484. mit der Eingabe-Kette         
  1485. :lm margin=46.
  1486. .br
  1487. D2X 29, 241.8647960387170314788818359375 
  1488. :lm margin=5.
  1489. .br
  1490. erzeugt den String            
  1491. :lm margin=46.
  1492. .br
  1493. F1.DD6345F 
  1494. :lm margin=5.
  1495. :p.
  1496. als die entsprechende Hexadezimalzahl. 
  1497. :p.:p.
  1498. Wer nur eine Mantisse umwandeln will, darf den (Dezimal)punkt nicht vergessen. 
  1499. .br
  1500. Auch dazu ein Beispiel: 
  1501. :p.
  1502. Die Eingabe der Dezimalzahl             
  1503. :lm margin=46.
  1504. .br
  1505. &per.0765625 
  1506. :lm margin=5.
  1507. .br
  1508. mit der Eingabe-Kette         
  1509. :lm margin=46.
  1510. .br
  1511. D2X 24, .9765625 
  1512. :lm margin=5.
  1513. .br
  1514. erzeugt den String            
  1515. :lm margin=46.
  1516. .br
  1517. &per.FA 
  1518. :lm margin=5.
  1519. .br
  1520. als die entsprechende Mantisse in hexadezimaler Darstellung. 
  1521. :p.:p.
  1522. Die Eingabe der Hexadezimalzahl         
  1523. :lm margin=46.
  1524. .br
  1525. &per.1A3 
  1526. :lm margin=5.
  1527. .br
  1528. mit der Eingabe-Kette         
  1529. :lm margin=46.
  1530. .br
  1531. D2X 24, .1A3 
  1532. :lm margin=5.
  1533. .br
  1534. erzeugt den String            
  1535. :lm margin=46.
  1536. .br
  1537. &per.102294921873 
  1538. :lm margin=5.
  1539. .br
  1540. als die entsprechende Mantisse in dezimaler Darstellung. 
  1541. :p.:p.:p.:p.
  1542. :color fc=darkgreen.
  1543. :font facename='Tms Rmn' size=36x32.
  1544. .ce 2. Die Funktionen
  1545. .ce B2X.CMD und X2B.CMD.
  1546. :color fc=default bc=default.
  1547. :font facename=default size=0x0.
  1548. :lm margin=1.
  1549. :p.      
  1550. Im Gegensatz zu den Funktionen D2X.CMD, X2D.CMD, D2B.CMD und B2D.CMD, die für die Mantisse im allgemeinen 
  1551. Fall eine Näherungsdarstellung und nur in Spezialfällen eine exakte Darstellung liefern, sind die Umwandlungen von 
  1552. :lm margin=10.
  1553. :p.
  1554. von Binärzahlen in Hexadezimalzahlen (B2X.CMD)
  1555. :lm margin=1.
  1556. .br
  1557. und 
  1558. :lm margin=10.
  1559. :p.
  1560. von Hexadezimalzahlen in Binärzahlen (X2B.CMD) 
  1561. :lm margin=1.
  1562. :p.
  1563. stets exakt, und eine Möglichkeit oder gar eine Notwendigkeit, die Anzahl der für die arithmetischen Operationen 
  1564. intern zu verwendenden Stellen vorzugeben, gibt es bei den Funktionen B2X.CMD und X2B.CMD nicht. 
  1565. :p.
  1566. Hier zwei Beispiele dazu: 
  1567. :lm margin=5.
  1568. :p.
  1569. Die Eingabe der Hexadezimalzahl         
  1570. :lm margin=46.
  1571. .br
  1572. CA.B5 
  1573. :lm margin=5.
  1574. .br
  1575. mit der Eingabe-Kette              
  1576. :lm margin=46.
  1577. .br
  1578. X2B CA.B5 
  1579. :lm margin=5.
  1580. .br
  1581. erzeugt den String              
  1582. :lm margin=46.
  1583. .br
  1584. 11001010.10110101 
  1585. :lm margin=5.
  1586. :p.
  1587. als die entsprechende binäre Darstellung. 
  1588. :p.:p.
  1589. Die Eingabe der Binärzahl          
  1590. :lm margin=46.
  1591. .br
  1592. 10100101.10011011 
  1593. :lm margin=5.
  1594. .br
  1595. mit der Eingabe-Kette         
  1596. :lm margin=46.
  1597. .br
  1598. B2X 10100101.10011011 
  1599. :lm margin=5.
  1600. .br
  1601. erzeugt den String              
  1602. :lm margin=46.
  1603. .br
  1604. A5.9B 
  1605. :lm margin=5.
  1606. :p.
  1607. als die entsprechende hexadezimale Darstellung. 
  1608. :p.:p.
  1609. .* Ende
  1610.  
  1611. :h1 res=9000.Primfaktoren
  1612. :color fc=darkgreen.
  1613. :font facename='Tms Rmn' size=36x32.
  1614. .ce Zerlegung einer positiven ganzen Zahl
  1615. .ce in ihre Primfaktoren
  1616. :color fc=default bc=default.
  1617. :font facename=default size=0x0.
  1618. :p.:p.:p.:p.
  1619. Die Funktion
  1620. :color fc=Pink bc=default.
  1621. prim.CMD
  1622. :color fc=default bc=default.
  1623. kann, ohne die "Kernfunktion" kzr.CMD verwenden zu müssen, direkt von der Kommandozeile 
  1624. mit der Eingabe                                  
  1625. :lm margin=24.
  1626. .br
  1627. prim x       
  1628. :lm margin=1.
  1629. :p.
  1630. aufgerufen werden, wobei x eine positive ganze Zahl sein muß. 
  1631. :p.
  1632. Obgleich eine interpretierende Programmiersprache wie REXX für die Zerlegung einer Zahl in ihre Primfaktoren nicht 
  1633. die ideale Programmiersprache ist, kann prim.CMD diese Aufgabe in vielen Fällen bewältigen. 
  1634. Auch ist der Primitiv-Algorithmus, der in dem Versuch besteht, die zu zerlegende ganze Zahl x nacheinander durch die 
  1635. Zahlen 2,3,4,5 ...... bis sqrt(x) zu dividieren, sicher nicht der wirksamste Algorithmus zur Zerlegung einer ganzen 
  1636. positiven Zahl in mögliche Primfaktoren. 
  1637. .br
  1638. Eine der Schwierigkeiten, die bei dem hier verwendeten Algorithmus auftreten, besteht darin, daß bei Primfaktoren, 
  1639. die wesentlich größer als 1.2E+12 sind, die Rechenzeiten unkontrollierbar lang werden. prim.CMD kann auf einem 
  1640. Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend Hauptspeicher
  1641. .br
  1642. die Zahl 
  1643. :lm margin=24.
  1644. :p.
  1645. 1 200 000 000 053 
  1646. :lm margin=1.
  1647. :p.
  1648. als eine Primzahl innerhalb von 59 Sekunden erkennen. 
  1649. :p.:p.:p.
  1650. :color fc=darkgreen.
  1651. :font facename='Tms Rmn' size=36x32.
  1652. .ce Hinweis für die Rechenpraxis:
  1653. :color fc=default bc=default.
  1654. :font facename=default size=0x0.
  1655. :p.  
  1656. Wenn nach etwa 3 Minuten ein Rechenvorgang noch nicht beendet ist, kann die geforderte Zerlegung von
  1657. prim.CMD mit hoher Wahrscheinlichkeit nicht geleistet werden. In einem solchen Falle sollte der
  1658. Rechenvorgang mit der Tastenkombination  :color fc=Pink bc=default.Strg+c:color fc=default bc=default.
  1659.  abgebrochen werden.
  1660. :p.
  1661. prim.CMD erlaubt die Eingabe von Zahlen mit Gliederungsabständen, zum Beispiel zwischen jeweils 3 Ziffern,
  1662. um die Übersichtlichkeit zu erhöhen und so die Wahrscheinlichkeit von Eingabefehlern zu reduzieren. 
  1663. (Beispielsweise wird die Ziffernfolge 1 200 000 000 053 intern durch Entfernen der Zwischenräume in die 
  1664. Ziffernfolge 1200000000053 umgeformt.) 
  1665. :p.:p.
  1666. Die Eingabe-Kette    
  1667. :lm margin=24.
  1668. .br                       
  1669. prim 1 200 000 000 053 
  1670. :lm margin=1.
  1671. :p.
  1672. zum Beispiel erzeugt die folgende Ausgabe: 
  1673. :p.
  1674. :lm margin=5.
  1675. :color fc=Black bc=Black.
  1676. ░                                                                                          ░
  1677. .br
  1678. ░    ░
  1679. :color fc=PaleGray bc=Black.  
  1680. :lm margin=12.    
  1681. Die Zahl, die in Primfaktoren zerlegt werden soll,
  1682. :color fc=Black bc=Black.░                            ▓
  1683. :lm margin=5.
  1684. .br
  1685. ▒    ░   
  1686. :color fc=PaleGray bc=Black.
  1687. ist:           
  1688. :color fc=Black bc=Black.
  1689. ▒                                                                              ▓
  1690. .br
  1691. ░           ░
  1692. :color fc=Cyan bc=Black.
  1693. 1200000000053 
  1694. :color fc=Black bc=Black.
  1695. ░                                                         ░ 
  1696. .br
  1697. ▒                                                                                          ▓
  1698. .br
  1699. ░                                   ░
  1700. :color fc=PaleGray bc=Black.
  1701. Primfaktor    Exponent
  1702. :color fc=Black bc=Black. 
  1703. ░                          ░ 
  1704. .br
  1705. ▒                                                                                          ▓
  1706. .br
  1707. ░                            ░
  1708. :color fc=PaleGray bc=Black.
  1709. 1200000000053            1
  1710. :color fc=Black bc=Black.
  1711. ░                           ░ 
  1712. .br
  1713. ░                                                                                          ░ 
  1714. .br
  1715. ░   ▒
  1716. :color fc=PaleGray bc=Black.
  1717. Die eingegebene Zahl
  1718. :color fc=Black bc=Black.
  1719. ░                                                            ░ 
  1720. .br
  1721. ░                            ░
  1722. :color fc=Cyan bc=Black.
  1723. 1200000000053:color fc=PaleGray bc=Black.,
  1724. :color fc=Black bc=Black.
  1725. ▒                                       ░ 
  1726. .br 
  1727. ░                                                                                          ░   
  1728. .br
  1729. ░   ▒
  1730. :color fc=PaleGray bc=Black.
  1731. die in ihre Primfaktoren zerlegt werden soll, ist selbst eine Primzahl.
  1732. :color fc=Black bc=Black.
  1733. ░        ░ 
  1734. .br
  1735. ░                                                                                          ░ 
  1736. :color fc=default bc=default.  
  1737. :lm margin=1.
  1738. :p.:p.:p.:p.  
  1739. :color fc=darkgreen.
  1740. :font facename='Tms Rmn' size=36x32.
  1741. .ce Beispiele für erfolgreiche Zerlegungen:
  1742. :color fc=default bc=default.
  1743. :font facename=default size=0x0.
  1744. :p.  
  1745. Die Eingabe-Kette    
  1746. :lm margin=25.
  1747. :p.                       
  1748. Prim 39 442 372 387 147 114 006 181 929 906 022 200 
  1749. :lm margin=1.
  1750. :p.
  1751. erzeugt die folgende Ausgabe: 
  1752. :p.:p.
  1753. :color fc=Black bc=Black.
  1754. :lm margin=5.
  1755. ░                                                                                            ░ 
  1756. .br
  1757. ░   ░
  1758. :color fc=PaleGray bc=Black.
  1759. Die Zahl, die in Primfaktoren zerlegt werden soll,
  1760. :color fc=Black bc=Black.
  1761. ▒                               ▒
  1762. .br
  1763. ▒   ░
  1764. :color fc=PaleGray bc=Black.
  1765. ist:
  1766. :color fc=Black bc=Black.
  1767. ▒                                                                                ░ 
  1768. .br
  1769. ▓          ░
  1770. :color fc=Cyan bc=Black.
  1771. 39442372387147114006181929906022200                                      
  1772. :color fc=Black bc=Black.
  1773. ░                              ░
  1774. .br 
  1775. ░                                                                                            ░ 
  1776. .br
  1777. ░                                ░
  1778. :color fc=PaleGray bc=Black.
  1779. Primfaktor    Exponent
  1780. :color fc=Black bc=Black.
  1781. ▒                               ░ 
  1782. .br
  1783. ░                                                                                            ░ 
  1784. .br
  1785. ░                                        ░
  1786. :color fc=PaleGray bc=Black.
  1787. 2            3
  1788. :color fc=Black bc=Black.
  1789. ░                                ░ 
  1790. .br
  1791. ░                                        ░
  1792. :color fc=PaleGray bc=Black.
  1793. 5            2  
  1794. :color fc=Black bc=Black.
  1795. ░                                ░
  1796. .br 
  1797. ░                                       ░
  1798. :color fc=PaleGray bc=Black.
  1799. 11            1 
  1800. :color fc=Black bc=Black.
  1801. ░                                ░ 
  1802. .br
  1803. ░                                       ░
  1804. :color fc=PaleGray bc=Black.
  1805. 13            2  
  1806. :color fc=Black bc=Black.
  1807. ░                                ░
  1808. .br
  1809. ░                                       ░
  1810. :color fc=PaleGray bc=Black.
  1811. 17            3 
  1812. :color fc=Black bc=Black.
  1813. ░                                ░ 
  1814. .br
  1815. ░                                       ░
  1816. :color fc=PaleGray bc=Black.
  1817. 23            3  
  1818. :color fc=Black bc=Black.
  1819. ░                                ░
  1820. .br 
  1821. ░                                       ▒
  1822. :color fc=PaleGray bc=Black.
  1823. 29            1  
  1824. :color fc=Black bc=Black.
  1825. ░                                ░
  1826. .br 
  1827. ░                                    ░
  1828. :color fc=PaleGray bc=Black.
  1829. 4871            3  
  1830. :color fc=Black bc=Black.
  1831. ░                                ░
  1832. .br 
  1833. ░                                   ░
  1834. :color fc=PaleGray bc=Black.
  1835. 23011            2  
  1836. :color fc=Black bc=Black.
  1837. ░                                ░
  1838. .br 
  1839. ░                                                                                            ░ 
  1840. .br
  1841. ░   ▒
  1842. :color fc=PaleGray bc=Black.
  1843. Der Wert des Produktes,
  1844. :color fc=Black bc=Black.
  1845. ░                                                          ░ 
  1846. .br
  1847. ▒   ░
  1848. :color fc=PaleGray bc=Black.
  1849. dessen Faktoren die einzelnen Potenzen 
  1850. :color fc=Green bc=Black.
  1851. "Primfaktor hoch Exponent"
  1852. :color fc=PaleGray bc=Black.
  1853. sind, 
  1854. :color fc=Black bc=Black.
  1855. ░     ░ 
  1856. .br
  1857. ▒   ░
  1858. :color fc=PaleGray bc=Black.
  1859. ist:
  1860. :color fc=Black bc=Black.
  1861. ░                                                                                ░ 
  1862. .br
  1863. ░         ░
  1864. :color fc=Cyan bc=Black.
  1865. 39442372387147114006181929906022200
  1866. :color fc=Black bc=Black.
  1867. ░                               ░ 
  1868. .br
  1869. ░                                                                                           ░ 
  1870. :color fc=default bc=default.
  1871. :lm margin=1.
  1872. :p. 
  1873. In dieser Darstellung ist zunächst die um etwaige Leerstellen reduzierte eingegebene ganze Zahl zu sehen, die in ihre 
  1874. Primfaktoren zerlegt werden soll. Wird keine ganze Zahl eingegeben, erscheint eine diesbezügliche Fehlermeldung. 
  1875. Darunter wird der Betrag jedes Primfaktors und seines Exponenten angegeben. Der Exponent besagt, wie oft dieser 
  1876. Primfaktor in dieser Zahl vorhanden ist. 
  1877. .br
  1878. Zur Kontrolle werden alle ermittelten Primfaktoren mit einander multipliziert, um eine Kontrolle zu haben, ob auch alle 
  1879. Primfaktoren ermittelt worden sind (Produkt, dessen Faktoren die einzelnen Potenzen "Primfaktor hoch Exponent" 
  1880. sind). 
  1881. :p.
  1882. Ein Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend Hauptspeicher führt die hier 
  1883. dargestellte Berechnung in 2 Sekunden aus. 
  1884. :p.:p.
  1885. Die Eingabe-Kette    
  1886. :lm margin=24.
  1887. .br                       
  1888. Prim 1 969 911 333 706 466 162 042 672 657 103 
  1889. :lm margin=1.
  1890. :p.
  1891. als nächstes Beispiel erzeugt die folgende Ausgabe: 
  1892. :p.
  1893. :color fc=Black bc=Black.
  1894. :lm margin=5.
  1895. ░                                                                                            ░ 
  1896. .br
  1897. ░   ░
  1898. :color fc=PaleGray bc=Black.
  1899. Die Zahl, die in Primfaktoren zerlegt werden soll,
  1900. :color fc=Black bc=Black.
  1901. ▒                               ▒
  1902. .br
  1903. ▒   ░
  1904. :color fc=PaleGray bc=Black.
  1905. ist:
  1906. :color fc=Black bc=Black.
  1907. ▒                                                                                 ░ 
  1908. .br
  1909. ▓          ░
  1910. :color fc=Cyan bc=Black.
  1911. 1969911333706466162042672657103                                      
  1912. :color fc=Black bc=Black.
  1913. ░                                    ░
  1914. .br 
  1915. ░                                                                                            ░ 
  1916. .br
  1917. ░                                ░
  1918. :color fc=PaleGray bc=Black.
  1919. Primfaktor    Exponent
  1920. :color fc=Black bc=Black.
  1921. ▒                               ░ 
  1922. .br
  1923. ░                                                                                            ░ 
  1924. .br
  1925. ░                                         ░
  1926. :color fc=PaleGray bc=Black.
  1927. 3            3
  1928. :color fc=Black bc=Black.
  1929. ░                               ░ 
  1930. .br
  1931. ░                                        ░
  1932. :color fc=PaleGray bc=Black.
  1933. 11            2
  1934. :color fc=Black bc=Black.
  1935. ░                               ░
  1936. .br 
  1937. ░                                     ░
  1938. :color fc=PaleGray bc=Black.
  1939. 1459            1
  1940. :color fc=Black bc=Black.
  1941. ░                                ░ 
  1942. .br
  1943. ░                                     ░
  1944. :color fc=PaleGray bc=Black.
  1945. 4261            1  
  1946. :color fc=Black bc=Black.
  1947. ░                                ░
  1948. .br
  1949. ░                                     ░
  1950. :color fc=PaleGray bc=Black.
  1951. 4871            2 
  1952. :color fc=Black bc=Black.
  1953. ░                                ░ 
  1954. .br
  1955. ░                                  ░
  1956. :color fc=PaleGray bc=Black.
  1957. 448631            1  
  1958. :color fc=Black bc=Black.
  1959. ░                                ░
  1960. .br 
  1961. ░                                 ▒
  1962. :color fc=PaleGray bc=Black.
  1963. 9111821            1  
  1964. :color fc=Black bc=Black.
  1965. ░                                ░
  1966. .br 
  1967. ░                                                                                            ░ 
  1968. .br
  1969. ░   ▒
  1970. :color fc=PaleGray bc=Black.
  1971. Der Wert des Produktes,
  1972. :color fc=Black bc=Black.
  1973. ░                                                           ░ 
  1974. .br
  1975. ▒   ░
  1976. :color fc=PaleGray bc=Black.
  1977. dessen Faktoren die einzelnen Potenzen 
  1978. :color fc=Green bc=Black.
  1979. "Primfaktor hoch Exponent"
  1980. :color fc=PaleGray bc=Black.
  1981. sind, 
  1982. :color fc=Black bc=Black.
  1983. ░      ░ 
  1984. .br
  1985. ▒   ░
  1986. :color fc=PaleGray bc=Black.
  1987. ist:
  1988. :color fc=Black bc=Black.
  1989. ░                                                                                 ░ 
  1990. .br
  1991. ░         ░
  1992. :color fc=Cyan bc=Black.
  1993. 1969911333706466162042672657103
  1994. :color fc=Black bc=Black.
  1995. ░                                     ░ 
  1996. .br
  1997. ░                                                                                            ░ 
  1998. :color fc=default bc=default.
  1999. :lm margin=1.
  2000. :p.:p.
  2001. Ein Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend Hauptspeicher führt die hier 
  2002. dargestellte Berechnung in 26 Sekunden aus. 
  2003. :p.:p.
  2004. Die Eingabe-Kette    
  2005. :lm margin=24.                       
  2006. Prim 18 363 498 557 203 867 896 295 861 193 
  2007.           451 655 574 494 195 634 077 086 553 
  2008. :lm margin=1.
  2009. :p.
  2010. als nächstes Beispiel erzeugt die folgende Ausgabe: 
  2011. :p.:p.
  2012. :color fc=Black bc=Black.
  2013. :lm margin=5.
  2014. ░                                                                                            ░ 
  2015. .br
  2016. ░   ░
  2017. :color fc=PaleGray bc=Black.
  2018. Die Zahl, die in Primfaktoren zerlegt werden soll,
  2019. :color fc=Black bc=Black.
  2020. ▒                               ▒
  2021. .br
  2022. ▒   ░
  2023. :color fc=PaleGray bc=Black.
  2024. ist:
  2025. :color fc=Black bc=Black.
  2026. ▒                                                                                ░ 
  2027. .br
  2028. ▓          ░
  2029. :color fc=Cyan bc=Black.
  2030. 18363498557203867896295861193451655574494195634077086553
  2031. :color fc=Black bc=Black.
  2032. ░  ░
  2033. .br
  2034. ░                                                                                            ░
  2035. .br
  2036. ░                                ░
  2037. :color fc=PaleGray bc=Black.
  2038. Primfaktor    Exponent
  2039. :color fc=Black bc=Black.
  2040. ▒                               ░ 
  2041. .br
  2042. ░                                                                                            ░ 
  2043. .br
  2044. ░                                         ░
  2045. :color fc=PaleGray bc=Black.
  2046. 7            9
  2047. :color fc=Black bc=Black.
  2048. ░                                ░ 
  2049. .br
  2050. ░                                        ░
  2051. :color fc=PaleGray bc=Black.
  2052. 13            6  
  2053. :color fc=Black bc=Black.
  2054. ░                               ░
  2055. .br 
  2056. ░                                       ░
  2057. :color fc=PaleGray bc=Black.
  2058. 113           4 
  2059. :color fc=Black bc=Black.
  2060. ░                                ░ 
  2061. .br
  2062. ░                                      ░
  2063. :color fc=PaleGray bc=Black.
  2064. 1471           3  
  2065. :color fc=Black bc=Black.
  2066. ░                                ░
  2067. .br
  2068. ░                                      ░
  2069. :color fc=PaleGray bc=Black.
  2070. 3491           1 
  2071. :color fc=Black bc=Black.
  2072. ░                                ░ 
  2073. .br
  2074. ░                                      ░
  2075. :color fc=PaleGray bc=Black.
  2076. 5501           2  
  2077. :color fc=Black bc=Black.
  2078. ░                                ░
  2079. .br 
  2080. ░                                   ▒
  2081. :color fc=PaleGray bc=Black.
  2082. 811819           1
  2083. :color fc=Black bc=Black.
  2084. ░                                ░
  2085. .br 
  2086. ░                                  ░
  2087. :color fc=PaleGray bc=Black.
  2088. 2118209           1  
  2089. :color fc=Black bc=Black.
  2090. ░                                ░
  2091. .br 
  2092. ░                                                                                            ░ 
  2093. .br
  2094. ░   ▒
  2095. :color fc=PaleGray bc=Black.
  2096. Der Wert des Produktes,
  2097. :color fc=Black bc=Black.
  2098. ░                                                           ░ 
  2099. .br
  2100. ▒   ░
  2101. :color fc=PaleGray bc=Black.
  2102. dessen Faktoren die einzelnen Potenzen 
  2103. :color fc=Green bc=Black.
  2104. "Primfaktor hoch Exponent"
  2105. :color fc=PaleGray bc=Black.
  2106. sind, 
  2107. :color fc=Black bc=Black.
  2108. ░      ░ 
  2109. .br
  2110. ▒   ░
  2111. :color fc=PaleGray bc=Black.
  2112. ist:
  2113. :color fc=Black bc=Black.
  2114. ░                                                                                 ░ 
  2115. .br
  2116. ░         ░
  2117. :color fc=Cyan bc=Black.
  2118. 18363498557203867896295861193451655574494195634077086553
  2119. :color fc=Black bc=Black.
  2120. ░    ░ 
  2121. .br
  2122. ░                                                                                            ░ 
  2123. :color fc=default bc=default.
  2124. :lm margin=1.
  2125. :p.:p. 
  2126. Ein Rechner mit einem Pentium Pro, 200 MHz Taktgeschwindigkeit und ausreichend Hauptspeicher führt die hier 
  2127. dargestellte Berechnung in 45 Sekunden aus. 
  2128. :p.
  2129. Man erkennt an diesen Beispielen, daß auch eine 56-stellige ganze Zahl in ihre Primfaktoren vollständig zerlegt 
  2130. werden kann, wenn diese nicht zu groß sind. 
  2131. :p.
  2132. Man kann also immerhin den Versuch unternehmen, eine unbekannte vielstellige Zahl mit prim.CMD in ihre 
  2133. Primfaktoren zu zerlegen. 
  2134. :p.:p.
  2135. .* Ende
  2136.  
  2137. :h1 res=10000.Anhang
  2138. :p.
  2139. Im Anhang sind die einzelnen mathematischen Funktionen, die von  kzr.CMD  verwendet werden können, in 
  2140. .br
  2141. individuellen Unterabschnitten erklärt.         
  2142. :p.
  2143. .* Ende
  2144.  
  2145. :h2 res=10001.Sinusfunktion
  2146. :p.
  2147. Die Sinusfunktion sin(x) 
  2148. .br
  2149. kann im Bereich  |x| < 1.0E+8
  2150. .br
  2151. mit fast beliebiger Genauigkeit
  2152. .br
  2153. (ND <= 450) berechnet werden.
  2154. :p.
  2155. .* Ende
  2156.  
  2157. :h2 res=10002.Cosinusfunktion
  2158. :p.
  2159. Die Cosinusfunktion cos(x)
  2160. .br
  2161. kann im Bereich  |x| < 1.0E+8
  2162. .br
  2163. mit fast beliebiger Genauigkeit
  2164. .br
  2165. (ND <= 450) berechnet werden.
  2166. :p.
  2167. .* Ende
  2168.  
  2169. :h2 res=10003.Tangensfunktion
  2170. :p.
  2171. Die Tangensfunktion tan(x)
  2172. .br
  2173. kann im Bereich  |x| < 1.0E+8
  2174. .br
  2175. mit fast beliebiger Genauigkeit
  2176. .br
  2177. (ND <= 450) berechnet werden.
  2178. :p.
  2179. .* Ende
  2180.  
  2181. :h2 res=10004.Cotangensfunktion
  2182. :p.
  2183. Die Cotangensfunktion cot(x)
  2184. .br
  2185. kann im Bereich  |x| < 1.0E+8
  2186. .br
  2187. mit fast beliebiger Genauigkeit
  2188. .br
  2189. (ND <= 450) berechnet werden.
  2190. :p.
  2191. .* Ende
  2192.  
  2193. :h2 res=10005.Hyperbel-Sinusfunktion
  2194. :p.
  2195. Die Hyperbel-Sinusfunktion sinh(x)
  2196. .br 
  2197. ist definiert als   
  2198. :lm margin=20.
  2199. .br
  2200. :p.                     
  2201. exp(+x) - exp(-x) 
  2202. :lm margin=7.
  2203. .br
  2204. sinh(x) =   ────────────── . 
  2205. :lm margin=27.
  2206. .br
  2207. :lm margin=1.
  2208. :p.
  2209. Sie kann im Bereich |x| < 1.0E+8
  2210. .br 
  2211. mit fast beliebiger Genauigkeit
  2212. .br
  2213. (ND <= 450) berechnet werden.
  2214. :p.
  2215. .* Ende
  2216.  
  2217. :h2 res=10006.Hyperbel-Cosinusfunktion
  2218. :p.
  2219. Die Hyperbel-Cosinusfunktion cosh(x)
  2220. .br 
  2221. ist definiert als   
  2222. :lm margin=20.
  2223. .br
  2224. :p.                     
  2225. exp(+x) + exp(-x) 
  2226. :lm margin=7.
  2227. .br
  2228. cosh(x) =   ────────────── . 
  2229. :lm margin=27.
  2230. .br
  2231. :lm margin=1.
  2232. :p.
  2233. Sie kann im Bereich |x| < 1.0E+8
  2234. .br 
  2235. mit fast beliebiger Genauigkeit
  2236. .br
  2237. (ND <= 450) berechnet werden.
  2238. :p.
  2239. .* Ende
  2240.  
  2241. :h2 res=10007.Hyperbel-Tangensfunktion
  2242. :p.
  2243. Die Hyperbel-Tangensfunktion tanh(x) 
  2244. .br
  2245. ist definiert als   
  2246. :lm margin=20.
  2247. :p.                     
  2248. exp(+x) - exp(-x) 
  2249. :lm margin=7.
  2250. .br
  2251. tanh(x) =   ────────────── . 
  2252. :lm margin=20.
  2253. .br
  2254. exp(+x) + exp(-x) 
  2255. :lm margin=1.
  2256. :p.
  2257. Sie kann im Bereich |x| < 1.0E+8 
  2258. .br
  2259. mit fast beliebiger Genauigkeit 
  2260. .br
  2261. (ND <= 450) berechnet werden.   
  2262. .* Ende
  2263.  
  2264. :h2 res=10008.Hyperbel-Cotangensfunktion
  2265. :p.
  2266. Die Hyperbel-Cotangensfunktion coth(x) 
  2267. .br
  2268. ist definiert als   
  2269. :lm margin=20.
  2270. :p.                     
  2271. exp(+x) + exp(-x) 
  2272. :lm margin=7.
  2273. .br
  2274. coth(x) =   ────────────── . 
  2275. :lm margin=20.
  2276. .br
  2277. exp(+x) - exp(-x) 
  2278. :lm margin=1.
  2279. :p.
  2280. Sie kann im Bereich |x| < 1.0E+8 
  2281. .br
  2282. - der Wert x=0 ist aber nicht erlaubt - 
  2283. .br
  2284. mit fast beliebiger Genauigkeit 
  2285. .br
  2286. (ND <= 450) berechnet werden.   
  2287. :p.
  2288. .* Ende
  2289.  
  2290. :h2 res=10009.Arcus-Sinusfunktion
  2291. :p.
  2292. Der Hauptwert der Funktion arcsin(x) 
  2293. .br
  2294. kann im Bereich  |x| ≤ 1 
  2295. .br
  2296. mit fast beliebiger Genauigkeit 
  2297. .br
  2298. (ND <= 450) berechnet werden.   
  2299. :p.
  2300. .* Ende
  2301.  
  2302. :h2 res=10010.Arcus-Cosinusfunktion
  2303. :p.
  2304. Der Hauptwert der Funktion arccos(x)
  2305. .br
  2306. kann im Bereich  |x| ≤ 1
  2307. .br
  2308. mit fast beliebiger Genauigkeit
  2309. .br
  2310. (ND <= 450) berechnet werden.
  2311. :p.
  2312. .* Ende
  2313.  
  2314. :h2 res=10011.Arcus-Tangensfunktion
  2315. :p.
  2316. Der Hauptwert der Funktion arctan(x)
  2317. .br 
  2318. kann im Bereich  |x| < ∞
  2319. .br
  2320. mit fast beliebiger Genauigkeit
  2321. .br
  2322. (ND <= 450) berechnet werden.
  2323. :p.
  2324. .* Ende
  2325.  
  2326. :h2 res=10012.Arcus-Cotangensfunktion
  2327. :p.
  2328. Der Hauptwert der Funktion arccot(x)
  2329. .br
  2330. kann in den Bereichen
  2331. .br
  2332. -∞ < x < 0  und  0 < x  +∞
  2333. .br
  2334. mit fast beliebiger Genauigkeit
  2335. .br
  2336. (ND <= 450) berechnet werden.
  2337. :p.
  2338. Anmerkung:
  2339. :p.
  2340. Der Hauptwert der Funktion arccot(x)
  2341. .br
  2342. geht für  x ─> -∞  gegen  -0
  2343. .br
  2344. und für  x ─> -0  gegen  -π/2.
  2345. .br
  2346. An der Stelle x = 0
  2347. .br
  2348. ist die Funktion  arccot(x)
  2349. .br
  2350. - und daher auch deren Hauptwert -
  2351. .br
  2352. nicht erklärt.
  2353. :artwork name='E:\rexx\vv\kzrbitmap\arccot.BMP'.
  2354. Der Hauptwert der Funktion  arccot(x)
  2355. .br
  2356. geht für  x ─> +0  gegen  +π/2
  2357. .br
  2358. und für  x ─> +∞  gegen  +0.
  2359. :p.
  2360. Diese Definion des Hauptwertes
  2361. .br
  2362. der Funktion  arccot(x)  ist offenbar
  2363. .br
  2364. die jüngste Festlegung [3].
  2365. :p.
  2366. In der Literatur findet man
  2367. .br
  2368. gelegentlich eine andere Definition,
  2369. .br
  2370. zum Beispiel in [2].
  2371. :p.
  2372. .* Ende
  2373.  
  2374. :h2 res=10013.Area-Sinusfunktion
  2375. :p.
  2376. Der Hauptwert der Funktion arsinh(x)
  2377. .br
  2378. kann im Bereich  -∞ < x < +∞
  2379. .br
  2380. mit fast beliebiger Genauigkeit
  2381. .br
  2382. (ND <= 400) berechnet werden.
  2383. :p.
  2384. .* Ende
  2385.  
  2386. :h2 res=10014.Area-Cosinusfunktion
  2387. :p.
  2388. Der Hauptwert der Funktion arcosh(x)
  2389. .br
  2390. kann im Bereich  x ≥ 1
  2391. .br
  2392. mit fast beliebiger Genauigkeit
  2393. .br
  2394. (ND <= 400) berechnet werden.
  2395. :p.
  2396. .* Ende
  2397.  
  2398. :h2 res=10015.Area-Tangensfunktion
  2399. :p.
  2400. Der Hauptwert der Funktion artanh(x) 
  2401. .br
  2402. kann im Bereich  |x| < 1
  2403. .br
  2404. mit fast beliebiger Genauigkeit
  2405. .br
  2406. (ND <= 400) berechnet werden.
  2407. :p.
  2408. .* Ende
  2409.  
  2410. :h2 res=10016.Area-Cotangensfunktion
  2411. :p.
  2412. Der Hauptwert der Funktion arcoth(x)
  2413. .br
  2414. kann im Bereich  |x| > 1
  2415. .br
  2416. mit fast beliebiger Genauigkeit
  2417. .br
  2418. (ND <= 400) berechnet werden.
  2419. :p.
  2420. .* Ende
  2421.  
  2422. :h2 res=10017.Exponentialfunktion
  2423. :p.
  2424. Die Exponentialfunktion exp(x)
  2425. .br
  2426. kann im Bereich |x| < 1.0E+9
  2427. .br
  2428. mit fast beliebiger Genauigkeit
  2429. .br
  2430. berechnet werden.
  2431. :p.
  2432. .* Ende
  2433.  
  2434. :h2 res=10018.Potenzfunktion
  2435. :p.
  2436. Die Potenz-Funktion pot(x,y)
  2437. .br
  2438. -- x hoch y --
  2439. .br
  2440. kann im Bereich  |y*ln(|x|)| < 1.0E+9
  2441. .br
  2442. mit einer Genauigkeit
  2443. .br
  2444. von maximal 400
  2445. .br
  2446. Dezimalstellen berechnet werden.
  2447. :p.
  2448. .* Ende
  2449.  
  2450. :h2 res=10019.Funktion 2. Wurzel
  2451. :p.
  2452. Die zweite Wurzel sqrt(x)
  2453. .br
  2454. kann im Bereich
  2455. .br
  2456. 1.0E-10000 < x < 1.0E+10000
  2457. .br
  2458. mit fast beliebiger Genauigkeit
  2459. .br
  2460. (ND <= 450) berechnet werden.
  2461. :p.
  2462. .* Ende
  2463.  
  2464. :h2 res=10020.Funktion 3. Wurzel
  2465. :p.
  2466. Die dritte Wurzel root3(x)
  2467. .br
  2468. kann im Bereich
  2469. .br
  2470. 1.0E-10000 < x < 1.0E+10000
  2471. .br
  2472. mit fast beliebiger Genauigkeit
  2473. .br
  2474. (ND <= 450) berechnet werden.
  2475. :p.
  2476. .* Ende
  2477.  
  2478. :h2 res=10021.Logarithmus zur Basis e
  2479. :p.
  2480. Der natürliche Logarithmus ln(x)
  2481. .br
  2482. kann im Bereich
  2483. .br
  2484. 1.0E-100000 < x < 1.0E+100000
  2485. .br
  2486. mit fast beliebiger Genauigkeit
  2487. .br
  2488. (ND <= 450) berechnet werden.
  2489. :p.
  2490. .* Ende
  2491.  
  2492. :h2 res=10022.Logarithmus zur Basis 10
  2493. :p.
  2494. Der Logarithnus zur Basis 10:  log(x)
  2495. .br
  2496. kann im Bereich
  2497. .br
  2498. 1.0E-100000 < x < 1.0E+100000
  2499. .br
  2500. mit fast beliebiger Genauigkeit
  2501. .br
  2502. (ND <= 450) berechnet werden.
  2503. :p.
  2504. .* Ende
  2505.  
  2506. :h2 res=10023.Logarithmus zur Basis 2
  2507. :p.
  2508. Der Logarithmus zur Basis 2: ld(x)
  2509. .br
  2510. kann im Bereich
  2511. .br
  2512. 1.0E-100000 < x < 1.0E+100000
  2513. .br
  2514. mit fast beliebiger Genauigkeit
  2515. .br
  2516. (ND <= 450) berechnet werden.
  2517. :p.
  2518. .* Ende
  2519.  
  2520. :h2 res=10024.Fakultätsfunktion n!
  2521. :p.
  2522. Die Fakultätsfunktion n!(u)
  2523. .br
  2524. kann im Bereiche 0 < u <= 6000
  2525. .br
  2526. für ganzzahlige Werte von u
  2527. .br
  2528. berechnet werden.
  2529. :p.
  2530. Für u > 6000
  2531. .br
  2532. werden die Rechenzeiten zu groß.
  2533. :p.
  2534. .* Ende
  2535.  
  2536. :h2 res=10025.Fakultätsfunktion n!!
  2537. :p.
  2538. Die Fakultätsfunktion n!!(u)
  2539. .br 
  2540. :artwork name='E:\REXX\VV\kzrBitMap\00n!!.BMP'.
  2541. .br
  2542. kann im Bereiche 0 < u <= 6000
  2543. .br
  2544. für ganzzahlige Werte von u berechnet werden.
  2545. .br
  2546. Für u > 6000 werden die Rechenzeiten zu groß.
  2547. :p.
  2548. .* Ende
  2549.  
  2550. :h2 res=10026.Gammafunktion
  2551. :p.
  2552. Die Gamma-Funktion Γ(x)=ga(x) ist definiert als
  2553. .br 
  2554. :artwork name='E:\rexx\vv\kzrbitmap\gamma.bmp'.
  2555. .br
  2556. Für  x=0  und negative ganzzahlige Werte von  x 
  2557. .br
  2558. hat die Gammafunktion Pole und ist dort nicht definiert.
  2559. .br
  2560. Sie kann im Bereich  -3000  < x < +3000
  2561. .br
  2562. mit einer Genauigkeit
  2563. .br
  2564. von maximal 50 Dezimalstellen berechet werden.
  2565. .br
  2566. Für |x| > 3000 werden die Rechenzeiten zu groß.
  2567. :p.
  2568. .* Ende
  2569.  
  2570. :h2 res=10027.Binomialkoeffizient
  2571. :p.
  2572. Für einen Binomialkoeffizienten
  2573. :lm margin=25.
  2574. :p.
  2575. u! 
  2576. :lm margin=10.
  2577. .br
  2578. bin(u,v) = ───────
  2579. :lm margin=20.
  2580. .br 
  2581. v!(u-v)! 
  2582. :lm margin=1.
  2583. :p.
  2584. müssen die Bereiche 0 < u <= 2000
  2585. :lm margin=19.
  2586. .br
  2587. und 0 < v <= u 
  2588. :lm margin=1.
  2589. :p.
  2590. eingehalten werden.
  2591. :p.
  2592. Die Variablen  u  und  v
  2593. .br
  2594. müssen ganze Zahlen sein.
  2595. :p.
  2596. .* Ende
  2597.  
  2598. :h2 res=10028.Gaußsche Fehlerfunktion
  2599. :p.
  2600. Die Gaußsche Fehlerfunktion Φ(x)=phi(x) 
  2601. .br
  2602. :artwork name='e:\rexx\vv\kzrbitmap\phi.bmp'.
  2603. .br 
  2604. kann im Bereich  -∞ < x < +∞
  2605. .br
  2606. mit einer Genauigkeit
  2607. .br
  2608. von maximal 50 Dezimalstellen
  2609. .br
  2610. berechnet werden.     
  2611. :p.
  2612. .* Ende
  2613.  
  2614. :h2 res=10029.Fehlerfunktion p_(x)
  2615. :p.
  2616. Die Fehlerfunktion p_(x)=(1+Φ(x))/2
  2617. .br
  2618. kann im Bereich  -∞ < x < +∞
  2619. .br
  2620. mit einer Genauigkeit
  2621. .br
  2622. von maximal 50 Dezimalstellen
  2623. .br
  2624. berechet werden.
  2625. :p.
  2626. Zur Definition von Φ(x)
  2627. .br
  2628. siehe die Erläuterunge zu phi(x)
  2629. :p.
  2630. .* Ende
  2631.  
  2632. :h2 res=10030.Fehlerfunktion q_(x)
  2633. :p.
  2634. Die Fehlerfunktion q_(x)=(1-Φ(x))/2
  2635. .br
  2636. kann im Bereich  -∞ < x < +∞
  2637. .br
  2638. mit einer Genauigkeit
  2639. .br
  2640. von maximal 50 Dezimalstellen
  2641. .br
  2642. berechet werden.
  2643. :p.
  2644. Zur Definition von Φ(x)
  2645. .br
  2646. siehe die Erläuterunge zu phi(x)
  2647. :p.
  2648. .* Ende
  2649.  
  2650. :h2 res=10031.Error-Funktion
  2651. :p.
  2652. Die Error-Funktion erf(x) 
  2653. .br 
  2654. :artwork name='e:\rexx\vv\kzrbitmap\erf.bmp'.
  2655. .br 
  2656. kann im Bereich  -∞ < x < +∞
  2657. .br
  2658. mit einer Genauigkeit
  2659. .br
  2660. von maximal 50 Dezimalstellen
  2661. .br
  2662. berechet werden.
  2663. :p.
  2664. .* Ende
  2665.  
  2666. :h2 res=10032.Komplementäre Error-Funktion
  2667. :p.
  2668. Die komplementäre Error-Funktion erfc(x) 
  2669. .br
  2670. :artwork name='e:\rexx\vv\kzrbitmap\erfc.bmp'.
  2671. .br 
  2672. kann im Bereich  -∞ < x < +∞
  2673. .br
  2674. mit einer Genauigkeit
  2675. .br
  2676. von maximal 50 Dezimalstellen 
  2677. .br
  2678. berechet werden.   
  2679. :p.
  2680. .* Ende
  2681.  
  2682. :h2 res=10033.Modulo-Funktion
  2683. :p.
  2684. Die Modulo-Funktion wird häufig mit der divrest-Funktion von kzr (in einer REXX-Datei das Doppelsymbol //) 
  2685. .br
  2686. verwechselt. Sie ist nicht identisch mit der divrest-Funktion von kzr , wenn  u  und  v  unterschiedliche Vorzeichen 
  2687. .br
  2688. haben.
  2689. .br
  2690. Hier ein Beispiel mit  u = -235
  2691. .br
  2692. und  v = 17:
  2693. :p.
  2694. mod(u, v) = 3
  2695. :p.
  2696. u divrest v = -14 
  2697. :p.
  2698. Die Modulo-Funktion ist folgendermaßen definiert 
  2699. .br
  2700. (Siehe [6], Seite XV, oben): 
  2701. :p.
  2702. x = u mod(v)  bedeutet: x = m*v + u
  2703. :p.
  2704. mit  x, m, und  u  aus der Menge der ganzen Zahlen
  2705. .br
  2706. ···-3,-2,-1, 0, +1, +2, +3,···
  2707. .br
  2708. und  v  aus der Menge der natürlichen Zahlen  0, 1, 2, 3,···,
  2709. .br
  2710. mit Ausnahme der Null. 
  2711. :p.
  2712. Die Funktion  x = m*v + u 
  2713. :p.
  2714. ist unendlich vieldeutig. Daher hat man den am dichtesten bei Null liegenden Wert als eine Art "Hauptwert" festgelegt.
  2715. :p.
  2716. Die Funktion  u mod(v)  ist in der Form  mod(u,v)  programmiert; sie liefert als Ergebnis den "Hauptwert".
  2717. :p.
  2718. .* Ende
  2719.  
  2720. :h2 res=10034.Kleinster gemeinsamer Teiler
  2721. :p.
  2722. Um den kleinsten gemeinsamen Teiler
  2723. .br
  2724. zweier Zahlen  u  und  v zu ermitteln,
  2725. .br
  2726. wird der bekannte Algorithmus von
  2727. .br
  2728. Euclid verwendet.
  2729. :p.
  2730. Siehe hierzu die Seiten 28 oder 33
  2731. .br
  2732. in [7].
  2733. :p.
  2734. .* Ende
  2735.  
  2736. :h2 res=10035.pi()
  2737. :p.
  2738. Die Konstante π = pi() = 3.14159....
  2739. .br
  2740. kann mit fast beliebiger Genauigkeit
  2741. .br
  2742. berechet werden.
  2743. :p.
  2744. .* Ende
  2745.  
  2746. :h2 res=10036.e()
  2747. :p.
  2748. Die Konstante e = e() = 2.71828.....
  2749. .br
  2750. kann mit fast beliebiger Genauigkeit
  2751. .br
  2752. berechet werden.
  2753. :p.
  2754. .* Ende
  2755.  
  2756. :euserdoc.
  2757.