MathPlot ======== © by Rüdiger Dreier 1991/92/93 Diese Anleitung soll eine Benutzung der ShareWareversion von MathPlot ermöglichen. Abschnitte, die mit "!!" in der ersten Spalte gekenn- zeichnet sind, enthalten wichtige Hinweise und sollten gelesen werden. Bei einer Registrierung erhalten Sie eine gedruckte Version der aktuellen Anleitung. Zur Registrierung siehe "Registrierung.txt" Meine Adresse: Rüdiger Dreier Gustav-Winkler-Str. 40 33699 Bielefeld Deutschland Bis auf weiteres bin ich auch per EMail erreichbar: ruediger.dreier@post.uni-bielefeld.de Ein wichtiger Hinweis ===================== !! Der Autor übernimmt keinerlei Haftung für Schäden, die aus der sach- !! oder unsach-gemässen Benutzung des Programms entstehen !! !! !! Weiterhin wird keine Haftung für die Fehlerfreiheit des Programms !! übernommen !! !! !! Benutzung auf eigene Gefahr ! !! !! MathPlot ist SHAREWARE. !! Bei regelmäßiger Benutzung ist die Share-Gebühr zu bezahlen. !! Näheres siehe weiter unten. Dazu bitte das Formular aus !! "Registrierung.txt" benutzen ! Zu dieser Version von MathPlot ============================== !! Diese Version des Programms ist eine Demoversion mit leichten !! Einschränkungen (Es erscheint in regelmäßigen Abständen ein !! Nervrequester). Sie darf unter folgenden Bedingungen weiter- !! gegeben werden: - Der Copyrighttext darf nicht verändert worden sein. - Es darf mit dem Vertrieb des Programms KEIN Geld verdient werden (also nur Kosten für Porto, Material und eine KLEINE Gebühr für die Ab- nutzung der Kopieranlage, Strom etc.) - Das Programmpaket darf nicht verändert worden sein. - Das Programmpaket muß vollständig sein, also sämtliche Teile der Anleitung (in mindestens einer Sprache) und eine lauffähige Version von MathPlot sowie eine Version der mtool.library müssen zusammen weitergegeben werden. - Will jemand MathPlot (oder einen Teil davon) oder die mtool.library (oder einen Teil davon) kommerziell nutzen (z.B. in eine sogenannte "PD-Disk-Serie" mit einem Verkaufspreis von über DM 5,-- je Diskette oder eine CD mit PD-Soft für über DM 60,- aufnehmen), so ist dafür die schriftliche Genehmigung des Autors nötig. - Es IST erlaubt, die Textdateien in andere Sprachen zu übersetzen und zusammen mit diesem Programm weiterzugeben. Wer sich diese Mühe gemacht hat, sende mir bitte die entsprechende Datei zu. Dann bitte auch mitteilen, ob ich diese Datei bei den Demo-Version und den registrierten Versionen von MathPlot beilegen darf ! - Es IST erlaubt und erwünscht, daß diese Demoversion in elektronischen Netzwerken verbreitet wird. Sharegebühr =========== Wird dieses Programm regelmäßig benutzt, so ist die Sharegebühr zu bezahlen. Sie beträgt DM 30,-- oder (US)$ 20,-- und ist unter Angabe des Programmnamens und der Programmversion (möglichst auch wo man sie gefunden hat) an die oben stehende Adresse zu senden (bitte das Formular aus "Registrierung.txt" benutzen). Dafür erhält man - Die neuste Version von Math-Plot (Vollversion). Diese Version darf NICHT weitergegeben werden. - Eine gedruckte Anleitung (die Vollversion von dieser, bitte angeben, ob Deutsch oder Englisch, andere Sprachen stehen NICHT zur Ver- fügung). - Updateservice. Neuere Versionen können (falls vorhanden) gegen Einsendung einer Leerdiskette, Rückporto und Umschlag unter Angabe der Registriernummer angefordert werden. Bitte die vorhandene Version angeben. Sollte keine neuere Version vorliegen, oder die Veränderungen zu minimal sein, werde ich mit der Antwort warten, bis entsprechende Veränderungen vorhanden sind. Falls Sie per EMail erreichbar sind, kann ich auch in gewissen Abständen die neueste Version als "UUENCODE'd" Version zuschicken. Der einfachste Weg ist aber, sich eine neue Demoversion von MathPlot aus einer Mailbox o.ä. zu besorgen. Zusammen mit dem Keyfile, daß Sie bei der Registrierung erhalten, wird aus dieser Demoversion eine vollständige Version des Programms. Ich akzeptiere auch gültige, (bundes)deutsche Briefmarken. Der Einzelwert einer Marke sollte nicht über DM 1,-- liegen. Euroschecks oder bar ist mir aber lieber. Der Quelltext von MathPlot ========================== Der Quelltext ist NICHT frei kopierbar und ist nur gegen Bezahlung erhältlich. Die Gebühr hierfür beträgt DM 30,-- oder (US)$ 20,--. !! Der Quelltext darf nicht weitergegeben oder (ohne schriftliche !! Genehmigung) kommerziell genutzt werden. Der Quelltext ist NUR für !! registrierte Benutzer erhältlich. Anwendungsgebiet ================ MathPlot ist ein Programm zum Zeichnen zweidimensionaler mathematischer Funktionen. Es können bis zu 10 Funktionen eingegeben und gezeichnet werden. Zusätzlich kann man sich von jeder Funktion die erste und zweite Ableitung zeichnen lassen (jeweils numerisch oder symbolisch bestimmt). Weiterhin sucht das Programm Nullstellen, Extrema und Wendestelle. Numerische Integration ist möglich. Ein ARexx-Port zur einfachen Erweiterung des Programms steht zur Verfügung. MathPlot eignet sich zur Unterstützung bei Kurvendiskussionen, um die selbst errechneten Ergebnisse zu kontrollieren. Anforderungen an den Rechner ============================ !! Das Programm läuft nur unter Kickstart 2.04 und höher ! 1MB !! Speicher sollten eigentlich ausreichen, für große Screens ist 1MB !! Chip-RAM nicht schlecht. Der Stack sollte mindestens 20000 Bytes !! betragen, sonst kommt es zu leicht zu Abstürzen. Im logischen Verzeichnis !! LIBS: müssen sich mehrere Libraries befinden: !! - mathieeedoubbas.library !! - mathieeedoubtrans.library !! - asl.library !! - mtool.library (in diesem Ordner enthalten) !! - diskfont.library (V36 oder höher) !! - iffparse.library (wird nur zum Abspeichern als IFF-Bild benötigt) Und in S: sollten sich befinden (Nicht unbedingt nötig): - mplot.prefs, diese Datei enthält alle Voreinstellungen - Funktionen.fkt, einige vordefinierte Funktionen. - Konstanten.con, einige vordefinierte Konstanten - Macros.mcr , einige vordefinierte Makros. Falls der ARexx-Port benutzt werden soll, sollte der Inhalt des Ordner "Macros" nach REXX: kopiert werden (bei ARexx scheint ein "assign ..... add" nicht zu funktionieren). Die Menupunkte ============== Es folgt eine kurze Beschreibung der verschiedenen Menupunkte. Die Bedeutung der meisten Menupunkte sollte alleine schon aus dem Namen hervorgehen. Projekt ------- Neu --- Nach einer Sicherheitsabfrage wird der Bildschirm gelöscht. Geschieht automatisch beim Verändern der Intervallgrenzen. Eine evt. vorhandene HP-Plotausgabe wird abgeschlossen. IFF Save As ----------- Dieser Menupunkt benötigt die iffparse.library. Ist sie nicht vorhanden, so erscheint ein Requester. Wenn sie vorhanden ist wird nach dem Namen gefragt, unter dem das Bild abgespeichert werden soll. Falls das Programm von Workbench gestartet wurde, so wird das Icon als Icon für diese Datei benutzt. Funktionen laden/speichern -------------------------- Nach Eingabe eines Namens wird die entsprechende Datei bearbeitet. Die in der Datei enthaltenen Zeilen werden als Funktionen interpretiert, bzw. die aktuellen Funktionen werden gespeichert. Das Demo-File zeigt, wie die Funktionen anzuordnen sind. Macros/Konstanten laden/speichern --------------------------------- Siehe bei Funktionen laden/speichern. Drucken ------- Der Screen wird auf einem Preferences-Drucker ausgegeben. Während des Druckvorgangs ändert sich die Farbe des Screens. Eine HP-Ausgabe wird abgeschlossen. Iconify ------- Der Screen wird geschlossen und auf der Workbench erscheint ein Icon für das Programm. Ein Doppelklick auf das Icon startet das Programm wieder. Die alten Funktionen etc. sind noch erhalten. Sollte nicht genügend Speicher vorhanden sein, um einen Screen zu öffnen, so wird das Programm beendet. Als Icon wird das Icon des Programms benutzt, falls es von der Workbench gestartet wurde. Bei Start von CLI funktioniert Iconify nicht. About ----- Es werden Informationen über das Programm (Versionsnummer) und den Autor angezeigt. Ebenso wird der Name des PublicScreens und des ARexx-Ports angezeigt. In neueren Versionen werden vielleicht noch mehr Daten angezeigt. Ende ---- Nach einer Sicherheitsabfrage wird das Programm beendet (natürlich nur, falls die Sicherheitsabfrage entsprechend beantwortet wurde). !! Da der Screen von MathPlot ein "Public-Screen" ist, kann es passieren, !! daß zu diesem Zeitpunkt noch ein FREMDES Fenster auf dem Screen !! ist. In diesem Fall wird das Programm NICHT beendet und es erscheint !! eine Mitteilung. Zeichnen -------- Funkionen ändern ---------------- Nach Anwahl dieses Menupunktes erscheint ein Untermenu mit den bisher eingegebenen Funktionen (es werden die ersten 14 Zeichen jeder Funktion angezeigt). Wird eine dieser Funktionen angewählt, so erscheint sie in einem Fenster, so daß sie verändert werden kann. Die Funktion muß mathematisch korrekt eingegeben werden. Wenn unpaarige Klammern vorhanden sind, erscheint das Fenster gleich wieder, damit man die Funktion korrigieren kann. Die veränderte Funktion wird mit RETURN oder durch Anwahl von "Fertig" übernommen; wird "Cancel" angewählt, so wird die ursprüngliche Funktion weiter verwendet. Funkion #? Ableitung -------------------- Bei jedem dieser 5 Menupunkte erscheint wieder das oben beschriebene Untermenu. Durch Anwahl eines Untermenupunktes kann man dann bestimmen, welche Funktion man gezeichnet haben will. Numerische Ableitungen werden nach dem Sekantenverfahren bestimmt, dabei können schon in der ersten Ableitung Ungenauigkeiten auftreten, die in der zweiten Ableitung dann schon recht deutlich werden. Beim symbolischen Ableiten wird erst die Ableitung als Term bestimmt und dann normal gezeichnet. Dabei kommt es dann nach Anwahl der Funktion zu einer kurzen Verzögerung, in der die Ableitung bestimmt wird. Diese Methode ist genauer, hat aber auch ihre Nachteile: - Das Bilden der Ableitung ist ein rekursiver Vorgang. Der Stack sollte daher ausreichend (mind. 20000 Bytes) sein. Kommt es zu unerklärlichen Abstürzen, sollte man ihn noch weiter erhöhen. - Einige der verwendbaren Funktionen sind nicht ohne weiteres abzuleiten. Die Ableitung von sgn ist z.B. fast überall Null, nur um Null herum ist sie nicht definiert. Das Programm setzt dafür aber einfach Null ein. - Außerdem wird z.B. die Ableitung von ln zu 1/x bestimmt und auch so gezeichnet, d.h. auch im negativen Bereich gezeichnet, obwohl ln dort überhaupt nicht definiert ist. Diskussion ---------- Unter diesem Menupunkt kann man sich eine grobe Kurvendiskussion erstellen lassen (Nullpunkte, Wendepunkte und Extrempunkte). Diese Punkte werden nur für das eingegebene Intervall bestimmt. Außerdem wird die Funktion sowie die erste und zweite Ableitung angezeigt (wenn dies gewünscht ist). Bei Extremstellen wird angegeben, ob es ein Minimum oder Maximum ist, bei Wendestellen, ob es eine rechts/links "Kurve" oder umgekehrt ist. Mit dem Menupunkt Diskussion des Bearbeiten-Menus kann bestimmt werden, ob bei diesem Menupunkt - kleine Zahlen auf Null gerundet werden sollen - die Ausgabe auf dem Bildschirm erscheinen soll - die Ausgabe in eine Datei geschrieben werden soll - nach jedem Diskussionsabschnitt gewartet werden soll - die Funktionsterm und Ableitungen angezeigt werden sollen. WICHTIG !!! ============ !! Ich übernehme keinerlei Verantwortung für die Richtigkeit der !! Ableitungen oder anderer Ergebnisse dieses Programms ! Nie blind auf die !! Ergebnisse vertrauen, lieber nochmal von Hand nachrechnen !!!! Num. Integration ---------------- Hier können Sie eine Funktion numerisch Integrieren lassen. In dem erscheinenden Fenster wird die angewählte Funktion angezeigt (sie kann hier auch noch verändert werden !), außerdem werden Start und Ende des Integrationsbereiches abgefragt. Schließlich muß man noch angeben, in wievielen Schritten gearbeitet werden soll. Meist gilt: je mehr Schritte, desto besser. Die Integration startet man mit "Fertig", das Ergebnis wird in dem einem Textgadget angezeigt, Fehler im anderen Text- gadget. Das Fenster schließt man durch Anwahl von "Quit". Die von diesem Programm benutzten Ableitungen ============================================= - +-*/ Das bliche - x^a a*x^{(a-1)} - a^x a^x*ln{a} - f(x)^{g(x)} (g(x)*ln(f(x)))'*f(x)^{g(x)} - trig. Fkt. Das bliche - abs(x) sgn(x) (Für x=0 nicht richtig) - int(x) 0 (Läßt sich drüber diskutieren) - sgn(x) 0 (Laßt sich drüber diskutieren) Die Fehlercodes des Programms ============================= DIVBYZERO & 1 & Es wurde durch 0 geteilt LOGNEG & 2 & log(<=0) SQRTNEG & 4 & sqrt(<0) ATRIG & 8 & asin/acos(x), x<-1 oder x > 1 UNPAKLAM & 16 & Unpaarige Klammern TEST & 32 & Wird nicht benutzt NOFUNC & 64 & Keine Funktion eingegeben NO_KONST & 128 & Keine solche Konstante NO_MEM & 256 & Nicht genug Speicher POWERROR & 512 & < 0 hoch Bruch wurde versucht NO_FUNC & 1024 & Keine Funktion gefunden ER_AHYP & 2048 & Fehler bei acosh(),atanh() Bearbeiten ---------- Achsen/autom. ------------ Es wird ein Koordinatenkreuz mit einigen Unterteilungen gezeichnet. Achsen/manuell -------------- Ein Fenster zur Abfrage der Anzahl Unterteilungen in x- und y-Richtung und der Textstellen (in der Form: Texte jede x-te Unterteilung) erscheint. Die Einstellungen geschehen über Schieberegler. Die beiden Regler für eine Achse sind miteinander gekoppelt, so daß bei "Text jede ..." kein höherer Wert eingegeben kann, als es überhaupt Unterteilungen gibt. Um das ideale Koordinatensystem zu erhalten, ist es ratsam, vor dem Zeichnen der Funktion die Einstellungen so lange zu variieren, bis die Darstellung gefällt. Ist erst einmal eine Funktion gezeichnet, so kann nur einmal ein Koordinatensystem gezeichnet werden, danach ist der entsprechende Menupunkt nicht mehr anwählbar. Bevor die Achsen gezeichnet werden, erscheint das Fenster wie unter "Text eingeben" beschrieben, um nach der Farbe für die Achsen zu fragen. Zoom ---- Dieser Menupunkt stellt eine Art Lupenfunktion zur Verfügung. Das Intervall, das als nächstes gezeichnet werden soll, kann mit der Maus ausgewählt werden. Die obere/linke Ecke wird mit der Maus angefahren, die linke Maustaste gedrückt und gehalten und dann die rechte/untere Ecke ausgewählt und die Maustaste losgelassen. Danach wird der Bildschirm gelöscht. Während die Maustaste gedrückt wird, wird um den momentan ausgewählten Bereich ein Kasten gezeichnet. Eine evt. vorhandene HP-Plotausgabe wird abgeschlossen. Text einfügen ------------- Es erscheint ein Fenster mit einem Stringgadget, in dem man einen Text eingeben kann. Nach RETURN wird dieser Text immer an der aktuellen Mausposition angezeigt und kann so positioniert werden. Nach Druck auf die linke Maustaste wird der Text an der aktuellen Position in dem frei gewählten Zeichensatz und der gewünschten Farbe gezeichnet. Diese Angaben werden bei "Font wählen" gemacht. Genauigkeit ----------- Es erscheinen 4 SubMenuPunkte, mit denen die Genauigkeit auf "klein", "mittel", "groß" oder "Sehr groß" gesetzt werden kann. Je genauer gezeichnet wird, desto mehr Zeit wird benötigt. Intervall --------- Nach Anwahl dieses Menupunktes erscheint ein Fenster mit 4 String- gadgets, in denen die alten Intervallgrenzen (der Bereich, für den die Funktion gezeichnet werden soll) anzeigt werden. Diese Werte kann man wie gewohnt verändern. Der eingegebene Term muß nur den An- forderungen entsprechen, die auch für die Funktionen gelten. Außerdem darf die linke/untere Grenze nicht größer/gleich sein als die rechte/obere. In solchen Fällen erscheint das Fenster nach Anwahl des "Fertig"-Gadget wieder. Weiterhin sind zwei Cycle-Gadgets vorhanden (für jede Achse eins). Hier wird eingegeben, wie die für diese Achse eingegebenen Werte zu interpretieren sind. Zur Verfügung stehen *1, *e, *pi, 10^, e^. Konstanten ---------- Es erscheint ein Fenster mit einem Cycle- und einem Stringgadget. Mit dem Cycle-Gadget wird der Name der Konstanten (a-z) eingegeben. Wird der gewünschte Name angezeigt, RETURN drücken. Der Wert für e und x wird später nirgendswo verwendet, sollte also nicht benutzt werden. Das Stringgadget ist zunächst deaktiviert. Wurde ein Name ausgewählt, so wird es aktiviert und eine evt. vorhandene Definition der Konstanten wird angezeigt. Diese kann verändert bzw. neu eingegeben werden. Durch Anwahl des "Fertig"-Gadgets wird die Definition übernommen. Bei Anwahl von "Cancel" vergißt das Programm die Veränderungen, die alte Definition der Konstanten wird weiter verwendet. Macros ------ Siehe auch bei Konstanten. In den Funktionen wird ein Macro als_Macroname oder _Macroname(Parameter) angesprochen (z.B. _a bzw. _a(2*x)). Wird ein Parameter angegeben, so wird in dem Macro der Buchstabe x durch den Parameter ersetzt. Ein Macro kann selbst wieder aus anderen Macros bestehen. Rekursionen werden NICHT automatisch erkannt. HP-Ausgabe ---------- Bei "An" wird der Name eines Files abgefragt, in das die Daten für einen HP-Plotter geschrieben werden sollen. Alle Zeichenvorgänge incl. Text einfügen werden in diese Datei geschrieben. Solange dieser Modus aktiv ist, bleibt die Farbe des Screens verändert. Ausgeschaltet wird dieser Modus mit "Aus" oder durch Ändern des Intervall oder durch normalen Ausdruck (Drucken). Farbe wählen oder ändern ------------------------ Mit Hilfe der drei Menuunterpunkte können die drei Farbpaletten, die das Programm verwaltet, geändert werden. Diese Paletten sind für den normalen Zeichenbetrieb, für die Druckausgabe oder wenn eine HP-Ausgabe aktiv ist. Außerdem wird hier die aktuelle Zeichenfarbe bestimmt. Die zuletzt im Palettenrequester aktive Farbe ist gleichzeitig die neue Zeichen- farbe. Font wählen ----------- Mit den beiden Subitems "Font für Text" und "Font für Label" kann der Zeichensatz, die Größe, der Style sowie die Vorder- und Hinter- grundfarbe bestimmt werden, der zum Beschriften der Achsen bzw. bei Text einfügen benutzt wird. Zur Auswahl erscheint der Standart-Font-Requester des Systems. Mit dem dritten Subitem "Bildschirmfont" wird ein neuer Zeichensatz für den Bildschirm bestimmt. Die Farb- und Zeichenmodusangaben haben keine Wirkung. Wenn OK angewählt wurde wird ein neuer Bildschirm mit dem gewünschten Zeichensatz geöffnet. Auflösung ändern ---------------- In einer Liste werden alle verfügbaren (sinnvollen) Darstellungsmodi aufgelistet. Außerdem kann hier die tatsächliche neue Auflösung und die Anzahl Farben (bzw. die Anzahl Bitplanes) eingegeben werden. Sollte beim Öffnen des Bildschirm etwas nicht ganz klappen, so wird versucht, einen Bildschirm mit den Default-Werten (die auf jedem Amiga laufen sollten), zu öffnen. Klappt dies auch nicht, sollte das Programm sich selbst beenden. Linienmuster ändern ------------------- Mit diesem Menupunkt können die drei Linienmuster (Funktion, 1/2. Ableitung) verändert werden. Diskussion ---------- Hier können einige Einstellungen für den Diskussionsvorgang vor- genommen werden. AREXX ----- ARexx-Macro starten ------------------- In dem erscheinenden Requester kann ein Rexx-File ausgewählt werden, das dann ausgeführt wird. Es werden alle Dateien in rexx: mit der Endung ".mapl" angezeigt (im Gegensatz zur Endung ".mpl", die einen zusätzlichen Befehl kennzeichnet und besser nicht von Hand gestartet werden sollten). ARexx-Macro zuweisen -------------------- In dem AREXX-Menu sind 10 Einträge zum direkten Starten von AREXX-Makros vorgesehen. Mit diesem Menupunkt werden diese Makros bestimmt. Makroaufnahme ------------- Das Programm ist in der Lage, einfache ARexx-Skripts automatisch zu erstellen. Gespeichert werden: Funktion zeichnen/verändern, Konstanten und Macros verändern, Achsen zeichnen, Farben wählen und Intervalleingabe. Ein Dateiname für die zum Abspeichern zu benutzende Datei wird abgefragt. Voreinstellungen ---------------- Im Menu "Voreinstellungen" finden sich viele Menupunkte nocheinmal, die auch im Menu "Bearbeiten" vorkommen. Für das Programm gibt es aktuelle Einstellungen (die z.B. beim nächsten Zeichenvorgang benutzt werden), diese werden mit dem "Bearbeiten"-Menu eingestellt und Voreinstellungen, die nach dem Programmstart aktiv sind. In diesem Menu werden die letztgenannten Einstellungen definiert. Diese sind dann nicht sofort wirksam, sondern erst, wenn das Programm neu gestartet wurde (und die gewünschten Einstellungen in der Datei abgespeichert wurden, die beim Start geladen wird) oder nachdem "Benutzen" gewählt wurde (nach "Benutzen" sind NICHT alle geänderten Voreinstellungen aktiv, die Textdatei z.B., die alle Texte des Programms enthält, wird nur einmal beim Programmstart geladen). Im Folgenden werden nur die Menupunkte beschrieben, für die es in den anderen Menus kein Äquivalent gibt: Auflösung --------- Beim allerersten Start ohne ein .prefs-File MUSS ein Modus und eine Farbtiefe explizit angewählt werden, sonst kommt es zu Fehldarstellungen. Pfade zuweisen -------------- Beim Programmstart (und nur dort, nicht nach "Benutzen") werden einige Dateien geladen: - eine Textdatei, die alle Texte des Programms enthält - je eine Datei mit Vorschlägen für die Funktionen, Konstanten und Makros. Diese 4 Dateien werden hier abgefragt. Weiterhin fragt dieser Menupunkt nach dem gewünschten Namensvorschlag beim Abspeichern als IFF-File und beim Starten von ARexx-Makros sowie einen Vorschlag für alle sonstigen Filerequester. Shortcuts --------- Da die Texte des Programms in verschiedene Sprachen übersetzt werden können muß eine Möglichkeit vorhanden sein die Tastaturabkürzungen für die Gadgets selbst einzustellen. Dazu dient diese Menu. Es erscheint ein Stringgadget mit einigen Buchstaben. Die Anzahl der Buchstaben sollte NICHT verändert werden. - der erste Buchstabe ist der Großbuchstabe, der äquivalent zur Anwahl von OK sein soll. - der zweite Buchstabe ist der Großbuchstabe, der äquivalent zur Anwahl von Cancel sein soll. - Die nächsten 4 Buchstaben sind für die Aktivierung der Stringgadet in einem Fenster: der erste Buchstabe für das oberste usw. - Die nächsten 4 Buchstaben sind für die beiden Cycle-Gadget im Intervall-Requester - Die nächsten 6 Buchstaben sind für die 3 Schieberegler im Paletten- requester. Danach erscheint für (fast) jedes Menuitem der entsprechende Requester nochmals und fragt nach einer Tastaturabkürzung für dieses Menu. Mit Cancel kann dieser Vorgang abgebrochen werden. Optionen und Eingabeformate =========================== Funktionsterme ============== Jeder Funktionsterm darf aus den Rechenarten +,-,*,/,^ und den Funktionen sin, cos, tan, log, int, sgn, abs, sqr, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh, ln und den Konstanten a - z und pi ohne x sowie der Variablen x bestehen. e und pi sind mit den erwarteten Werten vordefiniert. Zahlen dürfen normal (1; 1.1; .1) oder in Potenzschreibweise (3e5,5d-7) eingegeben werden. Bei Potenzen darf vor dem Exponenten ein + oder - stehen, ohne daß der Exponent gleich geklammert werden muß. In der Regel sollte man aber alles so klammern, daß zweifelsfrei festgelegt ist, in welcher Reihenfolge der Term berechnet werden soll. Es gilt natürlich Potenz- vor Punkt- vor Strichrechnung. Optionen ======== Beim Start des Programm von der Workbench kann mit dem Tooltype SETTINGS angegeben werden, welche Datei als Voreinstellungsdatei geladen werden soll. Ohne Angabe wird s:mplot.prefs geladen. ARexx-Port ========== Einleitung ---------- MathPlot enthält einen ARexx-Port namens "MPlot_ARexx" (Groß/Klein- schreibung beachten !). Dieser ARexx-Port wurde mit Hilfe der ARexxBox V1.00 von Michael Balzer erstellt. Damit stehen bei allen Kommandos, die Werte zurückgeben, die Schlüsselwörter VAR/K und STEM/K zur Verfügung. Ebenso gibt es die Variable RC2, die evt. eine weitere Fehlernummer oder einen Fehlertext enthält. Die Art der Parameterübergabe und Werterückgabe entspricht den Richtlinien aus den "User Style Guide". Die Standartkommandos, die in diesem Programm eine sinnvolle Bedeutung haben, wurden ebenfalls übernommen. ARexx-Kommandos --------------- Es follt eine Aufzählung und teilweise Erklärung aller vorhandener Kommandos. Dabei wird das Format verwendet, wie es auch das HELP-Kommando erzeugt. Dies ist im wesentlichen das Format, das auch die Shell-Befehle als Schablone benutzen. Um den Griff zum Handbuch zu vermeiden, zuerst eine kurze Erklärung der wichtigsten "Templates" /A - das angegebene Argument MUSS immer vorhanden sein. /K - das angegebene Schlüsselwort MUSS mit angegeben werden, falls dieses Argument angegeben werden soll /S - Einfacher Ein/Ausschalter /N - Numerisches Argument /M - Es können mehrere Argumente folgen Bsp: PROMPT/K/A bedeutet, daß immer ein Argument der Form "PROMPT argument" angegeben werden muß Die Liste der Befehle (diese Liste ist nicht unbeding vollständig, eine immer aktuelle Liste erhält man mit dem HELP-Befehl): BEEP Einfacher DisplayBeep() CLEAR FORCE/S Löscht den Bildschirm. Bei Angabe von FORCE erfolgt keine Sicherheits- abfrage. EVALSTRING VAR/K,STEM/K,FUNCTION/A,X/K => VALUE Wertet eine Funktion aus (Diese Funktion muß immer angegeben werden). Es kann ein Wert für x übergeben werden. Gibt den Wert zurück. FAULT VAR/K,STEM/K,NUMBER/N/A => DESCRIPTION Bisher nicht implementiert. GET1DERIVE VAR/K,STEM/K,NUMBER/N/A => DERIVE Ergibt die erste Ableitung der angegebenen Funktion (die Nummer bezieht sich auf die Stellung im Untermenu, 0 für die erste Funktion, 9 für die letzte). GET2DERIVE VAR/K,STEM/K,NUMBER/N/A => DERIVE siehe oben. GETCOLOR VAR/K, STEM/K, TEXTCOLOR/S, AXISCOLOR/S, PLOTCOLOR/S, TEXTCOLORBACK/S, AXISCOLORBACK/S, TEXTMODE/S, AXISMODE/S => TEXTCOLOR/N, AXISCOLOR/N, PLOTCOLOR/N, TEXTCOLORBACK/N, AXISCOLORBACK/N, TEXTMODE/N, AXISMODE/N Gibt die aktuellen Farben und Zeichenmodi zurück. GETCONST VAR/K,STEM/K,NAME/A => DEFINITION Gibt die Definition der angegebenen Konstanten zurück. Als Name muß ein Buchstabe 'a' - 'z' übergeben werden. GETERROR VAR/K,STEM/K => NUMBER/N Gibt den letzten aufgetretenen Mathe-Fehler zurück. GETFUNCTION VAR/K,STEM/K,NUMBER/N/A => DEFINITION Gibt die Definition der angegebenen Funktion zurück. GETINTERVALL VAR/K,STEM/K,XAXIS/S,XMIN/S,XMAX/S,YAXIS/S,YMIN/S,YMAX/S => DEFINITIONSTRING,DEFINITIONNUMBER/N Gibt die Definition des Intervall zurück. Es darf immer nur eins der Schlüsselwörter angegeben werden. GETMACRO VAR/K,STEM/K,NAME/A => DEFINITION Gibt die Definition eines Macros zurück. GETPOINTS VAR/K, STEM/K, FUNCTION/A, ZERO/S, MAX/S, TURN/S => XPOINTS/M, YPOINTS/M, TYP/M Kurvendiskussion. Es darf immer nur einer der Switches angeschaltet sein. GETPRECISION VAR/K,STEM/K => PRECISION/N Gibt die aktuelle Zeichengenauigkeit zurück. HELP VAR/K,STEM/K,COMMAND,PROMPT/S => COMMANDDESC,COMMANDLIST/M HELP alleine gibt eine Liste aller Kommandos aus. HELP command gibt eine Hilfe zu dem angegebenen Kommando aus. PROMPT wird noch nicht unterstützt. HPGL_ON FILENAME Schaltet die HP-Grafikausgabe ein. LINE XMIN/A YMIN/A XMAX/A YMAX/A Zeichnet eine Linie LOADCONST FILENAME Lädt Konstantendefinitionen. LOADFUNC FILENAME Lädt Funktionsdefinitionen. LOADMACRO FILENAME Lädt Macrodefinitionen. NEW PORTNAME/K Löscht den Bildschirm. PORTNAME wird zur Zeit noch nicht unterstützt. NUMINT VAR/K,STEM/K,STEPS/N/A,XMIN/A,XMAX/A,FUNCTION/A => VALUE Numerische Integration. PLOT NUMBER/N/A,NORMAL/K/S,DERIVE1/K/S,DERIVE2/K/S,DERIVE1NUM/K/S, DERIVE2NUM/K/S,FORCE/S Zeichnet die angegebene Funktion (NUMBER, 0-9) entsprechend den anderen Schlüsselwörtern. POINT XPOS/A YPOS/A Setzt einen Punkt PRINT PROMPT/S Druckausgabe, PROMPT wird noch nicht unterstützt. QUIT FORCE/S Beendet das Programm, FORCE unterdrückt die Sicherheitsabfrage. REQUESTFILE VAR/K,STEM/K,TITLE/K,PATH/K,FILE/K,PATTERN/K,SAVE/S => FILENAME Erzeugt einen Filerequester mit den entsprechenden Vorgaben. SAVE/S ist zusätzlich zu den Vorgaben aus den "User Style Guide" vorhanden und erzeugt eine SAVE-Filerequester (den, bei den man eine Datei NICHT mit einem Doppelclick anwählen kann). REQUESTNOTIFY PROMPT/K/A,BUTTON/K Entspricht in den Templates nicht dem "User Style Guide" und sollte daher nicht benutzt werden. REQUESTNUMBER VAR/K,STEM/K,PROMPT/K,DEFAULT/K/N => NUMBER/N Fragt nach einer Nummer. Zur Zeit so realisiert, daß auch Buchstaben eingegeben werden können, aber nur die Zahl, die sich aus dem ein- gegebenen String ergibt auch zurückgegeben wird. Es werden nur Integer-Werte zurückgegeben. REQUESTRESPONSE VAR/K,STEM/K,TITLE/K,PROMPT/K/A,BUTTON/K => RETURN/N Erzeugt einen Easy-Request. PROMPT ist der angezeigte Text, mit BUTTON (z.B. OK|Cancel) gibt man den Text für die Anwahlfelder an. Es wird die Nummer des angewählten Gadgets zurückgegeben (1,2... = erstes von links, zweites von links...). Falls das rechte Gadget angewählt wurde ist RC=5. REQUESTSTRING VAR/K,STEM/K,PROMPT/K,DEFAULT/K,TITLE/K => STRING Fragt einen String ab. RX VAR/K,STEM/K,CONSOLE/S,ASYNC/S,COMMAND/F => RC/N,RESULT Startet ein externes ARexx-Skript. SAVECONST FILENAME Speichert die Konstanten ab. SAVEFUNC FILENAME Speichert die Funktionen ab. SAVEIFF FILENAME Speichert den Bildschirm als IFF-Grafik ab. SAVEMACRO FILENAME Speichert die Macros ab. SCREENTOBACK Bringt den Screen in den Hintergrund. SCREENTOFRONT Bringt den Screen in den Vordergrund. SELECTMENU MENU/N/A,ITEM/N/A,SUB/N,FORCE/S Wählt ein Menu aus. FORCE unterdrückt einen Teil der Requester, die bei direkter Anwahl des Menus (mit der Maus) erscheinen würden. Das oberste Item/Subitem ist immer die Nummer 0, danach der Reihe nach durchzählen. Unterteilungen werden mitgezählt. SETCOLOR PLOTCOLOR/N/K, AXISCOLOR/N/K, TEXTCOLOR/N/K, AXISCOLORBACK/N/K, TEXTCOLORBACK/N/K, AXISMODE/N/K, TEXTMODE/N/K Setzt die Farben und Zeichenmodi. SETCONST NAME/A,DEFINITION/A Setzt eine Konstante auf den neuen Wert. SETFUNC NUMBER/N/A,DEFINITION/A Setzt eine Funktion auf den neuen Wert. SETINTERVALL XAXIS/N/K,XMIN/K,XMAX/K,YAXIS/N/K,YMIN/K,YMAX/K Setzt das Intervall neu. SETMACRO NAME/A,DEFINITION/A Setzt ein Macro neu. SETNUMPRECISION PRECISION/N/A Setzt die Anzahl Nachkommastellen für die Rückgabewerte bei EVALSTRING und NUMINT. VERSION VAR/K,STEM/K => VERSION Gibt einen Versionsstring zurück. ARexx-Macros ------------ Mit diesen Macros (nicht zu verwechseln mit den (Funktions-) Macros im Programm !) bietet sich die Möglichkeit, immer wiederkehrende Aufgaben zu vereinfachen. So können ganze Funktionenreihen erzeugt und als .IFF- oder .PLT-File abgespeichert werden. Ein Beispiel ist vorhanden: - Schar Zeichnet eine Kurvenschar. Der Benutzer wird nach der Nummer der Funktion im Menu (0 - 9), dem Namen der Konstanten, dem Start- und Endwert für diese Konstante und der Anzahl Schritte gefragt. Danach wird die Funktion entsprechend der Anzahl Schritte mit jeweils anderen Wert für die Konstante gezeichnet. Dieses Skript sollte vom Programm aus gestartet werden. Danksagungen ============ Einigen Leuten möchte ich besonders danken. Ohne Sie läge das Programm jetzt sicherlich nicht in dieser Version vor: - Den Leuten von Commodore für Kickstart/Workbench 2.0 (besonders für die gadtools.library). - Joern Clausen, der als beta-Tester eine Reihe von Fehler fand und auch mit Verbesserungsvorschlägen nicht geizte. Das Programmicon stammt ebenfalls aus seiner Feder (Maus ?). - Michael Balzer für seine ARexxBox. Ohne dieses tolle Hilfsprogramm hätte MathPlot noch immer seinen primitiven ersten ARexx-Port. Abschluß ======== Wer Verbesserungsvorschläge, Fehlermeldungen oder ähnliches hat, kann mir schreiben (Adresse am Anfang). Viel Freude mit diesen Programm !!