.include Text-Disk:JX-80.i
.rot
.lm 7
.rm 75
.m1 3
.m2 2
.m3 2
.m4 3
.header //Graph-Master/#/
.footer //Graph-Master/#/
.sp 2
.breit
.elite
.fett
.doppel
.unterstr
G R A P H - M A S T E R   V.3       
       ( by R.Beck )                
.nounter
.nodoppel
.nofett
.noelite
.nobreit
.sp 3
.fett
.doppel
.kursiv
     Einführung
.gerade
.nodoppel
.nofett
.sp 2
  Graph-Master dient hauptsächlich zur Darstellung von Funktionsgraphen. Die 
bis zur Version 1.3 implementierten Möglichkeiten entsprechen grösstenteils 
dem Lehrstoff in Analysis von der 11. Gymnasiumsklasse in Bayern aufwärts (ab 
K12 Leistungskurs Mathematik), so daß Graph-Master besonders für Schüler
eine ideale Unterstützung darstellt.
.br
  Das Programm habe ich in Amigabasic geschrieben, da es mir nur in dieser 
Sprache möglich war, ein sich selbst veränderndes Programm zu schreiben. 
Dadurch ist es aber auch leicht zu ergänzen und umzuschreiben. Compilieren ist 
aufgrund der Selbstmodifikation leider nicht möglich, doch dazu später.
Aus Gründen der Übersichtlichkeit verwaltet das Programm 2 Fenster. Das 
Textfenster befindet sich auf dem Workbenchscreen, das Grafikfenster füllt 
einen Screen mit 16 Farben und 640*530 Pixeln. Diese Auflösung kann leicht an 
eigene Speicherverhältnisse (oder zukünftige Grafikkarten) angepasst werden. 
Dazu ändert man
.bold on
die Werte xx% und yy% am Programmanfang.
.bold off
Einmal in der 3. Zeile, um die Screen-ausmaße zu bestimmen, dann in Zeile 20, 
wo das Fensterinnere angegeben wird. Diese Werte errechnen sich wie folgt:
.br
      xx% = Screenbreite - 8  ,  yy% = Screenhöhe - 5
.br
  Um einige Eigenarten des Programms zu erklären muß ich kurz noch auf die 
Selbstmodifikation eingehen. Graph-Master ermöglicht es, gleichzeitig ein Modul
mit 15 
verschiedenen Funktionsdefinitionen (mit Definitions- und Wertebereich,.....) 
zu bearbeiten. Diese befinden sich als Basic-Zeilen im Programm. Wurde nun eine
Funktionsdefinition eingegeben, muß erst das gesamte Funktionsmodul gespeichert
werden. (Bis jetzt befand er sich nämlich noch als eine Sammlung von Strings 
und Zahlen im Speicher, AmigaBasic benötigt eine Funktionsdefinition aber in 
Form einer Basic-Zeile. Beim Speichern werden nun diese Strings und Zahlen von 
Graph-Master in ein eigenes kleines Basic-Programm verwandelt.) Jetzt muß das
eben gespeicherte Funktionsmodul wieder geladen werden (Graph-Master macht das 
mit dem CHAIN MERGE - Befehl, das Miniprogramm wurde nun an Graph-Master 
angehängt). Da Graph-Master jetzt um etliche Zeilen länger geworden ist, muß 
vor dem Laden eines neuen Funktionsmoduls der Menüpunkt "neues Mod." angewählt 
werden (das angehängte Programm wird dadurch gelöscht und Graph-Master neu an
Zeile 20 gestartet), damit AmigaBasic nicht wieder die alten Definitionen 
übernimmt.
.br
  Um Graph-Master zu 
.bold on
starten 
.bold off
klicken Sie zuerst das AmigaBasic - Icon an, geben 
im AmigaBasicfenster "clear ,60000" ein, laden Graph-Master mit Open 
und starten ihn mit "run".
.br
.bold on
  Beenden 
.bold off
können Sie Graph-Master, indem Sie das Textfenster anklicken und "q" drücken. 
Es folgt eine Sicherheitsabfrage, die Sie mit "j" oder "n" beantworten können.
.tp 8
.skip 3
.fett
.doppel
.kursiv
Die einzelnen Menü-Punkte
.nofett
.nodoppel
.gerade
.sp 2
.breit
.elite
.doppel
  Disk
