Beleg WS99/SS00, Studium, Home
Gleich ein Hinweis vorneweg: Das Applet, so wie es jetzt ist, ist schon
lange nicht mehr die Version, die ich zur Belegabnahme abgegeben habe. Ich
habe inzwischen einiges verändert, die Beleg-Version konnte z.B. nur
eine Funktion darstellen, und es waren nur die bekanntesten
Standardfunktionen implementiert. Auch der ganze Kram mit Parametern,
Klammerungsstufen etc. kam erst später. Ich bin auf dem Weg, den
Plotter in eine eierlegende Wollmilchsau zu verwandeln *g*.
Klicke auf den Button, um das Darstellungsfenster zu öffnen. (Die
Größe des Fensters ist für eine Bildschirmauflösung
von mindestens 800x600 ausgelegt, du kannst sie aber ändern.)
Von dort aus kommst du mit "Einstellungen" in das Einstellungsfenster.
Du kannst beide Fenster nebeneinander offen haben.
Nun die Erklärungen zu den einzelnen Feldern im Einstellungsfenster,
leider noch völlig ungeordnet:
Wenn du auf Setzen klickst, werden alle Formeln und alle
Einstellungen übernommen. Beachte: Wenn du den Darstellungsbereich mit
der Maus verschoben oder skaliert hast, musst du die Bereichswerte erst mit
Lesen ins Einstellungsfenster übernehmen, wenn du nämlich auf
Setzen klickst, wird der Bereich auf die im Einstellungsfenster
angegebenen Werte eingestellt.
Klickst du auf Lesen, werden die aktuellen Werte in das
Einstellungsfenster kopiert, die Formeln werden dabei je nach Einstellung in
Infix- oder Postfix-Notation angezeigt.
Die Checkbox hinter einer Formel gibt an, ob die Funktion dargestellt werden
soll oder nicht.
Mehr Einstellungsmöglichkeiten erhälst du, wenn du auf Mehr
klickst. Ein nochmaliger Klick auf diesen Button versteckt die
zusätzlichen Einstellungen wieder.
Um mehr als eine Funktion darzustellen, wähle aus der Choicebox
die gewünschte Anzahl von Funktionen aus. Dann kannst du mehrere
Funktionen eingeben. Jede dazustellende Funktion muss aktiviert werden mit
der Checkbox hinter der Eingabezeile oder indem du in einem Formel-Feld
ENTER drückst.
Wenn die Checkbox Postfix ausgeschaltet ist, wird die Formel in
normaler Notation (Infix) eingegeben. Ist Postfix aktiviert, muss
in sie Postfix-Notation angegeben werden, mit mindestens einem Leerzeichen
zwischen den Operanden und Operatoren.
Die Parameter p und q sind beliebige feste Zahlen, die in den
Formeln verwendet werden können.
Im Darstellungsbereich ist der Mauscursor ein Pfeilkreuz oder eine Hand. Mit einem Klick der rechten Maustaste wird zwischen den beiden Modi umgeschaltet. Im "Kreuz-Modus" kann man durch Ziehen mit gedrückter linker Maustaste den angezeigten Bereich verschieben. Im "Hand-Modus" wird der Bereich beim "Drag-and-Drop" skaliert, und zwar unabhängig für beide Achsen. Das Zentrum der Skalierung ist der Punkt, an dem die Maus beim Anklicken war.
Zahlen sind vom Typ double
und können mit oder ohne
Dezimalpunkt angegeben werden. Es funktioniert auch die
e-Darstellung (z.B. 2.5e3 = 2500).
Erlaubte Operatoren sind:
zwei Operanden | |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
\ | Division mit Rundung in Richtung Null |
% | Rest bei Division mit Rundung in Richtung Null |
^ | Potenz (Wenn du das Zeichen nicht eingeben kannst, dann kannst du auf die Funktionen pow() und root() ausweichen.) |
ein Operand | |
- | Vorzeichenumkehr in Infix |
_ | Vorzeichenumkehr in Postfix |
x | die Variable x |
p | Parameter p |
q | Parameter q |
i | Schleifenzaehler fuer sum und sum3 |
pi | die Kreiskonstante pi=3.141592653589793 |
e | die Eulersche Konstante e=2.718281828459045 |
rnd()
)rnd | Gleichverteilte Zufallszahl in [0..1) Es wird bei jedem Aufruf eine neue Zahl produziert (also auch beim Neuzeichnen) |
rndn | Standardnormalverteilte Zufallszahl Es wird bei jedem Aufruf eine neue Zahl produziert (also auch beim Neuzeichnen) |
sin(x)
)Winkelfunktionen | |
---|---|
sin, asin (=arcsin) | Sinus, Arcussinus |
cos, acos (=arccos) | Cosinus, Arcuscosinus |
tan, atan (=arctan) | Tangens, Arcustangens |
cot, acot (=arccot) | Cotangens, Arcuscotangens |
sinh, arsinh | (Area) Sinus hyperbolicus |
cosh, arcosh | (Area) Cosinus hyperbolicus |
tanh, artanh | (Area) Tangens hyperbolicus |
coth, arcoth | (Area) Cotangens hyperbolicus |
andere | |
---|---|
exp | Exponentialfunktion: exp(wert) = e^wert |
ln | natürlicher Logarithmus |
lg (=log10) | Zehnerlogarithmus |
ld (=log2) | Zweierlogarithmus |
sqr | Quadrat |
sqrt | Quadratwurzel |
abs | Absolutbetrag |
sgn | Vorzeichen |
int | ganzzahliger Anteil, Rundung zur nächstkleineren ganzen Zahl |
frac | gebrochener Anteil, Differenz zur nächstkleineren ganzen Zahl |
inv | Kehrwert: inv(wert) = 1/wert |
fac (=fak) | Fakultät fac(x)=int(x)! |
gamma | Gammafunktion (zwischen Hundertsteln wird linear interpoliert) |
pow(x,3)
)pow(wert, exponent) | wert^exponent |
root(wert, r) | wert^(1/r) = r -te Wurzel von
wert ungerade ganze Wurzeln werden auch aus negativen Zahlen gezogen, z.B. root(x,3) |
log(basis, wert) | Logarithmus von wert zur Basis
basis |
mpow(wert, index) | index -fache Potenz: mpow(x,3) = x^(x^x) |
min(wert1, wert2) | Minimum von wert1 und wert2 |
max(wert1, wert2) | Maximum von wert1 und wert2 |
sum(ende, ausdruck) | Summe für i =1...ende von ausdruck Der Summationsindex ist die neue Variable i
(die ausserhalb von Schleifen den Wert 0 hat).
Bei geschachtelten Schleifen bezeichnet i im ersten Argument
(ende ) den Schleifenzaehler der äusseren Schleife, im zweiten
Argument (ausdruck ) den Schleifenzaehler der inneren Schleife.
|
sum3(start, ende, ausdruck) | Summe für i =start ...ende von ausdruck Der Summationsindex ist die neue Variable i
(die ausserhalb von Schleifen den Wert 0 hat).
Bei geschachtelten Schleifen bezeichnet i im ersten und zweiten
Argument (start und ende ) den Schleifenzaehler der
äusseren Schleife, im letzten Argument (ausdruck ) den
Schleifenzaehler der inneren Schleife.
|
if(bedingung, wert1, wert2) | Liefert wert1 , wenn bedingung>0 , sonst wert2
Es wird nur der Teilausdruck berechnet, der zurueckgegeben wird. |
Source
PlotApplet.java
PlotFrame.java
GraphFlaeche.java
Graph.java
Line.java
NodeBase.java
FuncNode.java
NodeConstructor.java
NodeConstructorHelp.java
Zoomer.java
GraphZoomer.java
DialogFenster.java
Source (34kb)
Kompiliert (51kb)
Für Hinweise, Kommentare, Anregungen, Kritik und Fehlermeldungen
wäre ich dankbar. Bei Exceptions schick bitte die komplette Fehlermeldung.
Wenn sie beim Auswerten einer Formel auftritt, hätte ich auch gern die
Formel dazu.