ROM20 V1.0 - ein leistungsfähiger Tischrechner für den Amiga ---------------------------------------------------------------- Zuerst einige Merkmale in Stichworten: - Das Programm ist vollständig in OBERON programmiert. - Es läuft auf allen AMIGA-Modellen unter KS1.3 und OS2.0 - ROM20 benutzt die Shell oder ein eigenes CON:-Window zur Ein- und Ausgabe. Daher ist insbesondere unter OS2.0 die Bedienung recht komfortabel; es können wie in der Shell verschiedene Fonts, Farben, Tastaturbelegungen usw. verwendet werden. - ROM20 rechnet mit LONGREAL-Zahlen, daher 14-stellige Genauigkeit. - ROM20 kennt neben +,-,*,/ auch den Potenzoperator ^ - ^ hat Vorrrang vor * und /, diese haben Vorrang vor + und - 2+3^2*4 = 2+((3^2)*4) = 38.0 - Alle wichtigen mathematischen Funktionen wie sin(), arcsin(), exp(), fac() usw. sind implementiert. - ROM20 kann mit Variablen rechnen. Diese Variablen können als Textfile abgespeichert und wieder geladen werden. Ausdrücke wie "sqrt(2.8*Geschwindigkeit)/Pi+sin(x2^7.91E-3 -Elektronenmasse)" können also berechnet werden. - Das Ausgabeformat ist frei wählbar. - Die Ausgabe kann zum Drucker oder in eine Datei kopiert werden. - Statistische Funktionen wie Mittelwert oder Standardabweichung stehen zur Verfügung. - Auf jede Eingabe kann zusätzlich eine frei definierbare Formel angewendet werden. Dadurch wird z.B. die Erstelliung von Werte- tabellen sehr einfach. - Das Programm kann von Shell und Workbench gestartet werden. - Das Programm ist frei konfigurierbar. Die Konfiguration kann abgespeichert werden und steht so beim nächsten Programmstart sofort zur Verfügung. - Das Programm ist nur ca. 38 kByte groß und residentfähig. COPYRIGHT --------- Dieses Programm ist KEIN Public Domain Programm! Alle Rechte liegen beim Autor. Diese Version von ROM20 darf nur in Verbindung mit einer unveränderten AMOK-Diskette verbreitet werden. Die Aufnahme von ROM20 auf eine andere Diskettenserie oder irgendein sonstiger Vertrieb dieses Programms ist nur mit meiner schriftlichen Genehmigung erlaubt. Insbesondere sind Modifikationen des Programms oder der Dokumentation, der Abdruck oder die Übersetzung und jede andere Vervielfältigung von Programm und Dokumentation untersagt. Grundsätzlich darf für eine Diskette auf der sich ROM20 befindet nur der Preis der Leerdiskette zuzüglich einer geringen Kopiergebühr verlangt werden. (In der Regel kostet eine FD-Diskette DM 1.60 + Porto) Der Autor behält sich das Recht vor, einzelnen Firmen oder Personen das Recht auf Verbreitung dieses Produktes zu untersagen! SHAREWARE --------- Dieses Programm ist Shareware. Das heißt sie bekommen mit dieser Disk die Vollversion des Programmes. Sie haben ca. zwei Wochen Zeit das Programm ausgiebig zu testen. Sollte Ihnen das Programm gefallen und sollten sie es auch weiterhin benutzen wollen, so müssen Sie mir die Sharewaregebühr in Höhe von 10 DM oder 5 US-Dollar schicken oder auf mein Girokonto Überweisen! Meine Anschrift: Stefan Salewski Stolper Weg 3 D-2160 Stade (Germany) Mein Konto: Stadt-Sparkasse Stade Bankleitzahl 241 510 05 Kontonummer 823864 Wer das Programm sehr viel benutzt oder viel Geld hat kann mir auch gerne 20 DM schicken. Wenn jemand momentan sehr wenig Geld hat reichen auch 5 DM. Die Nutzung des Programms ohne Zahlung der Sharewaregebühr ist illegal und entspricht der Nutzung von Raubkopien. (Natürlich hätte ich statt des voll funktionsfähigen Programms auch nur eine Demoversion veröffentlichen können. Die Vollversion wäre dann bei mir oder einem Händler zu beziehen. Durch den dadurch verbundenen Mehraufwand würde dann der Preis aber bei ca. 30 DM liegen!) Starten des Programms ---------------------- ROM20 kann von der Workbench aus durch Doppelklick auf das Piktogramm oder aus der Shell durch Eingabe des Programmnamens gestartet werden. Das Programm braucht mindestens einen Stack von 14 kByte. Dieser Wert sollte im Icon des Programmes eingetragen sein. Beim Start aus der Shell muß man eventuell vor dem Starten des Programms den Stack mit "Stack 14000" entsprechend erhöhen. Ist das Programm aus der Shell gestartet worden, so benutzt es das Shellfenster für seine Ein- und Ausgaben. Wird es von der Workbench aus gestartet, so wird ein eigenes CON-Fenster geöffnet. Position und Größe des Fensters sind in den ToolTypes des Icons festgelegt und können verändert werden. Wer noch mit Kickstart 1.3 arbeitet kann in den ToolTypes "Con:" durch "NewCon:" oder einen anderen Handler ersetzen um in dem Eingabewindow die gleichen Funktionen wie in der Shell nutzen zu können. ( Edieren der Eingabezeile, zurückholen der letzten Eingabe durch "Cursor Up" usw.) Bedienung --------- Ist das Programm gestartet, kann man einen mathematischen Ausdruck eintippen. Nach Betätigung der Returntaste wird er berechnet und ausgegeben. Einige Beispiele für mögliche Eingaben: 1.23*sin(4.5)+Pi/epsilon arcsin(3/2)-2.7E3^3.2 Die Ausdrücke dürfen folgendes enthalten: Die mathematischen Operatoren +,-,*,/,^ Zahlenkonstanten wie 1.23E-5, 3.14, 2 Elementare Funktionen wie sin, exp, arctan Klammern (),[],{} Werte (engl. Values) (Leerzeichen in mathematischen Ausdrücken sind nicht erlaubt.) Werte (Variablen oder Konstanten) --------------------------------- Werte ist der Oberbegriff für Konstanten und Variablen. Man kann jedem Wort einen Wert zuweisen und dann damit rechnen. Die Wertzuweisung ist sehr einfach: Man tippt den Namen, dann = oder := und schließlich den nummerischen Ausdruck, der diesem Namen zugewiesen werden soll. Um beispielsweise die Werte Pi und SekundenProTag zu definieren gibt man ein: Pi:=2*arcsin(1) SekundenProTag=60*60*24 Nun kann man mit diesen Werten rechnen wie mit normalen Zahlen. Wertzuweisungen haben die Form = [ ; Kommentar ] := [ ; Kommentar ] Der Name darf fast alle über die Tastatur erreichbaren Zeichen enthalten, die Operatoren +,-,*,/,^,:,= und Klammern sind allerdings nicht erlaubt. Außerdem darf den Name nicht mit einer Ziffer beginnen. Er darf aber Ziffern enthalten und auch mit einer Ziffer enden. Natürlich darf man für Werte nicht Namen verwenden, die schon für elementare Funktionen (sin, cos usw.) oder Kommandos (PrinterOn, Quit usw.), vergeben sind. Wird nur das Gleichheitszeichen für die Wertzuweisung benutzt, so wird dieser Wert nicht abgespeichert. Das ist für unwichtige Werte sinnvoll. Wird dagegen der Zuweisungsoperator ":=" benutzt, so wird dieser Wert abgespeichert und kann beim nächsten Programmstart wieder verwendet werden. (Die Werte werden erst abgespeichert wenn man das Kommando SaveValues gibt, die Kommandos werden weiter unten erklärt.) Die Kommentare sind optional, man kann sie z.B. verwenden um zu notieren, auf welche Einheiten ein Wert bezogen ist usw. (Links und rechts von ":=", "=" und ";" dürfen beliebig viele Leerzeichen stehen.) Memory-Funktion --------------- Es gibt eine spezielle Variable mit dem Namen "#". Dieses Doppelkreuz bekommt jeweils das letzte Resultat zugewisen. So kann man bei Kettenrechnungen mit dem letzten Ergebnis sofort weiterechnen ohne es erneut eintippen zu müssen. Natürlich sollte man den Namen "#" nicht verwenden, um irgendwelche Zahlenwerte zu speichern, da dieser Wert ja bei jeder Rechnung verändert wird. Fehlermeldungen: ---------------- Tritt irgendein Fehler auf, so wird darauf hingewiesen, anderenfalls wird nur das Ergebnis ausgegeben. Enthält der eingegebene Ausdruck undefinierte Werte, Klammerfehler oder anderen Unsinn, so bekommt man die Meldung "Error in Compile()". Auch bei der Berechnung können natürlich Fehler auftreten, beispielsweise eine Division durch Null oder eine Bereichüberschreitung (Ergebnis > MAX(LONGREAL)). Auch hier bekommt man eine Fehlermeldung, aus der man in der Regel erkennen kann um was für einen Fehler es sich handelt. Operatoren ---------- Es existieren 5 mathematische Operatoren: Symbol Bedeutung Priorität ---------------------------- + Plus 1 - Minus 1 * Mal 2 / Durch 2 ^ Hoch 3 Mal und Durch hat also Vorrang vor Plus und Minus. Der Potenzoperator ^ hat Vorrang vor den übrigen vier Operatoren. (Dies ist allgemein üblich und unter den Begriff "Punkt- vor Strichrechnung" bekannt. Einige Beispiele: 2+3*4 = 14 2+3*4^2 = 50 Um andere Prioritäten festzulegen können selbstverständlich Klammern benutzt werden. Neben () können auch [] und {} benutzt werden. Beispiel: (2+3)*4 = 20 (3+5)^2 = 64 Das Weglassen des Multiplizieroperators ist nicht erlaubt. Man darf also statt 4*Pi*e0 nicht 4Pie0 schreiben. (Manchmal findet man in Büchern Ausdrücke wie "1/4 Pi e0". Gemeint ist damit "1/(4*Pi*e0)". Dem weggelassenem Multiplikationsoperatoren wird also eine höhere Priorität als dem Divisionsoperator / zugeordnet. Da das Weglassen von Operatoren nicht erlaubt ist und Mal und Durch gleiche Priorität haben muß man also "1/(4*pi*e0)" schreiben.) Kommandos --------- Statt einen mathematischen Ausdruck einzutippen kann man auch ein Kommando eingeben um beispielsweise die Anzahl der Nachkommastellen festzulegen oder die Ausgaben auf dem Drucker auszugeben. Es existieren momentan ca. 40 Kommandos. Die meisten Kommandos bestehen nur aus einem Wort wie beispielsweise "PrinterOn", andere benötigen noch ein weiteres Argument, beispielsweise die Anzahl der Nachkommastellen. Groß- und Kleinschreibung wird unterschieden, man muß also "PrinterOn" eingeben, "printeron" oder "PRINTERON" führen zu einer Fehlermeldung. Konnte ein Kommando ausgeführt werden, so erfolgt keine Meldung und das Programm erwartet sofort die nächste Eingabe. Anderenfalls wird eine entsprechende Fehlermeldung ausgegeben. Jetzt zu den Kommandos im einzelnen: Quit ---- Beendet das Programm. Statt Quit kann man auch einfach einen Punkt eingeben. Help ---- Gibt einen kurzen Hilfstext aus. Statt Help kann man auch ? benutzen. ShowCommands ------------ Listet alle möglichen Kommandos auf. ShowFunctions ------------- Listet alle bekannten elementaren Funktionen wie sin() usw. auf. Auf diese Funktionen wird weiter unten noch näher eingegangen. ShowValues ---------- Listet alle momentan vorhandenen Werte (Variablen bzw. Konstanten) auf. PrinterOn --------- Gibt fortan alle Ergebnisse auf dem Drucker aus. Bevor man dieses Kommando benutzt sollte man den Drucker eingeschaltet haben. Bei der Druckerausgabe wird die mit dem Workbenchprogrammen "Printer" bzw. "Preferences" eingestellte Druckbreite benutzt. Diese Breite (PrintRightMargin-PrintLeftMargin) wird ebenfalls bei Ausgaben in eine Datei verwendet. PrinterOff ---------- Die Ergebnisse werden nicht mehr zum Drucker geschickt. OpenFile --------------- Die Ergebnisse werden fortan in die Datei mit dem Namen name geschrieben. Für diese Datei wird das gleiche Format wie für die Druckerausgabe benutzt. CloseFile --------- Die zuvor mit OpenFile geöffnete Datei wird geschlossen, die Ergebnisse werden nicht mehr in diese Datei geschrieben. PrintAll -------- Dieses Kommando ist von Bedeutung, wenn die Ergebnisse zum Drucker geschickt oder in eine Datei geschrieben werden. Es bewirkt, daß vor der Ausgabe des Ergebnisses der eingegebene Ausdruck nochmal wiederholt wird. Dadurch hat man auf dem Papier später nicht nur die Ergebnisse stehen, sondern auch, was eingegeben wurde. PrintResult ----------- Das Gegenteil von PrintAll. Es wird nur das Ergebnis ausgegeben. TotalDigits ----------- Ergebnisse werden mit n Gesamtziffern angezeigt. Die Zahl n muß zwischen 1 und 14 liegen. DigitsBehindPoint ----------------- Es werden n Nachkommastellen angezeigt. Bei naturwissenschaftlichen Rechnungen wird man in der Regel TotalDigits und DigitsBehindPoint auf den gleichen Wert, z.B. auf acht, setzen um immer acht Stellen angezeigt zu bekommen. Wenn man mit Geld rechnet ist es dagegen sinnvoll DigitsBehindPoint auf zwei zu setzen um nicht Bruchteile einen Pfennigs angezeigt zu bekommen. Die Anzahl der Nachkommastellen ist natürlich durch die Zahl der Gesamtstellen eingeschränkt und muß zwischen 0 und 14 liegen. ExponentOn ---------- Ergebnisse werden in der Exponentialdarstellung ausgegeben. Statt 1234.56 also 1.23456E3 ExponentOff ----------- Die Exponentialdarstellung wird nur benutzt, wenn die Zahl zu groß für die normale Darstellung ist. Format ------ Oft muß man die Gesamtstellen, Nachkommastellen und die Zahlendarstellung (Normal- oder Exponentialdarstellung) gleichzeitig verändern. Um dies zu vereinfachen gibt es den Befehl Format. Die erste Zahl, die dem Kommando Format folgt, gibt die Gesamtziffernzahl an. Dann folgt ein Punkt und die Zahl der Nachkommastellen. Folgt zusätzlich noch ein E, so wird die Exponentialdarstellung benutzt, anderenfalls nicht. Die Zahl vor oder hinter dem Punkt kann auch weggelassen werden, dann wird die alte Einstellung beibehalten. Einige Beispiele: Format 8.2 Es werden maximal 8 Gesamtstellen und 2 Nachkommastellen angezeigt. Format 12.14 Es werden 12 Gesamtstellen und 11 Nachkommastellen angezeigt. Ja 11, denn es ist immer mindestens eine Vorkommastelle vorhanden, und die Zahl der Gesamtstellen ist ja hier auf 12 beschränkt. Format 8E Es werden 8 Gesamtstellen in exponentieller Darstellung angezeigt. Wie gesagt, den Befehl Format braucht man nicht zu verwenden, statt dessen kann man auch TotalDigits, DigitsBehindPoint und ExponentOn bzw. ExponentOff benutzen. AutoExpoOn ---------- Dieses Kommando bewirkt, daß bei Ergebnissen, die betragsmäßig kleiner als eins sind automatisch die Exponentialdarstellung benutzt wird. Statt 0.0123456 erhält man also 1.23456xxE-2 als Ergebnis. Dadurch ist sichergestellt, daß das Ergebnis immer mit so vielen Stellen angezeit wird, wie man mit dem Kommando TotalDigits festgelegt hat. Insbesondere weiß man so immer, ob es sich bei dem Ergebnis wirklich um Null oder nur um eine sehr kleine Zahl handelt. AutoExpoOff ----------- Zahlen, die Betragsmäßig kleiner als eins sind werden in normaler Darstellung angezeigt. (Sofern nicht vorher der Befehl ExponentOn gegeben wurde.) Bei zwei Nachkommastellen erhält man also als Ergebnis 0.00 statt z.B. 1.23E-3 . Wenn man z.B. mit Geldbeträgen rechnet ist dies ok, da einen Bruchteile eines Pfennigs nicht interessieren. LeftJustify ----------- Das Ergebnis wird linksbündig ausgerichtet. Das bedeutet daß jeweils die ersten Ziffern der Ergebnisse übereinander stehen. RightJustify ------------ Das Ergebnis wird rechtsbündig ausgerichtet. Die letzten Ziffern der Ergebnisse stehen jeweils übereinander. Beim Rechnen mit Geldbeträgen und zwei Nachkommastellen stehen die Pfennige also übereinander. SetFillChar --------------- Als Füllzeichen wird das Zeichen x verwendet. Das ist nur von Bedeutung, wenn PrintAll gewäht ist. Mit dem Füllzeichen wird der Raum zwischen der Eingabe und dem ausgegebenen Resultat ausgefüllt. Will man das Leerzeichen als Füllzeichen benutzen, so muß man " " statt des Leerzeichens eingeben. Beispiel: SetFillChar . Der Punkt wird als Füllzeichen verwendet, das verbessert die Lesbarkeit des Ausdrucks. SetFillChar Kein Füllzeichen verwenden, das Ergebnis wird direkt hinter die Eingabe geschrieben. SetFillChar " " Leerzeichen verwenden. SaveConfig [fileName] --------------------- Hiermit kann man das momentane Ausgabeformat abspeichern. Wird kein Filename angegeben, so wird der Name "s:ROM20.config" benutzt. LoadConfig [fileName] --------------------- Lädt die Einstellungen wieder ein. Wird kein Filename angegeben, so wird ebenfalls der Name "S:ROM20.config" verwendet. Existiert im Verzeichnis S: die Datei ROM20.config, so wird diese beim Programmstart automatisch geladen, anderenfalls werden die im Programm festgelegten Vorgabeeinstellungen benutzt. SaveValues [filename] --------------------- Mit diesem Kommando werden alle momentan vorhandenen Werte, also Konstanten und Variablen, in eine Datei abgespeichert. Wird kein Dateiname angegeben, so wird die Vorgabe "S:ROM20.values" benutzt. Es werden nur die Werte abgespeichert, die entweder vorher eingelesen wurden, oder denen ein Wert mit dem Zuweisungszeichen ":=" zugewiesen wurde. Werte, denen ein Wert mit dem einfachen Gleichheitzeichen zugewiesen wurde, werden nicht abgespeichert. Nach den Anweisungen Pi := 2*arcsin(1) piViertel = Pi/4 wird also der Wert Pi in die Datei abgespeichert, piViertel aber nicht. Dadurch wird verhindert, daß irgendwelche unbedeutenden Hilfswerte, deren Bedeutung man doch bald vergessen hat, in der Datei Platz wegnehmen. Die Datei ist eine Textdatei, die mit einem ASCII- Texteditor verändert werden kann, so kann man Werte löschen, korrigieren usw. Jede Zeile dieser Datei definiert einen Wert und sieht folgendermaßen aus: = ; [ Kommentar ] Beispiel: Lichtgeschwindigkeit = 2.9979E8 ; in m/s Die Datei darf bis zu 2048 Zeilen haben, eine Zeile darf bis zu 256 Zeichen lang sein. LoadValues [fileName] --------------------- Lädt die Werte aus der Datei ein, so daß mit ihnen fortan gerechnet werden kann. Wird keine Datei angegeben, so wird der Vorgabename "S:ROM20.values" benutzt. Existiert die Datei ROM20.Values im Verzeichnis S:, so wird diese beim Programmstart automatisch eingelesen. Es ist praktisch, wenn man in dieser Datei einige oft benötigte Werte definiert hat, so daß man mit ihnen jederzeit Rechnen kann. Seltener benutzte Werte kann man eventuell in einer separaten Datei abspeichern und bei Bedarf laden. So kann man z.B. auch spezielle Dateien anlegen, die etwas die Kalorienzahl oder Preise von Lebensmitteln enthalten. LoadValues löscht nicht die bereits vorhandenen Werte. Es werden nur neue Werte dazugeladen und eventuell existierende überschrieben. DisposeAllValues ---------------- Diese Anweisung löscht alle vorhandenen Werte. RemoveValue ------------------ Löscht den angegebenen Wert. FormulaOn ------------------ Oft muß man eine bestimmte Formel einer Variablen mit verschiedenen Werten wiederholt durchrechnen. Statt in der Formel nun jedesmal den Wert der Variablen an allen Stellen, an denen sie auftaucht, zu verändern, kann man FormulaOn benutzen. "formel" ist ein beliebiger mathematischer Ausdruck, in dem die Variable "x" vorkommt. Nachdem man das Kommando FormulaOn eingegeben hat, wird jede folgende Eingabe berechnet, und dann der Variablen x zugewiesen. Darauf wird die Formel berechnet, und zum Schluß das Resultat dieser Formel ausgegeben. Ein ganz einfaches Beispiel: Wir wollen die dritte Potenz einiger Zahlen berechnen: FormulaOn x*x*x Eingabe Ergebnis 2 8 8.2-5.2 27 0.5 0.0125 2+3 125 Interessant wird das natürlich erst, wenn man kompliziertere Funktionen berechnen will, beispielsweise will man eine Wertetabelle fÜr ein Polynom anlegen. Als Variablenname wird immer "x" benutzt. Man hätte natürlich eine freie Wahl des Variablennames zulassen können, aber daß hätte die Sache nur unnötig kopliziert. Bedenken muß man aber, daß die Variable x durch das Benutzen einer Formel verändert wird. FormulaOff ---------- Die Formel wird nicht mehr benutzt, man erhält als Ergebnis wieder das Resultat der Eingabe. Info ---- Dieses Kommando gibt eine Übersicht über alle Einstellungen. So wird z.B. das Zahlenformat angegeben, und es wird ausgegeben ob momentan eine Formel auf die Eingaben angewendet wird oder nicht. Außerdem werden einige statistische Angaben angezeigt. Wichtig ist die erste Zeile. Hier sollte normalerweise "Status: All OK" stehen. Steht dort etwas anderes, ist ein schwerwiegender Fehler aufgetreten und es ist am besten das Programm zu beenden und neu zu starten. Dieses Programm besitzt auch einige statistische Funktionen wie Mittelwert, Varianz usw. Gibt man eines der folgenden Kommandos wird dieser statistische Wert jeweils ausgegeben und gleichzeitig der Variablen "#" zugewiesen, so daß man mit diesem Wert dann sofort weiterechnen kann. SumOfInputs ----------- Liefert die Summe aller Ergebnisse. StatisticsCounter ----------------- Ein Zähler, der einem sagt wie viele Ergebnisse man bereits erhalten hat. MeanValue --------- Mittelwert aller Ergebnisse. Dies entspricht SumOfInputs/StatisticsCounter SumOfSquares ------------ Summe aller quadrierten Ergebnisse. Variation --------- Varianz aller Ergebnisse. StandartDeviation ----------------- Standardabweichung oder Streuung der Ergebnisse. Das ist gerade die Quadratwurzel der Varianz. ResetStatistics --------------- Setzt alle statistischen Werte zurück, so als ob das Programm gerade erst gestartet worden wäre. StatisticsUndo -------------- Der Wert der letzten Eingabe wird für die statistischen Berechnungen ignoriert. Das ist sinnvoll, wenn man sich vertippt hat. StatisticsOff ------------- Es werden die Statistikwerte eingefroren. Das ist nützlich, wenn man statistische Berechnungen begonnen hat, und mittendrin einige Nebenrechnungen machen will, die natürlich nicht in die statistischen Berechnungen eingehen dürfen. StatisticsOn ------------ Ab jetzt werden die statistischen Berechnungen wieder fortgeführt. Bei Programmstart ist die Statistik immer eingeschaltet. Elementare mathematische Funktionen ----------------------------------- In wesentlichen handelt es sich hierbei um bekannte Funktionen, die von dem mathematischen Koprozessor oder der MathIEEEDoubTrans.library berechnet werden. Argumente oder Ergebnisse von Winkelfunktionen wie sin() oder arctan() sind immer auf Radiant bezogen. Will man z.B. den Sinus von 30 Grad berechnen, so muß man "sin(DegToRad(30))" eingeben. DegToRad() ---------- Wandelt einen in Grad angegebenen Winkel in Radiant um. Das gleiche erreicht man durch "*Pi/180" RND() ----- Produziert Zufallszahlen. Das Argument muß eine GANZE Zahl zwischen 1 und MAX(INTEGER) sein. RND(n) liefert eine Zufallszahl zwischen 0 und (n-1). (RND(6)+1) simuliert also einen Würfel. RadToDeg() ---------- Wandelt einen in Radiant angegebenen Winkel in Grad um. "RadToDeg(x)" entspricht also "x/Pi*180" abs() ----- Ergibt den Absolutwert oder Betrag des Argumentes. arccos() -------- Die Arcus-Cosinus-Funktion. Inverse Funktion des Cosinus. Der Betrag des Argumentes darf nicht größer als eins sein. arcsin() -------- Die Arcus-Sinus-Funktion. Inverse Funktion des Sinus. Der Betrag des Argumentes darf nicht größer als eins sein. arctan() -------- Die Arcus-Tanges-Funktion. Inverse Funktion des Tangens. artanh() ------- Die Arcus-Tangens-Hyperbolicus-Funktion. Inverse Funktion des Tanges- Hyperbolicus. ceil() ------ Liefert die nächste ganze Zahl die größer oder gleich dem Argument ist. Libraryfunktion, Name kommt von ceiling, engl. für Decke. cos() ----- Cosinus cosh() ------ Cosinus-Hyperbolicus entier() -------- Liefert die nächste ganze Zahl, die kleiner oder gleich dem Argument ist. Die Berechnung erfolgt über die OBERON-Funktion ENTIER(), daher muß der Betrag des Arguments kleiner als MAX(LONGINT) sein. Eigentlich sollte man lieber floor() benutzen, da man dann diese Bereicheinschränkung nicht beachten muß. exp() ----- Exponentialfunktion zur Basis e=2.7... fac() ----- Fakultät. Das Argument muß eine ganze Zahl zwischen 0 und 170 sein. floor() ------- Liefert die nächste ganze Zahl kleiner oder gleich dem Argument. Libraryfunktion, Name kommt von floor engl. Boden, siehe auch ceil() id() ---- Identität. id(x)=x int() ----- Liefert die nächste ganze Zahl, die dichter bei Null liegt als das Argument oder mit dem Argument identisch ist. jump() ------ (Heaviside'sche) Sprungfunktion. Liefert 1 für Argumente die größer als Null sind, sonst Null. Diese Funktion ist recht nützlich um bestimmte Stellen eines Funktionsgraphen auszublenden. In der Elektronik kommt sie unter dem namen E() vor, ich habe sie jump() genannt um Verwechslungen mit der Exponentialfunktion zu verhindern und um den Namen "E" für Zahlenwerte freizuhalten. ln() ---- Der natürliche Logarithmus zur Basis e=2.7... log() ----- Der Zehnerlogarithmus (dekadischer Logarithmus) zur Basis 10. log() ist identisch mit log10() log2() ------ Logarithmus zur Basis 2. round() ------- Rundung auf die nächste ganze Zahl. round(x) entspricht floor(x+0.5). sin() ----- Sinusfunktion. Argumente sind wie bei allen Winkelfunktionen auf Radiant bezogen. sinh() ------ Sinus-Hyperbolicus sqr() ----- Quadrat. sqr(x)=x*x sqrt() ------ Quadratwurzel. sqrt(x*x)=abs(x). Das Argument darf nicht negativ sein. tan() ----- Tangens. tanh() ------ Tangens Hyperbolicus tentox() -------- Ergibt 10^x twotox() -------- Ergibt 2^x Fehler ------ Natürlich kann ich nicht garantieren, daß die Berechnungen des Programmes in allen Fällen richtig sind. Auch bin ich nicht verantwortlich für irgendwelche Schäden, die durch Verwendung dieses Programms oder dessen Berechnungen entstehen. Sie haben ja, wie oben gesagt, zwei Wochen Zeit um das Programm ausführlich zu testen bevor sie die Sharewaregebühr bezahlen müssen. Die Zahlung der Sharewaregebühr gibt Ihnen nicht das Recht auf irgendwelche zukümftigen Versionen des Programms, auch wenn sich herausstellen sollte, daß das Programm Fehler enthält. Sie bezahlen die Sharewaregebühr für die Ihnen vorliegende und von Ihnen getestete Programmversion! Ob es von Fehlern bereinigte oder erweiterte Versionen des Programmes (eventuell Pulldown-Menüs, Funktionsplotter, nummerische Integration usw.) geben wird hängt natürlich davon ab, wie viele Personen die Sharewaregebühr bezahlen. Solange ich nicht wenigstens meine Unkosten mit der Sharewaregebühr decken kann wird es garantiert keine erweiterte Version geben! Stefan Salewski, Stade, den 24.04.92