.nobreit
.noelite
.nodoppel
.sp 1
.kursiv
Laden
.gerade
.br
  Ein Funktionsmodul kann in den Basicspeicher übernommen werden. Um einen vorher
verwendeten Filenamen zu verwenden, brauchen Sie nur Return zu drücken. Die 
Abfrage "OK ?" ist (wie immer bei Graph-Master) mit "j" oder "n" zu beantworten.
.br
.kursiv
Speichern
.gerade
.br
  Alle 15 Funktionsdefinitionen werden mit allen Merkmalen als Funktionsmodul 
in Basicsyntax gespeichert. Ein alter Name kann mit Return übernommen werden. 
.bold on
Eine Funktionsdefinition kann erst dann zum Zeichnen verwendet werden, wenn sie 
zuvor eingeladen wurde. 
.bold off
Ein bereits existierendes File mit gleichem Namen wird überschrieben.
.br
.kursiv
Directory
.gerade
.br
  Nach Angabe des Pfadnamens in AmigaDos-syntax wird das Directory gelistet.
.br
.kursiv
Übersicht
.gerade
.br
  Graph-Master fragt nach einer Reihe von Funktionen, die mit all ihren 
Eigenschaften wie Name und Wertemenge entweder auf Drucker oder Bildschirm 
ausgegeben werden. Die Bildschirmanzeige kann durch Drücken der rechten 
Maustaste kurzzeitig angehalten werden. Bei der Frage "von .. bis ..." sind 
natürlich nur Zahlen von 1-15 erlaubt, die durch ein Komma getrennt sein 
müssen. 
.bold on
Wie bei jeder Eingabe bricht Graph-Master den Menüpunkt vorzeitig ab, wenn 
falsche Werte eingegeben wurden (zu groß, zu klein oder in falscher 
Reihenfolge). Das kann sehr hilfreich sein, um eine versehentliche Menüwahl 
nicht zu Ende führen zu müssen.
.bold off
.sp 2
.breit
.elite
.doppel
Funktion
.nobreit
.noelite
.nodoppel
.sp 1
.kursiv
Definition
.gerade
.br
  Zuerst verlangt Graph-Master die Nummer der Funktion (1-15), dann müssen Sie 
ihre Definition in Basic-Schreibweise eingeben (also 4*x statt 4x, sin(x) 
statt sin x). Zusätzlich stellt Ihnen Graph-Master noch folgende Konstanten 
und Variablen zur Verfügung, die in folgender Schreibweise in der Definition 
verwendet werden können:
.br
pi# : Kreiskonstante
.br
e#  : Eulersche Zahl
.br
zz# : Schar-Parameter (siehe Extras-Menü)
.br
.kursiv
Bereiche
.gerade
.br
  Nach Eingabe der Funktionsnummer können Sie Definitions- und Wertemenge der 
Funktion jeweils durch Eingabe einer beliebigen unteren und oberen Grenze (die 
größer als die Untergrenze sein muß) bestimmen. Der Wert, der vor der
Wertemenge als "optimaler Y-Abstand" angegeben wird, errechnet sich aus der
Definitionsmenge; umfaßt die Wertemenge einen Zahlenbereich von genau dieser
Größe, so wird die Funktion verzerrungsfrei wiedergegeben.
.br
.kursiv
Netz j/n
.gerade
.br
  Hier können Sie bestimmen, ob mit der Funktion kein (0), ein gestricheltes (1)
oder ein durchgezogenes Koordinatennetz gezeichnet werden soll. GraphMaster
blendet unsichtbare Teile des Netzes selbstständig aus und passt es jeder
Verzerrung an. Das dickere Kreuz um den den Ursprung ist das sogenannte
Einheitskreuz, das die X- und Y-Koordinaten -1 und 1 angibt. An den 
Bildschirmrändern werden zusätzlich die Endwerte angezeigt.
.br
.kursiv
Charakter
.gerade
.br
  Dies ist ein sehr umfangreicher Menüpunkt, mit dem u.a. die Zeichentechnik einer 
Funktion bestimmt werden kann.
.br
  "Schrittweite" bestimmt, aus wie vielen Bildpunkten (und somit
Einzelberechnungen) ein Graph bestehen soll. Ein sehr kleiner Wert erhöht die 
Genauigkeit, aber auch die Rechenzeit. Bei der ersten Eingabe erscheint hier
der optimale Wert, der mit Return übernommen werden kann.
.br
  "Form" gibt an, ob die einzelnen Punkte mit Linien verbunden werden sollen (1),
was eine größere Schrittweite erlaubt, aber z.B. bei der Tangensfunktion Fehler
in der Zeichnung verursacht. In solchen Fällen ist der Wert 0 (Punkte) zu 
wählen.
.br
  "Punktgröße": Größe der Einzelpunkte. Eine sinnvolle Anwendung wäre z.B., einen
Graphen in Größe 3 zu zeichnen, dann die Punktgröße auf 0 (normal) zu
reduzieren und anschließend die Ableitung zu zeichen.
.br
  "Deflückenprotokoll" bestimmt, ob die Definitionslücken der Funktion auf dem
Drucker (2), Bildschirm (1) oder überhaupt nicht mitprotokolliert werden
sollen. Unabhängig von diesem Wert werden Definitionslücken im Graphen durch
einen Kreis auf der X-Achse gekennzeichnet.
.br
.kursiv
Namen
.gerade
.br
  Jeder Funktion kann ein erklärender Name zugeordnet werden. (z.B. die ofizielle
mathematische Schreibweise).
.br
.kursiv
Kopieren
.gerade
.br
  Sämtliche Eigenschaften einer Funktion (Definition, Charakter, Name,....)
können auf eine andere Nummer kopiert werden.
.br
.kursiv
Neues Mod.
.gerade
.br
  Dient dazu, ein bereits geladenes Funktionsmodul zu löschen, um im Programm
wieder Platz für ein neues zu Schaffen. Das Programm wird dabei neu gestartet 
(mit Zeile 20), der Grafikscreen bleibt aber erhalten.
.sp 2
.breit
.doppel
.elite
Zeichnen
.noelite
.nobreit
.nodoppel
.sp 1
.kursiv
Funktion 1 ... Funktion 15
.gerade
.br
  Der Graph wird entsprechend den Eigenschaften seiner Funktion im Grafikfenster 
ausgegeben.
.br
.kursiv
Schar, Ableitung, Umkehrfunktion
.gerade
.br
  Diese Menüpunkte bewirken keine unmittelbare Reaktion des Computers, es sind
vielmehr Schalter, deren aktiver Zustand am Haken vor dem Menüpunkt zu erkennen
ist. Sie bestimmmen, welche Art von Graph gezeichnet wird und können in jeder
beliebigen Kombination gesetzt werden. Sind alle gelöscht, wird der normale
Funktionsgraph gezeichnet, sind alle gesetzt, werden die Ableitungen der
Umkehrfunktionen der durch den Menüpunkt Extra/Schar bestimmten Funktionsschar
gezeichnet.
.br
Soll eine Umkehrfunktion gezeichnet werden, müssen Sie darauf achten, mit dem
Definitionsbereich einen Bereich einzugrenzen, in dem die Funktion auch
wirklich umkehrbar ist, sonst ordnet der Graph einem X-Wert mehrere Y-Werte zu,
was in der Mathematik nicht erlaubt ist.
.sp 2
.doppel
.elite
.breit
Screen
.nobreit
.nodoppel
.noelite
.sp 1
.kursiv
Nummern
.gerade
.br
  Die Nummern der Funktionen werden in der jeweiligen Farbe ins Grafikfenster
geschrieben. Dies ist eine Hilfe, um die Farben den einzelnen Funktionen
zuzuordnen.
.br
.kursiv
Namen
.gerade
.br
  Der im "Funktion"-Menü eingegebene Name einer Funktion kann im Grafikfenster
eingesetzt werden. Klicken Sie dazu mit der Maus an die gewünchte Stelle. Haben
Sie den Menüpunkt versehentlich angewählt, klicken Sie einfach an den rechten
Rand des Grafikfensters. Graph-Master nimmt dann die Menühwahl zurück.
.br
.kursiv
Löschen
.gerade
.br
  Es erklingen hintereinander 2 Piepstöne. Drücken Sie in der Zeit zwischen den
beiden Tönen die linke Maustaste, wird der Grafikbildschirm gelöscht.
.br
.kursiv
Invers
.gerade
.br
  Es werden lediglich die Farben schwarz und weiß vertauscht, was besonders vor
einem Ausdruck anzuraten ist.
.br
.kursiv
Skala,Gitter
.gerade
  Zusätzliche Schirmunterteilungen.
.br
.kursiv
Laden,Speich.
.gerade
.br
  Die Grafik wird im IFF-Format ohne Kompression gespeichert.
.sp 2
.breit
.elite
.doppel
Rechnung
.nobreit
.noelite
.nodoppel
.sp 1
.kursiv
Einzelwerte
.gerade
.br
  Zu einer bestimmten Funktion wird für einen beliebigen X-Wert der Y-Wert
ausgegeben. Wird die Ausgabe auf den Drucker gewählt, kann eine ganze
Wertetabelle in einem vorgegebenen Bereich erstellt werden. 
.br
.kursiv
Integral
.gerade
.br
  Berechnung des bestimmten Integrals einer Funktion nach einem
Grenzwertalgorithmus, der die vom Graphen eingeschlossene Fläche in immer mehr
Teilstücke unterteilt und aus dem Mittelwert von Ober- und Untersumme ihrer
Flächen das Integral mit der verlangten Genauigkeit errechnet. Der Vorgang kann
vorzeitig mit ESC abgebrochen werden. Achten Sie darauf, nicht über
Definitionslücken hinweg zu integrieren!
.sp 2
.elite
.doppel
.breit
Extra
.nobreit
.nodoppel
.noelite
.sp 1
.kursiv
Schar
.gerade
  Hier werden die Parameter angegeben, nach denen der Scharwert (der in den
Funktionsdefinitionen zz# heissen muß) errechent wird. Die konventionelle
Methode ist, bei "Definition: f(z)=" einfach "z" einzugeben. Der Scharwert
durchläuft dann den angegebenen Definitionsbereich mit der geg. Schrittweite.
Diese Parameter gelten aber eigentlich nur für die Funktion, nach der sich der
Scharwert errechnet. Wählen Sie z.B. einen Bereich von 0 bis 4 und eine
Schrittweite von 1 und setzen "f(z)="z^2, dann nimmt der Scharwert die Werte
0(0^2), 1(1^2), 4(2^2), 9(3^2) und 16(4^2) an. Dieses Verfahren ist nützlich,
falls man eine Schar sowohl mit sehr großen als auch kleinen Werten für zz#
zeichnen lassen will ohne dabei eine sehr große Anzahl von Graphen zu erhalten. 
Normalerweise setzt man aber immer f(z)=z.
.br
.kursiv
3D-Bild
.gerade
.br
  Sie können eine Funktion auch dreidimensional zeichnen lassen. Beachten Sie
dabei aber, daß sie nicht vergrößert wird, sie sollte also Werte von ziemlich
hohen Beträgen liefern (gegebenenfalls einen Multiplikator in die Definition
einfügen, z.B. 300*sin(x/40) ). Weiterhin sollten ihre Werte nicht zu schnell
schwanken (daher beim Beispiel "x/40"), denn im Gegensatz zu der
Graphdarstellung zeichnet die 3D-Option in der absoluten Größe, ohne an den
Bildschirm anzupassen. Experimentieren Sie ein wenig mit den verschiedenen
Parametern, um eine schöne Zeichnung zu erhalten.
.br
.kursiv
rekursiv
.gerade
.br
  Bei dieser interessanten Darstellungsweise wird die Funktion immer mit dem
vorhergehenden Ergebnis aufgerufen. (Beim ersten Mal wird "Startwert"
eingesetzt). "Schrittweite" bestimmt hier, wieviele Werte berechnet werden (je
kleiner Schrittweite, desto mehr Berechnungen). Am Anfang und Ende der X-Achse
werden Startwert und Endergebnis angezeigt. Auf die Frage "Scharparameter
durchlaufen" antworten Sie mit 0 für "nein" und mit 1 für "ja".
.sp 2
.doppel
.elite
.breit
Spezial
.nobreit
.noelite
.nodoppel
.sp 1
.kursiv
Fonts,Textstil,Trick
.gerade
.br
 Hiermit können Sie das Aussehen des Textes bestimmen, der mit der Name-Option
in den Grafikbildschirm geschrieben wird. Experimentieren Sie besonders mit den
Tricks, es lassen sich schöne Effekte erzielen.
.br
.kursiv
Hardcopy
.gerade
.br
  NOCH NICHT ABSTURZSICHER !! Verwenden Sie ein Programm wie GraphicDump, um den
Grafikbildschirm zu Papier zu bringen.
.br
.kursiv
CLI
.gerade
.br
  Neuen CLI öffnen.
.br
