Appomatox Handbuch

Transcription

Appomatox Handbuch
Handbuch zu
Appomatox 3
F. Schnitzer
2
Inhaltsverzeichnis
1 Appomatox 3
7
I
9
Allgemeine Übersicht
2 Was ist Appomatox?
11
3 Von der Frage zum Ergebnis
13
3.1 Beispielfragen mit Lösungen . . . . . . . . . . . . . . . . . . . . . 13
3.2 Wenn Sie ein Fehler im Programm gefunden haben . . . . . . . . 16
4 Eingabekriterien
4.1 Eingabeassistenten . . . . . . . .
4.2 Pi und die Euler’sche Zahl . . . .
4.2.1 Pi (gerundet auf die 1000.
4.2.2 Euler’sche Zahl e . . . . .
. . . .
. . . .
Stelle)
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Anmerkungen und verwendete Abkürzungen
17
19
19
19
19
21
6 Was tun bei Problemen?
23
6.1 Fehlermeldungen (Auszug) . . . . . . . . . . . . . . . . . . . . . . 23
6.2 Problemlösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7 Programmaufbau
7.1 Arbeitsfläche .
7.2 Diagramm . . .
7.3 Drucken . . . .
7.4 Optionen . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
29
30
31
8 Algebra
8.1 ggT / kgV . . . . . . . . . . . . . . . . .
8.2 Komplexe Zahlen . . . . . . . . . . . . .
8.3 Ramanujan . . . . . . . . . . . . . . . .
8.4 Perfekte Zahlen . . . . . . . . . . . . . .
8.5 Primfaktorzerlegung . . . . . . . . . . .
8.6 Primzahlen und pythagoräische Trippel
8.7 Statistik . . . . . . . . . . . . . . . . . .
8.8 Wahrscheinlichkeitsberechnung . . . . .
8.8.1 Binomialkoeffizient . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
35
35
35
36
36
36
36
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
INHALTSVERZEICHNIS
4
8.8.2 Binomialverteilung
8.8.3 Fakultät . . . . . .
8.8.4 Permutationen . .
8.8.5 Varianz . . . . . .
8.8.6 Zufallsgenerator .
8.9 Summen und Potenzen . .
8.10 Zahlensystemumwandlung
8.11 Ausgleichskurve . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
36
36
36
36
37
37
37
37
9 Analysis
9.1 Ableitung . . . . . . . . . . . . . .
9.2 Bogenlänge . . . . . . . . . . . . .
9.3 Integrale . . . . . . . . . . . . . . .
9.4 Lösung linearer Gleichungssysteme
9.5 Kurvendiskussion . . . . . . . . . .
9.6 Rotation um x-Achse . . . . . . . .
9.7 Schnitt zweier Kurven . . . . . . .
9.8 Tangenten . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
39
39
39
40
40
41
41
10 Geometrie
10.1 analytische Geometrie . . . . . . . . . . . . . . .
10.1.1 Drehung und Vergrößerung zum Ursprung
10.1.2 Dreiecke . . . . . . . . . . . . . . . . . . .
10.1.3 Strecken . . . . . . . . . . . . . . . . . . .
10.1.4 Vierecke . . . . . . . . . . . . . . . . . . .
10.2 Planimetrie . . . . . . . . . . . . . . . . . . . . .
10.2.1 Kreis . . . . . . . . . . . . . . . . . . . . .
10.2.2 Kreisteile . . . . . . . . . . . . . . . . . .
10.2.3 Kreisring . . . . . . . . . . . . . . . . . .
10.2.4 Parallelogramm . . . . . . . . . . . . . . .
10.2.5 regelm. n-Eck . . . . . . . . . . . . . . . .
10.2.6 Trapez . . . . . . . . . . . . . . . . . . . .
10.3 Stereometrie . . . . . . . . . . . . . . . . . . . . .
10.4 Trigonometrie . . . . . . . . . . . . . . . . . . . .
10.4.1 ebene Trigonometrie . . . . . . . . . . . .
10.4.2 sphärische Trigonometrie . . . . . . . . .
10.5 Bézier-Kurven . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
.
.
.
.
.
.
47
47
47
47
47
47
47
11 Matrizen
11.1 Vektoren . . . . . . . . . . . . . . . . . . . . .
11.1.1 Betrag . . . . . . . . . . . . . . . . . .
11.1.2 Kreuzprodukt (Vektorprodukt) . . . .
11.1.3 Normalisieren . . . . . . . . . . . . . .
11.1.4 Punktprodukt (inneres Skalarprodukt)
11.1.5 Skalarprodukt . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
INHALTSVERZEICHNIS
5
12 Zusatz und Sonstiges
12.1 Formeleditor . . . . . . . . . .
12.2 Internet-Update . . . . . . . . .
12.3 Plugins . . . . . . . . . . . . .
12.4 Rechner . . . . . . . . . . . . .
12.5 Umrechnung . . . . . . . . . . .
12.6 Zinseszins . . . . . . . . . . . .
12.7 Diagramm: Element hinzufügen
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Plugin Entwicklerhandbuch
13 Appomatox Plugin-Entwicklung
13.1 Erste Schritte . . . . . . . . . .
13.1.1 Grundlagen . . . . . . .
13.1.2 Schleifen . . . . . . . . .
13.1.3 Bedingung . . . . . . . .
13.1.4 Mit Text arbeiten . . .
13.2 Plugin-Assistent . . . . . . . .
13.3 Snipplets . . . . . . . . . . . .
13.4 Benennung von Variablen . . .
49
49
50
50
50
51
51
51
55
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
57
57
59
60
60
63
67
68
14 Plugin-Editor
14.1 Fehlersuche mit dem Plugin-Editor
14.2 Fehlermeldungen . . . . . . . . . .
14.2.1 Laufzeitfehler . . . . . . . .
14.2.2 Compilerfehler . . . . . . .
14.2.3 Hinweise . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
70
70
70
72
74
15 Basistypen
15.1 Boolean . . . . . . . . . .
15.2 Extended . . . . . . . . .
15.3 Integer, longint und word
15.4 Char . . . . . . . . . . . .
15.5 String . . . . . . . . . . .
15.6 Array . . . . . . . . . . .
15.7 Record . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
75
75
75
76
76
76
77
16 Allgemeine Funktionen und Prozeduren
16.1 Verarbeitung von Strings . . . . . . . . .
16.2 Verarbeitung von Zahlen . . . . . . . . . .
16.3 Umwandlung zwischen Zahlen und Strings
16.4 Verarbeitung von Arrays . . . . . . . . . .
16.5 Verarbeitug von Zeit . . . . . . . . . . . .
16.6 Sonstige . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
81
82
82
83
85
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17 Komponenten
87
17.1 Visuelle Komponenten . . . . . . . . . . . . . . . . . . . . . . . . 87
17.2 Nicht-visuelle Komponenten . . . . . . . . . . . . . . . . . . . . . 93
17.3 Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
INHALTSVERZEICHNIS
6
18 Appomatox-spezifische Funktionen
18.1 Mathematische Funktionen . . . .
18.2 Zugriff auf das Diagramm . . . . .
18.3 Ein-/Ausgabe . . . . . . . . . . . .
18.4 Hilfsfunktionen . . . . . . . . . . .
18.5 Bezeichner . . . . . . . . . . . . . .
19 Styleguide
III
Referenz Formeleditor
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
103
106
109
109
111
119
121
20 Referenz Formeleditor
123
20.1 Symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
20.2 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
20.3 Griechische Buchstaben . . . . . . . . . . . . . . . . . . . . . . . 133
IV
Anhänge
135
A Immerwährender Kalender
137
B Abkürzungen der Zahlenfolgen
139
Kapitel 1
Appomatox 3
Allgemeines:
c 1998-2003 by F. Schnitzer
Copyright für Appomatox: c by C. Huber, D. Schreiber
Copyright für Grafiken (u.a.): c 1999 by D. Schreiber
Copyright für Musik: Programmidee und Verwirklichung: F. Schnitzer
Betatests (bis 2002): D. Schreiber
Programmiert unter Zuhilfenahme von:
• AdAims DiffExpress
• Carlo Kok’s Innerfuse Pascalscript
• Dr. J. Debords Mathematical Library
• ExprDraw & ExprMake von [email protected]
• Murt Software’s GmPrintSuite
• Renate Schaafs Express-Parser und TMathImage
• SynEdit
Alle Rechte vorbehalten. Das Programm wurde mit größter Sorgfalt erstellt,
jedoch wird keinerlei Haftung für Schäden übernommen, die Appomatox evtl.
7
8
KAPITEL 1. APPOMATOX 3
verursachen könnte. Desweiteren wird keine Gewähr auf die Richtigkeit der Ergebnisse, die Appomatox liefert, übernommen. Es kann davon ausgegangen werden, dass alle Produktnamen, die in dieser Anleitung vorkommen, markenrechtlich geschützt sind.
Um den Umgang mit Appomatox zu erleichtern, sind zu vielen Programmelementen Tooltips (gelber Kasten) verfügbar, wenn Sie mit der Maus für ca. 2
Sekunden darauf stehenbleiben.
Teil I
Allgemeine Übersicht
9
Kapitel 2
Was ist Appomatox?
Appomatox ist ein Mathematikprogramm, das nahezu alle Rechenarten beherrscht, die bis zur gymnasialen Oberstufe der Klasse 12 verlangt werden. Angefangen bei der einfachen Körperberechnung nach Eingabe der Kantenlänge
bis zur Kurvendiskussion, Stochastik (Wahrscheinlichkeitsrechnung) und Integralberechnung werden alle Ergebnisse in Sekundenschnelle berechnet.
Bei der Entwicklung wurde vor allem der einfachen Bedienbarkeit große Beachtung geschenkt, so dass nach der Suche der gewünschten Funktion in einem
übersichtlichen Menü nur noch die Grundwerte eingegeben werden und auf Berechnen gedrückt werden muss. Eine langwierige und oft auch motivationsraubende Einarbeitungszeit wie bei vielen anderen professionellen Mathematikprogrammen entfällt somit.
11
12
KAPITEL 2. WAS IST APPOMATOX?
Kapitel 3
Von der Frage zum
Ergebnis
1. Suchen Sie die gewünschte Funktion im Menü.
2. Geben Sie in die leeren Kästchen die jeweils gegebenen Werte ein. Alle
roten Kästchen müssen ausgefüllt sein. Die grünen Kästchen müssen nicht
zwingend ausgefüllt sein, um ein Ergebnis zu erhalten.
3. Drücken Sie auf den Berechnen-Knopf (bzw. wahlweise die Enter-Taste).
4. Ergebnisse werden im Ergebnisfenster angezeigt.
5. Geben Sie weitere Werte ein oder schließen Sie das Fenster mit Schließen
(oder wahlweise mit der ESC-Taste).
3.1
Beispielfragen mit Lösungen
(Wenn nicht anders angegeben, wird in diesen Beispielen von kartesischen Koordinaten und von Winkeln in Grad ausgegangen.)
Befindet sich das Dreieck ABC über der Funktion axn ?
1. Rufen Sie die Funktion Dreiecke unter Geometrie/analyt. Geometrie auf.
2. Geben Sie dort die Koordinaten des Dreiecks ein.
3. Drücken Sie auf Berechnen und anschließend auf Schaubild.
4. Schließen Sie das Dreieck-Menü, nicht aber das Diagramm-Fenster; die
Zeichnung des Dreiecks bleibt somit erhalten.
5. Rufen Sie unter Algebra/Analysis die Ableitungsfunktion auf.
6. Geben Sie hier die Funktion ein.
7. Drücken Sie wiederum auf Berechnen und anschließend auf Schaubild.
8. Im Diagramm-Fenster können Sie nun (nach eventuellen Hineinzoomen)
die Antwort auf die Frage ablesen.
13
14
KAPITEL 3. VON DER FRAGE ZUM ERGEBNIS
Wie weit ist Berlin (52◦ n.B., 13◦ ö.L.) von Tokio (36◦ n.B.,
140◦ ö.L.) entfernt?
1. Rufen Sie die Funktion sphärische Trigonometrie auf.
2. Geben Sie als Punkt A die Koordinaten von Berlin ein, als Punkt B entsprechend Tokio (falls die Punkte westliche Breite bzw. westliche Länge
sind, müssen Sie als Vorzeichen ein Minus setzen).
3. Geben Sie den Erdradius ein (3670).
4. Betätigen Sie den Berechnen-Knopf. (Achtung: Es muss die Berechnung
in DEG (Gradmaß) eingestellt sein!)
Wie rechnet man Polarkoordinaten in kartesische Koordinaten um?
1. Setzen Sie unter Optionen die Polarkoordinateneingabe als Standard.
2. Rufen Sie die Funktion Strecke auf.
3. Geben Sie als Punkt A die gesuchten Koordinaten ein.
4. Als Punkt B geben Sie jeweils 0 (oder weitere gesuchte Koordinaten) ein.
5. Drücken Sie auf Berechnen.
6. Lesen Sie im Ergebnisfenster unter PPunkt A“ die (kartesischen) Koordinaten ab.
In welchem Punkt schneiden sich die Geraden f1 (x) = 2x+5
und f2 (x) = 9x − 3?
1. Rufen Sie die Funktion Analysis/Schnitt zweier Kurven auf.
2. Geben Sie die Gerade f1 unter f(x) ein.
3. Geben Sie die Gerade f2 unter g(x) ein.
4. Klicken Sie auf Berechnen.
5. Im Ergebnisfenster können Sie nun ablesen, dass die beiden Geraden den
Punkt (Schnittpunkt) S(1, 143|7, 286) gemeinsam haben.
Ein idealer Würfel wird fünfmal geworfen. Wie groß ist die
Wahrscheinlichkeit für genau 2 Sechsen?
1. Gegeben ist n=5 (Würfe), k=2 (2 Sechsen), p=1/6 (0,16666) (Wahrscheinlichkeit für eine Sechs).
2. Geben Sie diese Werte in der Funktion Binomialverteilung ein.
3. Drücken Sie Berechnen.
3.1. BEISPIELFRAGEN MIT LÖSUNGEN
15
Wie druckt man alle Primzahlen im Bereich von 1 bis 1000
aus?
1. Rufen Sie das Fenster Primzahlen auf (Algebra/Primzahlen und pyt. Trippel ).
2. Geben Sie in im Bereich von 1 ein und in bis 1000.
3. Betätigen Sie den Knopf Primzahlen.
4. Schließen Sie das Fenster.
5. Wechseln Sie zu den Ergebnissen.
6. Klicken Sie hier auf Drucken.
Wie kann ich verschiedene Geldbeträge in Fremdwährungen umgerechnet als Tabelle ausdrucken?
1. Rufen Sie die Funktion Zusatz /Umrechnung auf.
2. Gehen Sie auf Währungen.
3. Geben Sie z.B. 10“ in das Eingabefeld ein (ohne Anführungsstriche).
”
4. Wählen Sie in der linken Liste D-Mark aus und in der rechten Liste Euro
und Lire.
5. Drücken Sie auf Berechnen.
6. Geben Sie in das Eingabefeld 20“ ein, drücken Sie auf Berechnen.
”
7. Geben Sie in das Eingabefeld 50“ ein, drücken Sie auf Berechnen.
”
8. Wiederholen Sie die Schritte 6.) und 7.) so oft wie gewünscht und geben
Sie jedesmal andere Werte ein.
9. Wechseln Sie zum Ergebnisfenster.
10. Drücken Sie auf Drucken.
11. Sie erhalten auf dem Ausdruck eine Liste mit der Anfangswährung (in
diesem Fall D-Mark) sowie jeweils die Umrechnung in Euro und Lire.
Wie kann ich die relative und absolute Wahrscheinlichkeit
für Elemente aus einer Liste berechnen?
1. Rufen Sie Algebra/Statistik auf.
2. Geben Sie unter Eingabe Ihre Liste ein.
3. Drücken Sie auf Berechnen.
4. Die relative und absolute Häufigkeit entspricht in diesem Fall der relativen
und absoluten Wahrscheinlichkeit.
KAPITEL 3. VON DER FRAGE ZUM ERGEBNIS
16
Am unteren Fensterrand wird immer ein grünes Rechteck
mit einem OK-Knopf (Assistent) angezeigt. Wie kann ich
das abstellen?
1. Klicken Sie auf Optionen.
2. Klicken Sie auf Allgemein.
3. Entfernen Sie das Kreuz vor Assistent anzeigen, indem Sie darauf klicken.
4. Beim nächsten Mal, wenn Sie Appomatox starten, wird der Assistent nicht
mehr angezeigt.
3.2
Wenn Sie ein Fehler im Programm gefunden
haben
Appomatox besteht aus über 110.000 Zeilen Quelltext. In jeder einzelnen Zeile
könnte ein Fehler stecken. Für einen Menschen (Appomatox ist z.Zt. ein EinMann-Projekt) ist es einfach unmöglich, jeden denkbaren Fehler zu entdecken
und zu beheben.
Bitte scheuen Sie sich deshalb nicht, und melden Sie einen Fehler, wenn
Sie einen entdeckt haben (sollten). Schreiben Sie entweder direkt eine E-Mail
an mich ([email protected]) oder verwenden Sie den Eingabedialog unter
Hilfe/Fehler melden....Bitte beschreiben Sie den Fehler so genau wie möglich
und geben Sie die nötigen Schritte an, um den Fehler zu wiederholen.
Haben Sie bitte auch Verständnis, wenn der Fehler nicht gleich am nächsten
Tag behoben ist. Sobald ich aber Zeit habe, werde ich den Fehlern zu Leibe
rücken. Keine E-Mail und keine Meldung geht verloren.
Das Dialogfeld Fehler melden verschickt außerdem Informationen zur Hardund Software (Appomatox- und Windows-Version, RAM, CPU-Takt und die
Fenster, welche Sie in Appomatox zuletzt geöffnet hatten) Ihres Computers.
Nach dem Klick auf Abschicken öffnet sich Ihr E-Mail-Programm. Sie können
dann genauestens kontrollieren, WAS verschickt wird und bei Bedarf Informationen löschen.
Kapitel 4
Eingabekriterien
• Es müssen Zahlen im Positionssystem q=10 (übliches 10er-System) eingegeben werden.
• Die wissenschaftliche Zahlenschreibweise (z.B. 3,4*10^5 , d.h. 3,4 mal 10
hoch 5) ist erlaubt.
• Wenn in Felder, die nur ganze Zahlen zulassen, eine Kommazahl eingegeben wird, so wird diese korrekt auf eine ganze Zahl gerundet.
Vektoren und Matrizen können Sie mittels Eingabeassistenten (siehe
Kapitel 4.1 auf Seite 19) eingeben. Alternativ können Sie Vektoren in folgender
Schreibweise eingeben: Trennen Sie die Zeilen des Vektors mit einem Strichpunkt
und klammern Sie diesen Term ein.
Beispiele:
2, 3
•
geben Sie folgendermaßen ein: (2,3;4,5)
4, 5


2, 3
•  4, 5  geben Sie folgendermaßen ein: (2,3;4,5;7,8)
7, 8
Es ist noch möglich, Rechenoperationen und Funktionen einzugeben, z.B.:
• 3+5“ entspricht dann einer Eingabe von 7“
”
”
• sin(3)“ entspricht dann einer Eingabe von dem Wert Sinus von 3“.
”
”
Außerdem können Sie Konstanten benutzen, welche im Optionen-Menü angegeben wurden. Die Kreiszahl Pi ist bereits standardmäßig vordefiniert, um
die Euler’sche Zahl e zu erreichen, benutzen Sie bitte die Funktion exp(x). Eine
Wurzel erreichen Sie neben sqrt(x) auch, indem Sie x^(0,5) eingeben, wobei x
der zu radierende Wert ist. Um negative Zahlen darzustellen, müssen Sie Klammern setzen, z.B.: 2^(-2) statt 2^-2.
Folgende Zeichen sind erlaubt:
17
KAPITEL 4. EINGABEKRITERIEN
18
0-9
,
+
*
/
mod
(Zahlen)
Komma, bzw. das in der Systemsteuerung eingestellte Dezimaltrennzeichen
Addition
Subtraktion
Multiplikation
Division
Modulo (bzw. Rest bei Division, z.B.
7mod3=1 (7/3=2 Rest 1)
ˆ
(...)
Potenz (hoch)
Klammern
exp(...)
ln(..), log(...), ld(...)
Exponential (e hoch)
natürlicher Logarithmus, 10er Logarithmus,
2er Logarithmus
Wurzel
trigonomtrische Funkionen
sqrt(...)
sin(...),
cos(...),
tan(...),
asin(...),
acos(...), atan(...)
sinh(...), cosh(...),
tanh(...),
arsinh(...),
arcosh(...), artanh(...)
abs(...)
trunc(...)
ceil(...), floor(...)
sgn(...)
rnd(...)
x
Pi
trigonometrische Funktionen (Hyperbel)
Absolutwert
Nachkommastelen abschneiden
Vorgänger, Nachfolger der Zahl
Signum (für x kleiner 0: -1; für x=0: 0; für x
größer 0: 1)
Liefert eine Zufallszahl im Bereich zwischen 0
und der Zahl in Klammer
Variable bei den Kurvendiskussionen
3,1415...
Statt den drei Punkten ( ...“) schreiben Sie den gewünschten Term.
”
Es gibt außerdem noch die Möglichkeit, Funktionen einzugeben, die jedoch
nicht in Zusammenhang mit Variablen (z.B. x ) verwendet werden dürfen:
ggT(...;...)
kgV(...;...)
größter gemeinsamer Teiler
kleinstes gemeinsames Vielfaches
Tastaturbelegung:
Im Programm sind bestimmte Funktionen mit einem Tastendruck erreichbar:
F1
ESC
Enter
Hilfe aufrufen
Schließt das Fenster
Berechnen
4.1. EINGABEASSISTENTEN
4.1
19
Eingabeassistenten
Appomatox stellt Ihnen diverse Assistenten zur Verfügung, um die Eingabe zu
vereinfachen. Klicken Sie jeweils auf das Assistentensymbol neben dem Eingabefeld, um ihn aufzurufen.
Pipette. Wenn in einem Eingabefeld Koordinaten verlangt werden, können Sie mit diesem Assistent eine Koordinate aus dem Diagramm greifen. Klicken Sie dazu zuerst auf das Assistent-Symbol und dann in das Diagramm.
Rechner. Dieser Assistent wandelt die Darstellungsformen Komplexer
Zahlen untereinander um.
Stift. Dieser Assistent erlaubt es Ihnen, Vektoren oder Matrizen auf
einfache Weise einzugeben. Die Schaltfläche Schreiben schreibt die eingegebene
Matrix/Vektor direkt in die Ergebnisausgabe.
4.2
4.2.1
Pi und die Euler’sche Zahl
Pi (gerundet auf die 1000. Stelle)
3,14159265358979323846264338327950288419716939937510582097494459
2307816406286208998628034825342117067982148086513282306647093844
6095505822317253594081284811174502841027019385211055596446229489
5493038196442881097566593344612847564823378678316527120190914564
8566923459099207118856806516745194252854340959627985918823367099
2537085222180992260610203512298858741629348689969254359759624501
6832393533553518958527824247580680078502481394402283881106920871
6087268200209345720189686369316583758098221627804455422443873631
0551529920496341582556052053120211498236094105939115928417045405
9954772885655742682626925733132503846231220916371031894801194242
0558886250096137216524583613964673822832849535333975958329022677
9418162968167737618541879490468096290608719531536768829488813130
7168096117428255223625251333953006402282478948639832100317465189
1694369279502585139805382507188845356223535043232204643938233054
6243856214810852383769717133197158721033723844806221439090739290
39958541935685951950182332059035953869389
4.2.2
Euler’sche Zahl e
2,718 281 828 459 045 235 360 287 ...
Appomatox benützt genügend genau gerundete Werte.
20
KAPITEL 4. EINGABEKRITERIEN
Kapitel 5
Anmerkungen und
verwendete Abkürzungen
• Mit der Tab“-Taste kann schnell durch die Eingabefelder gesprungen wer”
den.
• Nicht oder falsch ausgefüllte Eingabefelder erscheinen rot (oder eine andere Farbe, je nach Einstellung unter Optionen).
• Eingabefelder, die nicht zwangsweise ausgefüllt werden müssen, erscheinen
violett (oder eine andere eingestellte Farbe).
• Es wird kein Unterschied zwischen den Begriffen Schaubild“ und Dia”
”
gramm“ angenommen.
Verwendete Abkürzungen:
• FE: Flächeneinheit/en
• RE: Raumeinheit/en
• un.: unendlich
• x^y : x hoch y
21
22 KAPITEL 5. ANMERKUNGEN UND VERWENDETE ABKÜRZUNGEN
Kapitel 6
Was tun bei Problemen?
6.1
Fehlermeldungen (Auszug)
Bei schwerwiegenden Fehlern fragt Appomatox nach, ob es einen Fehlerbericht
senden soll. Wenn Sie dies bejahen, wird ihr E-Mail-Programm geöffnet. Je nachdem wie Sie dieses eingestellt haben, müssen Sie das Senden nochmals bestätigen.
Appomatox sendet keine Informationen über den Inhalt Ihrer Festplatte. Im
Problembericht befinden sich lediglich der Text der Fehlermeldung, die Version
Ihres Windows’, die Version von Appomatox, die Größe ihres RAMs, sowie die
geöffneten Fenster.
Wir beabsichtigen nicht persönliche Daten zu ermitteln. Es kann aber vorkommen, dass der Fehlerbericht personenspezifische Informationen enthält, wie
z.B. die Absender-E-Mail-Adresse. Diese Informationen könnte zum Feststellen
Ihrer Identität verwendet werden.
Die ermittelten Daten werden ausschließlich zur Problembehebung verwendet, sie werden anonymisiert in einer Datenbank gespeichert.
Der von Ihnen eingegegebe Wert liegt über dem Maximum.
Verwenden Sie kleinere Zahlen
Die letzte Eingabe war keine Funktion (Kurve)!
Sie haben versucht, eine Wertetabelle zu erstellen. Jedoch war das letzte eingegebene Element keine Kurve. Rufen Sie zuerst Kurvendiskussion auf und geben
nochmals ihre gewünschte Funktion ein. Drücken Sie auf Schaubild und wiederholen Sie die Wertetabellenerstellung.
Eingabefehler an Stelle x.
Bei der Eingabe haben Sie ein nicht erlaubtes Zeichen an der x-ten Position von
links benutzt. Korrigieren Sie Ihre Eingabe.
23
KAPITEL 6. WAS TUN BEI PROBLEMEN?
24
Fakultät ist nicht definiert.
Meldet die Fakultätsfunktion, wenn kein Ergebnis zustande kommen kann. Verwenden Sie andere Zahlen!
Fehler in der DLL-Datei; The dynamic link-library could
not be found.
Dieser Fehler kann mehrere Ursachen haben:
1. Die DLL-Datei fehlt. Stellen Sie sicher, dass sie sich im selben Verzeichnis
wie die Programmdatei befindet.
2. Appomatox ist abgestürzt und Sie haben es zum zweiten Mal aufgerufen.
Starten Sie Ihren Computer neu und versuchen Sie es erneut (nur in den
Windows-Versionen 95-ME).
3. Sie haben unter Windows 2000 nicht alle Service-Packs installiert.
Instanzen“ zu hoch! Setze auf 15.
”
Sie haben unter Trigonometrie/Instanzen einen Wert über 15 eingegeben. Dies
ist auf jeden Fall zu hoch. Um den Rechenaufwand im Rahmen zu halten, wurde
der Wert auf 15 zurückgesetzt. Sollte widererwarten der Wert 15 zu klein sein,
so betätigen Sie Berechnen mehrmals.
n=0: Nicht definiert.
Meldet Binomialkoeffizientsfunktion, wenn Sie n=0 angegeben haben. Verwenden Sie für n Werte größer als 0!
Zu große Zahlen.
Meldet die Potenzfunktion, wenn zu große Zwischen- oder Endergebnisse auftreten. Verwenden Sie kleinere Ausgangswerte!
Zu kleine Zahl.
Meldet Primfaktorzerlegung, wenn x kleiner als 3. Verwenden Sie eine größere
Zahl!
6.2
Problemlösungen
Folgend nun einige bekannte Probleme und deren einfachste Lösung(en):
Unter ebene Trigonometrie werden nicht alle Werte berechnet. Sobald aber Berechnen ein weiteres Mal gedrückt
wird, wird alles berechnet.
Erhöhen Sie den Wert Instanzen geringfügig (auf 6-10 Zähler). Diese Lösung
gilt auch bei anderen Funktionen der Geometrie!
6.2. PROBLEMLÖSUNGEN
25
Warum ergibt 2+3=6?
Überprüfen Sie die unter Optionen angegebenen Konstanten. Durch Definitionen wie 2=3“ sind solche Ergebnisse leicht nachvollziehbar (auch wenn dies
”
natürlich nicht der Zweck von Konstanten ist).
Die Rechenzeit der letzten aufgerufenen Funktion wird immer mit n/a“ angegeben.
”
Dies bedeutet, dass Ihr Computer kein Hochpräzisionszeitgeber besitzt.
Es erscheint nach dem Programmstart kein Menü, bzw.
man sieht keinen Text.
Es fehlt vermutlich die entsprechende ASD-Datei (Appomatox Sprach-Datei).
Stellen Sie sicher, dass sie sich im Appomatox-Verzeichnis befindet und in der
Registrierungsdatei (HKCU\Software\Appomatox\) der korrekte Pfad hinter
Language= eingetragen ist, bzw. löschen Sie einfach diesen Eintrag; Appomatox sucht bei einem Neustart dann nach dieser Datei. Alternativ könnte es auch
daran liegen, dass die ASD-Datei bereits von einem anderen Programm geöffnet
ist. Schließen Sie in diesem Fall das betreffende Programm.
Bei Funktionen der analytischen Geometrie werden unerwartete Ergebnisse ausgegeben.
Prüfen Sie die Reihenfolge der eingegebenen Punkte.
Bei Winkelberechnungen erscheint eine Fehlermeldung
oder absurde Ergebnisse werden ausgegeben.
Prüfen Sie, ob das richtige Winkelmaß (DEG oder RAD) eingestellt ist. Für die
meisten Winkelberechnungen wird das Gradmaß (DEG) benötigt.
Im Diagramm werden bei gewissen Kurven an der linken
und rechten Seite senkrechte Striche angezeigt.
Leider ist zu diesem (seltenen) Problem noch keine Lösung bekannt.
Das Öffnen eines Fensters dauert nach einigen Wochen ungewöhnlich lange.
Löschen Sie die Shortcuts in den Addin-Leiste durch einen Klick auf Alle löschen.
Das Diagramm ist auf dem Ausdruck sehr grobkörnig und
gepixelt“.
”
Unter Optionen können Sie die Auflösung für den Druck und das Speichern
bestimmen. Wählen Sie unter Diagramm speichern und drucken das Feld fein.
Das Diagramm wird beim nächsten Ausdruck präziser sein.
26
KAPITEL 6. WAS TUN BEI PROBLEMEN?
Es werden nicht alle Schnittpunkte oder Nullstellen angezeigt.
Vergewissern Sie sich, dass die Überprüfung auch in dem Intervall stattfindet, in
dem sie die Schnittstellen vermuten. Sie können die Intervallgrenzen unter Optionen einstellen. Standardmäßig prüft Appomatox nur von x=-10 bis x=+10.
Warum ergibt sin(0,5) in Bogenmaß nicht genau 0?
Computer haben immer das Problem, dass sie ein Ergebnis nur endlich genau
berechnen können. Ergebnisse, die Appomatox liefert, sind aber mindestens bis
zur 8. Nachkommastelle gültig.
Kapitel 7
Programmaufbau
7.1
Arbeitsfläche
Die Funktionen des Programmes können Sie von der Menüleiste aus aufrufen.
Addin-Leiste
Hier erhalten Sie eine Übersicht über alle installierten Plugins sowie die zuletzt gebrauchten Funktionen. Bei den zuletzt gebrauchten Funktionen werden
Funktionen, die Sie häufiger aufrufen, weiter oben in der Liste angezeigt.
Diagrammfenster
siehe Kapitel 7.2 auf Seite 29
27
28
KAPITEL 7. PROGRAMMAUFBAU
Ergebnisse
Hier werden die Ergebnisse der einzelnen Berechnungen ausgegeben. Mit einem
Klick auf die entsprechenden Buttons können Sie die Ergebnisse speichern, aus
einer bereits gespeicherten Datei laden oder sie ausdrucken. Manche Ergebnisse
sind Aktive Ergebnisse“, d.h. sobald Sie mit der Maus darüberfahren, verwan”
delt sich die Maus in eine Hand und Sie können mit der rechten Maustaste
weitere Optionen zu diesem Ergebnis auswählen. Falls beispielsweise eine Funktion f(x) in der Ergebnisausgabe steht, können Sie diese ins Diagramm eintragen
lassen. Bei komplexen Zahlen steht eine Umwandlung in eine andere Form zur
Wahl.
Aktive Ergebnisse, welche Optionen für das Diagramm zulassen, sind all die Ergebnisse, welche mit f(x), f’(x), f”(x), f”’(x), fn(x) und g(x) beginnen. Weiterhin
gibt es Optionen für Komplexe Zahlen. Diese Ergebnisse beginnen mit z1 oder
z2 und beinhalten ein +i*“.
”
Um Ergebnisse in anderen Programmen weiter zu verarbeiten (bsp. für eine
wissenschaftliche Ausarbeitung), können Sie in der grafischen Ausgabe die Ergebnisse mittels Drag’n’Drop (Klicken und Ziehen) in andere Programme ziehen.
(Sofern die anderen Programme Drag’n’Drop unterstützen.)
Mausleiste
Hier können Sie mit einem Klick Appomatox beenden, das Optionen-Menü, den
Taschenrechner und Formeleditor aufrufen, oder Hilfe erhalten. Falls Sie einen
kleinen Bildschirm benutzen, oder die Mausleiste ihnen aus anderen Gründen
den Platz wegnimmt“, können Sie unter Optionen die Mausleiste auch deakti”
vieren.
Statusleiste
Am unteren Bildrand des Hauptbildschirms befindet sich eine Statusleiste. Sie
gibt die wichtige Einstellungen wieder. Von links nach rechts: Die Farbe der
ersten drei Kästchen sind jeweils die Farben für ein ausgefülltes, ein leeres und
nicht zwingend auszufüllendes Eingabefeld. Folgend: DEG/RAD, also die Winkeleinheit, die Appomatox benutzt. Folgend: Die benötigte Rechenzeit für die
letzte Funktion. Diese Zeit ist z.B. für Vergleichtests relevant. Daneben finden
Sie den Pfad zur Appomatox-Sprachdatei und ganz rechts finden Sie Informationen zum Status Ihren Computers, darunter auch den (realen) Prozessortakt,
sowie die Windows- und Appomatox-Version.
7.2. DIAGRAMM
7.2
29
Diagramm
Bei Funktionen der Analytischen Geometrie und der Analysis ist es möglich,
sich das Schaubild der berechneten Figur oder Kurve anzeigen zu lassen. Betätigen Sie dazu die Schaltfläche Schaubild ; es ist verfügbar, sobald ein Ergebnis
berechnet wurde. Appomatox öffnet daraufhin das Diagramm-Fenster. Bitte beachten Sie bei der Analysis, dass das Zeichnen sehr komplexer Funktionen (über
30 Ziffern und Stellen) lange dauern kann und/oder die Anzeige ruckelt.
Sie können das Schaubild auch speichern. Es gibt zwei Arten der Speicherung:
1. Als Beschreibungsdatei (ADD Appomatox Diagramm-Datei), die nach
dem Laden wieder als gewöhnliches Diagramm bearbeitet werden kann.
2. als Bitmap-Datei. Bitmap-Dateien können in Appomatox nicht wieder geladen werden, dafür aber von alles gängigen Bildbearbeitungs- und Textverarbeitungsprogrammen importiert werden.
Die Koordinate, an der sich die Maus im Schaubild befindet, wird angezeigt.
Sie können das Diagramm entweder vergrößern, indem Sie unter zeichen von
und zeichnen bis ein entsprechend kleineres Intervall wählen oder Sie können
erst auf die Lupe klicken und dann mit der linken Maustaste auf die Stellen,
die vergrößert werden soll. Die Lupe vergrößert 4fach. Ein Klick mit der rechten
Maustaste verkleinert den Ausschnitt.
Wertetabelle und Scharen
Für Kurven können Sie sich auch eine Wertetabelle ausgeben lassen. Wählen
Sie in der entsprechenden Box die Kurve aus und geben Sie dann den Startpunkt
und den Endpunkt ein oder wählen Sie die Punkte ganz einfach mit der Pipette.
Nach einem Klick auf Berechnen wird die Wertetabelle im Ergebnisse-Fenster
ausgegeben. Falls es sich bei der ausgewählten Funktion um eine Kurvenschar
mit Parameter t handelt, können Sie unter Kurvenscharen einen entsprechenden
Wert für t eintragen und auf Übernehmen klicken.
Inhalt
Hier können fortgeschrittene PC-Anwender alle Diagrammelemente ansehen
und deren Eigenschaften ändern. Das Element, das Sie hier aktivieren, wird
KAPITEL 7. PROGRAMMAUFBAU
30
auch in der Werteliste als aktiv gesetzt. Anmerkung: Als Art werden folgende
Werte akzeptiert: 1 : Funktion 2 : Punkte, deren Anzahl unter Menge festgelegt
wird 4 : Eine Bezier-Kurve, deren Anzahl an Stützpunkten ebenfalls unter Menge festgelegt wird Unter www.appomatox.de.nr finden Sie im Developer-Bereich
ein Dokument mit der genauen Definition der Elemente.
Achtung:
• Die Diagramme werden physikalisch gezeichnet, d.h. Definitionslücken
werden übersprungen bzw. überzeichnet.
• Asymptotisch verlaufende Kurven werden im Grenzbereich zur Definitionslücke nur mit begrenzter Genauigkeit gezeichnet.
Funktionen:
Klicken Sie erst auf diese Schaltfläche. Sie können dann, sobald Sie auf
das Diagramm klicken, den Ausschnitt vergrößern.
Klicken Sie erst auf diese Schaltfläche. Sie können dann, sobald Sie in
das Diagramm klicken und die Maus ziehen, das Diagramm verschieben.
Klicken Sie auf diese Schaltfläche, um das Diagramm bildschirmfüllend
(Vollbildmodus) anzuzeigen. Durch einen weiteren Klick auf diese Schaltfläche,
oder durch Drücken der Tasten ESC oder Alt können Sie den Vollbildmodus
wieder verlassen. Damit z.B. bei einer Präsentation auch die Leute ganz hinten“
”
etwas sehen, können Sie unter Optionen die Strichdicke mit Pinselstärke beim
Diagramm verändern.
7.3
Drucken
Sie können die Ergebnisliste und das Diagramm ausdrucken. Klicken Sie dazu
einfach auf Drucken Er erscheint eine Druckvoransicht, wie Sie sie aus fast
jeder anderen Windows-Anwendung kennen. Klicken Sie in der Druckvoransicht
wiederrum auf Drucken, wird das Dokument direkt zum Drucker geschickt.
Wenn Sie auf Seite einrichten klicken, finden Sie die Option Multipage. Sie
können auswählen, ob mehrere Druckseiten auf eine Seite Papier gedruckt werden soll. Bei einer sehr langen Ergebnisliste kann diese Option helfen, sehr viel
Papier zu sparen und die Umwelt zu schonen. Die Optionen Multipage wirkt
sich erst im eigentlichen Druck aus, die Vorschau ändert sich nicht.
Kopf- und Fußzeilen
Das Fenster Kopf- und Fußzeilen stellt ein Feld zur Eingabe von Kopfzeilentext,
der oben auf der Seite angezeigt wird, oder von Fußzeilentext, der unten auf der
Seite angezeigt wird, bereit. Um bestimmte Informationen als Teil der Kopfoder Fußzeile zu drucken, schließen Sie die folgenden Zeichen als Teil des Textes
mit ein.
Geben Sie ein: - um dies zu drucken:
{DATE} - gegenwärtiges Datum
{TIME} - Zeitpunkt des Ausdruckes
7.4. OPTIONEN
31
{PAGE} - Seitenzahl
{NUMPAGES} - Gesamtseitenzahl
7.4
Optionen
In diesem Menü können Sie Eigenschaften von Appomatox bestimmen.
Allgemein
Ergebnisse auf ... Stellen runden
Alle Ergebnisse werden auf die angegebene Anzahl von Stellen gerundet. Dies
gilt nur, wenn Ergebnisse in Bruchdarstellung deaktiviert wurde.
Grafiken im WMF-Format kopieren
Legt fest, ob (grafische) Formeln, die Sie in die Zwischenablage kopieren, im
WMF- oder BMP-Format abgelegt werden sollen.
Pfad für Plugins
Geben Sie hier das Verzeichnis an, in denen Appomatox nach Plugin-Dateien
suchen soll. Ist kein Pfad eingetragen, so wird immer im aktuellen Verzeichnis
gesucht.
Sprache / Language
Hier können Sie einstellen, in welcher Sprache Meldungen und Fragen ausgeben
werden sollen. Damit eine Sprache ausgewählt werden kann, muss die entsprechende ASD-Datei (Appomatox-Sprach-Datei) vorhanden sein.
32
KAPITEL 7. PROGRAMMAUFBAU
Polarkoordinaten
Klicken Sie das entsprechende Kästchen an und Appomatox interpretiert die
eingegebenen Koordinaten in der analytischen Geometrie als Polarkoordinaten.
Der x-Wert entspricht dann der Länge, der y-Wert dem Winkel in Grad. Geben Sie nach dem Gradwert kein ◦“ ein! Kartesische Koordinaten können Sie
”
allerdings nach Aktivierung de Polarkoordinateninterpretation nicht mehr verwenden.
DEG
Wenn dieses Kästchen aktiviert ist, berechnet Appomatox Winkelfunktionen
wie den Sinus, Cosinus, Tangens, sowie den Arcus in Grad, bei deaktiviertem
Kästchen in Bogenmaß (RAD)
Diagramm automatisch mitdrucken
Wenn Sie in Funktionsfenstern, in denen es eine Schaubild-Funktion gibt, den
Schalter Drucken betätigen, wird das Schaubild automatisch mitgedruckt, falls
diese Option aktiviert wurde.
Ergebnisse in Bruchdarstellung
Wenn aktiviert, werden Ergebnisse als Bruchzahlen, kombiniert mit Wurzelausdrücken und Pi ausgegeben. Z.B. 2/3*Pi statt 2,094395.
lange Zahlen zulassen
Appomatox kann normalerweise maximal 9-stellige Zahlen berechnen. Bei der
Primzahlberechnung sind aber oft höherstellige Zahlen zu berechnen. Wenn Sie
dies vorhaben, aktivieren Sie dieses Kästchen. Die Berechnung der Primzahlen
dauert dann aber länger, die Anzahl der Stellen ist aber unbegrenzt. Dies gilt
nur für Primzahlen, Primfaktorzerlegung, sowie pyt. Trippel.
Assistent anzeigen
Wenn aktiviert, wird an einigen Stellen ein Assistent eingeblendet, der Ihnen weitere Tipps zu den Funktionen zeigt. So z.B. bei allen Funktionen der
Matrizen- und Vektorrechnung.
aktive Ergebnisse verwenden
Aktiviert die Funktion, sich zu bestimmten Ergebnistypen wie z.B. f(x) weitere Optionen anzeigen zu lassen. Dies ist sehr rechenintensiv und es kann auf
langsamen Computern zu Verzögerungen führen.
Analysis
Konstanten
Hier können sie Konstanten, wie z.B. die Euler’sche Zahl E definieren. Sie
können diese Konstanten dann in fast allen Eingabefeldern benutzen. Um ei-
7.4. OPTIONEN
33
ne Konstante hinzuzufügen, drücken Sie die Einfg-Taste. Bitte achten Sie darauf, dass alle Konstanten in Großbuchstaben eingetragen sind. Sie brauchen die
Konstante für die Kreiszahl Pi nicht definieren, da diese bereits verdefiniert ist.
Die Euler’sche Zahl erhalten Sie durch die Funktion exp(). Verwenden Sie als
konstanten Wert keinesfalls ein reserviertes Wort wie bsw. sin“ oder exp“.
”
”
Konstanten werden gegenüber Allem als vorrangig behandelt und würden diese
Funktionen löschen.
Präzision
Geben Sie hier ein, auf wie viele Stellen hinter dem Komma genau die Ergebnisse der analytischen Geometrie berechnet werden sollen. 1000 entspricht einer
maximalen Genauigkeit von 1/1000, bzw. 0,001. Bedenken Sie jedoch, dass eine
größere Genauigkeit eine erheblich längere Berechnungszeit benötigt.
Nullstellen bestimmen im Bereich
Stellen Sie hier ein, in welchem Bereich die Nullstellen bestimmt werden sollen. Wenn Sie z.B. 100 eingeben, wird im Intervall [-100..100] nach Nullstellen
gesucht.
Umrechnung
Diagramm speichern und drucken
Das Diagramm kann in unterschiedlichen Qualitätsstufen gespeichert und gedruckt werden. Wählen Sie Wie auf Bildschirm, damit das Diagramm in der
selben Auflösung wie auf dem Bildschirm gespeichert und gedruckt wird. Fein
ist die höchste Qualitätsstufe.
Umrechnung
Hier können Sie die Kurse der Währungen eintragen. Klicken Sie dazu zuerst
die Währung an, deren Kurs Sie eingeben wollen, dann geben Sie den Kurs in
D-Mark in das Eingabefeld ein und klicken schließlich auf ändern. Wollen Sie
nur den gespeicherten Kurs ansehen, um ihn zu überprüfen, so klicken Sie nur
auf die gewünschte Währung. Der Kurs wird dann im Eingabefeld angezeigt.
Farben für ausgefüllte, unausgefüllte und nicht zwingend auszufüllende Eingabefelder
Um die Farben der Eingabefelder zu ändern, klicken Sie auf einen der Buttons.
Es erscheint ein Farbauswahl-Fenster. Hier können Sie die gewünschte Farbe
wählen. Bestätigen Sie schließlich mit OK.
Darstellung
Farben für Diagramm
Hier können Sie bestimmen, welche Farben das Koordinatenkreuz und das Nullkreuz des Diagramms bekommen sollen.
34
KAPITEL 7. PROGRAMMAUFBAU
Kurzhinweise anzeigen, wo möglich
Hier können Sie die Kurzhinweise abschalten, die gewöhnlich erscheinen, wenn
Sie längere Zeit mit der Maus auf einem Feld stehen bleiben. Diese Funktion ist
vor allem dann nützlich, wenn Sie eine andere Sprache als Deutsch eingestellt
haben. Kurzhinweise werden nicht übersetzt!
Mausleiste anzeigen
Blendet die Mausleiste ein oder aus, so dass ggf. für andere Fenster mehr Platz
zur Verfügung steht.
Pinselstärke beim Diagramm
Legt fest, wie breit Linien im Diagramm gezeichnet werden sollen. Für eine
Präsentation im Vollbildmodus ist diese Option sehr nützlich.
Schriftart für Ergebnisausgabe
Legt fest, in welcher Schriftart die Ergebnisse ausgegeben werden sollen.
Kapitel 8
Algebra
8.1
ggT / kgV
Berechnung des größten gemeinsamen Teilers und des kleinsten gemeinsamen
Vielfachen zweier Zahlen n und k. n;k seien ganze Zahlen
8.2
Komplexe Zahlen
Führt Berechnungen mit Komplexen Zahlen durch. Die imaginäre Zahl ist dabei
i. (i^2=-1)
Geben Sie den Realteil und den Imaginärteil getrennt in die entsprechenden Felder ein (kartesische Form). Um Komplexe Zahlen in den Polarformen
einzugeben, rufen Sie bitte den Eingabeassistenten auf.
8.3
Ramanujan
Berechnet die Anzahl der Möglichkeiten p(n), eine natürliche Zahl n als Summe
von natürlichen Zahlen darzustellen. Der Rechenweg ist für große n (größer 20)
jedoch zu komplex, um in kurzer Zeit eine genaue Lösung zu berechnen.
Der indische Mathematiker Srinivasa Ramanusan (daher der Name) entwickelte eine Formel, welche das Ergebnis annähert.
8.4
Perfekte Zahlen
Eine natürliche Zahl n heißt perfekt, wenn n als Summe aller natürlichen Zahlen
i (1 < i ≤ n2 ) , durch die n ohne Rest teilbar ist, dargestellt werden kann. Die
Zahl 28 ist beispielsweise eine perfekte Zahl. Es ist 28 = 1+2+4+7+14 und 1,
2, 4, 7 und 14 genau alle Zahlen, durch die 28 ohne Rest teilbar ist.
8.5
Primfaktorzerlegung
Zerlegt die angegebene Zahl in seine Primfaktoren, d.h. in seine kleinstmöglichen Teiler. Falls Sie unter Optionen nicht der Verwendung von langen Zahlen
35
KAPITEL 8. ALGEBRA
36
(langsame Berechnung) zugestimmt haben, sind die Werte von x auf den Bereich
bis 2.147.483.647 beschränkt.
8.6
Primzahlen und pythagoräische Trippel
Berechnet alle Primzahlen und pythagoräische Trippel ( a2 + b2 = c2 , a;b;c
seien natürliche Zahlen) in einem Bereich 0 bis 2.147.483.647. Beachten Sie bitte,
dass die Berechnung von größeren Zahlen lange Zeit dauern kann (0..200000 auf
einem 200MHz Pentium über 8 Stunden).
8.7
Statistik
Ermittelt die Summe und den Mittelwert der eingegebenen Zahlen. Geben Sie
pro Zeile eine Zahl in die Liste ein. Sie können die Zahlen auch aus der Zwischenablage laden, betätigen Sie dazu die rechte Maustaste und klicken Sie im
Kontextmenü auf einfügen. Beachten Sie, dass die Zwischenablage ein Format
besitzt, welches den Eingabekriterien entspricht: Pro Zeile eine Zahl. Sie können
die Daten auch als Diagramm anzeigen lassen. Die Daten entsprechen dem yWert, der x-Wert entspricht dem Index der Zahl.
8.8
8.8.1
Wahrscheinlichkeitsberechnung
Binomialkoeffizient
n
. Darauffolgend wird die Fakultät
k
(x!) jeweils von n und k berechnet. Um Überlauffehler zu vermeiden, müssen n
und k kleiner 100 sein. Außerdem wird die Fakultät bei Werten über 32! nicht
berechnet. n;k seien ganze Zahlen.
Berechnung des Binomialkoeffizienten
8.8.2
Binomialverteilung
Berechnet die Binomialverteilung Bn; p(X = k), B(X ≤ k) , sowie B(X ≥ k)
nach Eingabe von n, k und p. Außerdem wird die Standardabweichung und die
Varianz ermittelt. n;k seien ganze Zahlen, p sei eine reelle Zahl.
8.8.3
Fakultät
Siehe 8.8.1 Binomialkoeffizient
8.8.4
Permutationen
Berechnet die Permutation dreier ganzer Zahlen, n, p, q.
8.8.5
Varianz
Berechnet die Varianz nach Eingabe von der Wahrscheinlichkeit p und der
Häufigkeit n. Außerdem wird die Standardabweichung ermittelt. n sei eine ganze
Zahl, p sei eine reelle Zahl.
8.9. SUMMEN UND POTENZEN
8.8.6
37
Zufallsgenerator
Ermittelt eine Reihe von Zufallszahlen im Bereich von 0 bis zur eingegebenen
Zahl Zufallszahlen bis:. Falls hier 1 eingegeben wurde, werden Zufallszahlen mit
drei Stellen hinter dem Komma berechnet. Anzahl gibt an, wieviele Zufallszahlen
im genannten Bereich ausgegeben werden sollen.
8.9
Summen und Potenzen
Berechnet die Summe bzw. die Potenz mithilfe des Summen bzw. Potenzzeichens. Als Laufvariable wird x erwartet.
8.10
Zahlensystemumwandlung
Wandelt die eingegebene Zahl x in das Positionssystem mit der Basis q (größer
1) um.
Um eine Zahl eines Systems in ein anderes System zu konvertieren, geben
Sie in das von Klammern umrandete Feld die gewünschte Zahl ein; in das tiefgestellte Feld das Basissystem dieser Zahl. In q= geben Sie das erfragte System
ein. Als Zahlenreihe für Systeme q größer 10 gilt:
0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F;G;H;I;...;Z. x sei kleiner 2.147.483.647
8.11
Ausgleichskurve
Sie können hier mehrere Punkte (Stichproben) eingeben, welche mehr oder weniger auf einer Kurve liegen. Wenn Sie z.B. der Meinung sind, alle eingegebenen
Punkte liegen um eine (linearen) Gerade, so wählen Sie anschließend das Regressionsmodell linear ; sollten die Punkte um eine quadratische Kurve liegen,
so wählen Sie als Regressionsmodell Polynom (Grad 2). Appomatox berechnet, nach Klick auf Berechnen, die Kurve, die am besten durch die Punkte
angenähert wird. Die Funktionsgleichung wird im Ergebnisfenster ausgegeben.
Sie können die Kurve auch als Schaubild anzeigen lassen. Das Diagrammfenster
wird geöffnet und Sie können die Kurve ggf. drucken.
Sie müssen mindestens drei Punkte eingeben, damit eine Ausgleichskurve
(auch Regressionskurve genannt) berechnet werden kann.
38
KAPITEL 8. ALGEBRA
Kapitel 9
Analysis
9.1
Ableitung
Berechnet nach Eingabe einer Funktion f(x) deren n-te Ableitung.
9.2
Bogenlänge
Berechnet nach Eingabe einer Funktion f(x) die Bogenlänge (Länge des Kurvenabschnitts) im Intervall (x1;x2). Das Ergebnis ist lediglich angenähert (approximiert).
9.3
Integrale
Berechnet die Fläche zwischen der x-Achse und einer einzugebenden Funktion
zwischen den Stellen x1=a und x2=b. Beachten Sie bitte, dass das Integral
näherungsweise mit der Simpson-Regel (bei 1000 Teilstreifen) berechnet wird;
die Genauigkeit ist nicht bis auf die letzte Kommastelle gegeben. Desweiteren
wird der Flächeninhalt gemäß der Kepler’schen Faßregel berechnet.
9.4
Lösung linearer Gleichungssysteme
Berechnet die reellen Lösungen eines linearen Gleichungssystemes, sofern dieses
trivial lösbar ist. Die Eingabe erfolgt mittels Koeffizientenmatrix und Lösungsvektor.
Beispiel: Es soll die Lösung des folgenden Gleichungssystems gefunden werden.
Geben Sie als Anzahl der Gleichungen 3 ein. Klicken Sie auf Eingabe der Koeffizientenmatrix. Geben Sie nun Folgendes ein (die x-e werden dazugedacht“):
”
39
KAPITEL 9. ANALYSIS
40
Klicken Sie auf OK. Klicken Sie auf Eingabe der absoluten Glieder. Geben
Sie wie folgt die Werte rechts“ des Gleichheitszeichens ein:
”
Klicken Sie schließlich wieder auf OK und dann auf Berechnen. Die Lösung
(x1=1; x2=0; x3=5) wird in der Ergebnisausgabe angezeigt.
9.5
Kurvendiskussion
Nach Eingabe einer Funktion wird diese auf die 1., 2. und 3. Ableitung, Symmetrie, Nullstellen, Extremstellen und Wendestellen untersucht. Die Nullstellen werden lediglich in dem Bereich gesucht und mit der Genauigkeit, die Sie
unter Optionen angegeben haben. D.h. im Bereich x1-x2=1/Genauigkeit kann
höchstens eine Nullstelle gefunden werden. Als Variable darf ausschließlich x
vorkommen. Die Ableitungen bestimmter, sehr komplexer Funktionen können
leider nicht berechnet werden.
9.6
Rotation um x-Achse
Nach Eingabe zweier Grenzwerte x1 und x2, sowie einer Funktion f(x) wird das
Volumen und die Mantelfläche des Rotationskörpers bestimmt, der die Kurve
f(x), rotierend um die x-Achse, repräsentiert. (Werte approximiert)
9.7. SCHNITT ZWEIER KURVEN
9.7
41
Schnitt zweier Kurven
Berechnet die Schnittpunkte zweier Funktionen in dem Bereich, den Sie unter
Optionen angegeben haben.
9.8
Tangenten
Nach Eingabe einer Funktion f(x) und der Berührstelle x wird eine Tangente zu
f(x) an der Stelle x gelegt. Es wird die Tangentengleichung ausgegeben, sowie die
Stellen, an denen weitere Schnitt- oder Berührpunkte von f(x) mit der Tangente
liegen.
42
KAPITEL 9. ANALYSIS
Kapitel 10
Geometrie
10.1
analytische Geometrie
10.1.1
Drehung und Vergrößerung zum Ursprung
Sie können drei Punkte eines Dreiecks eingeben. Dieses Dreieck wird daraufhin gedreht oder vergrößert (bzw. verkleinert). Wenn Sie ein Vieleck drehen
möchten, rufen Sie die Funktion mehrmals auf und geben dann jeweils die noch
fehlenden Punkte ein. Sollte die Anzahl der Ecken des Vielecks nicht durch 3
teilbar sein, geben Sie den Nullpunkt als ergänzende(n) Punkt(e) ein.
10.1.2
Dreiecke
Diese Funktion berechnet eine Vielzahl von Größen nach Eingabe der drei Eckkoordinaten.
10.1.3
Strecken
Diese Funktion berechnet die Länge, die Mitte und die Steigung von Strecken
im Koordinatensystem. Nach Eingabe der ersten Gerade ist es noch möglich,
eine zweite Gerade anzugeben. Geben Sie die Werte für die 2. Gerade in dieselben Kästchen wie für die 1. Gerade ein. Drücken Sie anschließend auf den
Knopf 2. Gerade. Es werden daraufhin die Werte der zweiten Gerade und der
Schnittwinkel und Schnittpunkt (falls schneidend) beider Geraden berechnet.
10.1.4
Vierecke
Diese Funktion berechnet eine Vielzahl von Größen nach Eingabe der vier Eckkoordinaten.
10.2
Planimetrie
10.2.1
Kreis
Berechnet nach Eingabe von Ausgangswerten viele Größen in einem Kreis.
43
KAPITEL 10. GEOMETRIE
44
10.2.2
Kreisteile
Berechnet nach Angabe des Radius’ und tlw. weiteren Angaben die Fläche und
Länge von Kreisbogen, Kreisausschnitt, Kreisabschnitt und Kreisdreieck.
10.2.3
Kreisring
Berechnet nach Angabe von Ausgangswerten viele Größen in einem Kreisring.
10.2.4
Parallelogramm
Berechnet nach Eingabe von Ausgangswerten viele Größen in einem Parallelogramm. Der Winkel α ist der Winkel in einer Ecke des Parallelogramms.
Wünschen Sie ein Quadrat oder ein Rechteck zu berechnen, so müssen Sie α
=90◦ setzen.
10.2.5
regelm. n-Eck
Berechnet nach Eingabe von Ausgangswerten viele Größen in einem regelmäßigen n-Eck.
10.2.6
Trapez
Berechnet nach Eingabe von Ausgangswerten viele Größen in einem Trapez.
Wünschen Sie ein Quadrat oder ein Rechteck zu berechnen, so müssen die
Längen a und b und m gleich lang sein.
10.3
Stereometrie
Sie können zwischen den verschiedensten Körpern (von Würfel - Kugelkeil, insges. 16 Körper) auswählen. Sie werden meist um die Länge der Kanten gebeten.
Ausgegeben werden dann u.a. Volumen, Oberfläche, Mantelfläche... Um zu verdeutlichen, welche Werte eingesetzt werden sollen, wird bei einigen Funktionen
eine Skizze der erwarteten Figur angezeigt. Achtung: Minuszahlen sind aus logischen Gründen nicht zulässig!
10.4
Trigonometrie
10.4.1
ebene Trigonometrie
Berechnet nach Eingabe von Ausgangswerten nach Möglichkeit die restlichen
Werte. Das Eingabefeld Instanzen braucht gewöhnlich nicht verändert werden,
sollten Sie jedoch feststellen, dass nicht alle möglichen Werte errechnet werden,
sollten Sie diesen Wert leicht erhöhen. Beachten Sie aber, dass die Rechenzeit
dann länger dauert! Um korrekte Ergebnisse zu erhalten, sind korrekte Ausgangswerte Pflicht. Appomatox überprüft die Ausgangswerte nicht. Es empfiehlt
sich, bei rechtwinkligen Dreiecken immer Gamma als rechten Winkel zu wählen,
andernfalls können gewisse Werte nicht berechnet werden.
10.5. BÉZIER-KURVEN
10.4.2
45
sphärische Trigonometrie
Berechnet die Entfernung zweier Punkte auf einer Kugel. Einzugeben sind die
geographische Länge und Breite oder alternativ der Mittelpunktswinkel (jeweils
ohne abschließendes ◦“). Außerdem ist der Radius anzugeben.
”
10.5
Bézier-Kurven
Bézier-Kurven werden von Punkten im Raum bestimmt. Somit können beispielsweise auch kreisförmige Kurven dargestellt werden.
Die Kurve wird bestimmt durch vier Stützpunkte. Sie können die Koordinaten dieser Stützpunkte entweder manuell (Manuelle Bearbeitung) in die dafür
vorgesehen Kästchen eintragen, oder mittels Drag’n’Drop. Für Drag’n’Drop klicken Sie zunächst auf einen Punkte (unter Punkt ... setzen) und anschließend in
die Vorschau. Sobald alle vier Stützpunkte gewählt wurden, erfolgt eine Anzeige. Sie können die Kurve korrigieren, indem Sie wieder auf den zu korrigierenden
Punkt klicken (unter Punkt ... setzen) und wieder in die Vorschau klicken (und
evtl. die Maus ziehen und gedrückt halten).
46
KAPITEL 10. GEOMETRIE
Kapitel 11
Matrizen
11.1
Vektoren
11.1.1
Betrag
Berechnet den Betrag bzw. Länge eines angegebenen Vektors. Der Vektor kann
sowohl zwei- als auch dreidimensional sein.
11.1.2
Kreuzprodukt (Vektorprodukt)
Berechnet das Kreuzprodukt, auch Vektorprodukt genannt, zwischen zwei dreidimensionalen Vektoren. Der Betrag des Vektorproduktes ist gleich dem Flächeninhalt des von den Vektoren aufgespannten Parallelogramms.
11.1.3
Normalisieren
Normalisiert einen Vektor, d.h. verkürzt einen Vektor auf die Länge 1. Der
Vektor kann sowohl zwei- als auch dreidimensional sein.
11.1.4
Punktprodukt (inneres Skalarprodukt)
Berechnet das Punktprodukt, auch inneres Skalarprodukt genannt, zwischen
zwei Vektoren. Die Vektoren können sowohl zwei- als auch dreidimensional sein.
Mit dem Punktprodukt lässt sich der Winkel zwischen den Vektoren berechnen.
11.1.5
Skalarprodukt
Berechnet das Produkt zwischen einem Skalar (eindimensionale Zahl) und einem
Vektor. Der Vektor kann sowohl zwei- als auch dreidimensional sein.
47
48
KAPITEL 11. MATRIZEN
Kapitel 12
Zusatz und Sonstiges
12.1
Formeleditor
Mit dem Formeleditor können Sie Formeln in Appomatox-üblicher Schreibweise
angeben. Die Formel wird dann - sofern fehlerfrei eingegeben - so dargestellt,
wie Sie sie auf Papier zeichnen würden.
Sie können das Resultat in einer Bitmap- oder WMF-Datei abspeichern,
in die Zwischenablage kopieren oder per Drag’n’Drop (Ziehen mit der Maus)
in jede andere Drag’n’Drop-fähige Anwendung (wie beispielsweise MS Word)
ziehen. Statt auf den Knopf Speichern zu klicken, können Sie den Speichern
unter... Dialog auch mit der Tastenkombination Strg+S aufrufen.
Sofern in Optionen Grafiken als WMF kopieren“ aktiviert ist, ist das Ko”
pieren über die Zwischenablage meist qualitativ besser als Drag’n’Drop.
In das Eingabefeld Text können Sie jeden beliebigen Text (auch gar keinen)
eintragen, er wird so wie er dasteht, in die Formel gesetzt. In das Eingabefeld Formel können Sie dann die Formel (incl. Befehlen, siehe Referenz, Kapitel 20 auf Seite 123. ) eintragen, sie wird ausgewertet und angezeigt, wie auf
dem Papier.
Wenn Sie zwei Befehle miteinander verknüpfen, müssen Sie ein & dazwischen
setzen. Andernfalls wäre dies ein Syntaxfehler. Falls in der Formel Syntaxfehler
auftreten, bleibt das Feld mit der ausgewerteten Formel weiss. Im Allgemeinen sind die Befehle case-sensitiv, d.h. beachten Sie die Groß-/Kleinschreibung.
49
KAPITEL 12. ZUSATZ UND SONSTIGES
50
Vermeiden Sie Leerzeichen, diese verursachen meist einen Syntaxfehler.
Eine Befehlsreferenz finden Sie in Kapitel 20 auf Seite 123.
12.2
Internet-Update
Wenn Sie diesen Menüpunkt auswählen, sucht Appomatox automatisch nach
einer aktualisierten Version im Internet. Es werden dabei von Appomatox keine
persönlichen Daten über das Internet übermittelt.
12.3
Plugins
In Appomatox können auch von Drittherstellern und selbst erstellte Eingabeund Berechnungsfenster (sogenannte Plugins) benutzt werden.
Plugins stellen eine sinnvolle Schnittstelle dar, wenn Sie wiederkehrende mathematische Aufgaben zu erfüllen haben, die Appomatox in seiner Grundausstattung nicht abdeckt.
Kopieren Sie die Plugins (Dateiendung .ifps3) in das Verzeichnis, das Sie
unter Optionen (Standardmäßig Appomatox\Plugins\) eingestellt haben. Die
Plugins werden dann in der Addins-Leiste angezeigt. Mit einem einfachen Klick
darauf werden Sie gestartet.
Um eigene Plugins zu erstellen, steht Ihnen der Plugin-Assistent zur Verfügung. Die Befehle beruhen auf Innerfuse PascalScript, eine Scriptsprache, die
sich stark an Borland’s Delphi bzw. Object Pascal anlehnt. Lesen Sie zu diesem Thema auch das Plugin-Entwicklerhandbuch im 2. Teil (Kapitel 13 auf
Seite 57).
12.4
Rechner
Für reelle Zahlen:
Beim Rechner können Sie wie bei einem Taschenrechner Gleichungen eingeben, in denen auch die Variable x vorkommen darf. Appomatox kann die
Ergebnisse mit voller Genauigkeit berechnen, oder das Ergebnis alternativ in
Bruchdarstellung ausgeben.
Beispiel für Ergebnisausgabe als Bruchdarstellung: sin(2/3*Pi)=1/2*sqrt(3)
Beispiel für Ergebnisausgabe mit Komma: sin(2/3*Pi)=0,0365459503130565
Sie können unter Optionen auswählen, ob Appomatox die Bruchdarstellung
generell verwenden soll. Falls nicht, werden die Ergebnisse wie gewohnt, als
Kommazahlen ausgegeben. Selbstverständlich können Sie in Appomatox’ Eingabefelder jederzeit auch Bruchzahlen eingeben.
Mit den Knöpfen laden und speichern können Sie eingegebene Terme in eine
Datei speichern. Sie können sich somit quasi Ihre eigene Formelsammlung zusammenstellen.
Für ganze Zahlen:
Alternativ gibt es einen Rechner für ganze Zahlen. Er verfügt über eine
enorm hohe Genauigkeit von 2^63 Stellen (intern), d.h. sie könnten praktisch
eine Zahl mit über 64 Millionen Stellen eingeben! Jedoch berechnet er keine
Nachkommastellen.
12.5. UMRECHNUNG
51
Die besondere Genauigkeit macht Berechnungen leider sehr langsam. Besonders Multiplikationen und Divisionen von sehr großen Zahlen dauern etwas
”
länger“.
12.5
Umrechnung
Nach Eingabe der Ursprungseinheit und der Zieleinheit, sowie der Menge aus
der Ursprungseinheit, wird die Menge in die Zieleinheit umgerechnet. Die Ursprungseinheit ist dabei diejenige Einheit, die umgerechnet werden soll, die Zieleinheit diejenige, in die umgerechnet werden soll. Außerdem ist es möglich, mehrere Zieleinheiten auszuwählen. Bei der Währungsumrechnung gelten dabei die
Kurse vom 13. September 2002. Sie können die Kurse aber auch im OptionenMenü aktualisieren.
12.6
Zinseszins
Berechnung des Zinseszins nach Eingabe des Kapitals, Zinssatzes in Prozent
und der Laufzeit. Einfache Zinsrechnung kann durch Eingabe einer Laufzeit von
1 Jahr erreicht werden. Die Zinsen werden jährlich fällig. Anstatt Jahre können
Sie sich auch eine beliebige Einheit denken“, beachten Sie dann aber, dass Sie
”
im Ergebnis Jahre wieder durch Ihre gedachte Einheit ersetzen müssen.
Es wird davon ausgegangen, dass ein Jahr 365,25 Tagen und ein Monat 30
Tagen entspricht.
12.7
Diagramm: Element hinzufügen
Mit dem Dialog Element hinzufügen im Diagramm-Fenster können Sie unabhängig von irgendwelchen Berechnungen Kurven, Linien und sogar Beschriftungen und grafische Elemente in das Diagramm einfügen. Mit den Funktionen,
die Sie hier finden, können Sie beeindruckende wissenschaftliche Dokumente
erzeugen.
Allgemeine Vorgehensweise:
KAPITEL 12. ZUSATZ UND SONSTIGES
52
1. Wählen Sie unter den Reitern das Element, welches Sie dem Diagramm
hinzufügen möchten.
2. Treffen Sie unter den Auswahlmöglichkeiten Ihre individuelle Einstellung.
3. Klicken Sie auf Hinzufügen
4. Nach 1-3 Sekunden wird Element im Diagramm angezeigt.
Achsenbeschriftung
Hier können Sie die Beschriftung der Achsen ändern. Beispielsweise bei einem
physikalischen, bei dem die Geschwindigkeit im Diagramm abgetragen werden
soll, können Sie als Achsenbeschriftung s[m] und t[min] angeben. Die Funktionsgleichung muss aber dennoch x als Parameter enthalten. Wahlweise können
Sie die Achsenbeschriftung auch komplett abschalten.
Beschriftung
Geben Sie einen Text an und eine Koordinate. Die Beschriftung wird an genau
der Koordinate im Diagramm gezeichnet. Der Nullpunkt beim Text ist immer
die linke obere Ecke.
Funktion
Sie können hier eine beliebige Kurve eingeben. Sie können individuell eine Farbe
auswählen und die Strichart bestimmen.
Integralfläche
Visualisiert eine Fläche zwischen einer Kurve und der x-Achse, in einem einzugebenden Intervall.
Punkte
Sie die Koordinaten mehrerer Punkte eingeben. Diese Punkte werden dann mittels eines kleinen Kreises in das Diagramm eingetragen. So können beispielsweise
die Extrempunkte einer Kurve oder die Eckpunkte einer Figur visualisiert werden.
Scharen
Bietet die Möglichkeit eine Kurvenschar ins Diagramm einzuzeichnen. Der Scharparameter für die Kurve ist t. Geben Sie in von das kleinste t ein, in bis das
größte t, sowie in Schrittweite die Schrittgröße, mit der das t erhöht werden soll.
Stellen
Zeichnet einen senkrechten oder waagrechten Strich zwischen der x-Achse und
einem Punkt.
12.7. DIAGRAMM: ELEMENT HINZUFÜGEN
53
Vektoren
Zeichnet einen (Vektor-)Pfeil ins Diagramm ein. Es sind die Koordinaten des
linken Endes und des rechtes Endes anzugeben. Die zweite Koordinate ist die
Spitze des Pfeils.
Winkel
Zeichnet einen Winkel ins Diagramm ein. Zuerst die Koordinate des Mittelpunktes eintragen und danach, im Gegenuhrzeigersinn die Koordinaten zweier
Punkte, zwischen denen der Winkel liegt. Der Radius des Winkelbogens ist die
kürzeste Entfernung zwischen dem Mittelpunkt und einem der beiden anderen
Punkten. Sie können weiterhin eine Beschriftung für den Winkel eintragen. Soll
es sich um einen rechten Winkel handeln (dicker Punkt), so können Sie auf die
Schaltfläche rechts neben dem Beschriftungsfeld klicken.
54
KAPITEL 12. ZUSATZ UND SONSTIGES
Teil II
Plugin Entwicklerhandbuch
55
Kapitel 13
Appomatox
Plugin-Entwicklung
Die Plugin-Schnittstelle basiert auf Carlo Kok’s Innerfuse Pascalscript
(www.carlo-kok.com). Appomatox ist in der Sprache (Object) Pascal programmierbar.
Der Plugin-Assistent nimmt Ihnen viele, zum Teil auch sehr komplizierte
Programmieraufgaben ab. Im Folgenden finden Sie ein kurzes Tutorial über das
Programmieren in Pascal. Sofern Sie bereits über zumindest geringe Programmierkenntnisse verfügen, müsste das Wissen, welches Sie beim Durcharbeiten
durch das Tutorial erhalten, genügen, um einfache Plugins selbst zu erstellen.
Um professionelle Plugins zu erstellen, führt aber kein Weg an einem Lehrbuch
über die Pascal/Delphi-Programmierung vorbei. Schauen Sie sich doch auch mal
den Quellcode der mitgelieferten Plugins Berechnung von Pi, Ramanujan und
Perfekte Zahlen an.
13.1
Erste Schritte
13.1.1
Grundlagen
Pascal-Programme sind immer wie folgt aufgebaut:
(Zwei Schrägstriche leiten einen Kommentar ein, d.h. alles nach zwei Schrägstrichen wird vom Computer ignoriert. Zwischen Groß- und Kleinschreibung wird
nicht unterschieden. Mehrere Leerzeichen werden ignoriert.)
program Erstesplugin;
//Der Name des Plugins
begin
writeln(’Hallo Welt’);
//Nun fängts an!
//Auf dem Bildschirm wird der Text
//"Hallo Welt" ausgegeben
//fertig!
end.
Wenn Sie die obigen Zeilen im Appomatox-Plugin-Editor eintippen und auf
Ausführen klicken, erscheint im Ergebnisfenster der Text Hallo Welt“.
”
Für mathematische Anwendungen kann man auch - wie in der Mathematik
üblich - Variablen anlegen und dieser eine Zahl (oder auch Text) zuweisen. Um
57
58
KAPITEL 13. APPOMATOX PLUGIN-ENTWICKLUNG
eine Variable, beispielsweise mit dem Namen x anzulegen, müssen Sie zuerst dem
Computer mitteilen, wie die Variable heißen soll. Fügen Sie deshalb vor begin
die Zeile var x: integer; ein. Das Wörtchen var steht für Variable“. integer
”
steht für den Typ der Variablen. Vorläufig nehmen Sie einfach zur Kenntnis, dass
x vom Typ Integer“ ist (eine Zahl mit Komma müsste mit var x: extended;
”
deklariert werden). Mit dieser Variablen können Sie mit ganzen Zahlen rechnen.
Jede Programmzeile muss mit einem Strichpunkt beendet werden.
Um der Variablen eine Zahl zuzuweisen, benutzen Sie die Zeichen :=. Den
Wert der Variablen kann wieder mit writeln (engl. write line - Zeile schreiben)
in die Ergebnisliste geschrieben werden. Allerdings müssen Sie dabei dem Computer wieder mitteilen, dass das x eine Zahl ist. Dies geschieht mit inttostr(..)
(Integer-To-String - was ein String ist, klären wir später). Um dies zu verdeutlichen, machen wir gleich mal wieder ein Beispiel:
program TestPlugin;
var x : integer;
begin
x:=5;
writeln( intToStr( x ));
end.
//Der Variablen den Wert 5 zuweisen
//"5" in die Ergebnisse schreiben
Mit Variablen können Sie auch rechnen. Beispiel:
program TestPlugin;
var x : integer;
begin
x:=5;
writeln( intToStr( x ) );
x:=x+3;
writeln( intToStr( x ) );
end.
//Der Variablen den Wert 5 zuweisen
//"5" in die Ergebnisse schreiben
//x = x+3;
//"8"
Zweites Beispiel:
program TestPlugin;
var x : integer;
y : integer;
//erste Variable x
//zweite Variable y
begin
x:=5;
y:=3;
x:=x+y; //x = x+3;
writeln( intToStr( x ) );
writeln( intToStr( x+y ) );
writeln( intToStr( x-y ) );
//"8"
//"8"
//"2"
13.1. ERSTE SCHRITTE
59
writeln( intToStr( x*y ) );
writeln( intToStr( x/y ) );
end.
13.1.2
//"15"
//"1"
Schleifen
Sich wiederholende Anweisungen kann man in Schleifen zusammenfassen. Als
einleitendes Beispiel wollen wir die Summe aller Zahlen von 1 bis 5 berechnen.
program TestPlugin;
var x : integer;
i : integer;
begin
x:=0;
for i:=1 to 5 do
begin
x:=x+i;
end;
writeln( intToStr(x) );
end.
//i um eins erhöhen bis i=10
//x den aktuellen Wert von i addieren
//Summe von 1 bis 10 schreiben
Die for-Schleife weist einer Variable anfangs einen Wert zu (i:=1) und
führt dann die Anweisungen aus, die zwischen begin...end eingeschlossen sind
(x:=x+i;). Nach Ende dieser Anweisung wird die Variable um eins erhöht und
wieder die Anweisung durchlaufen, die Variable erhöht, Anweisung durchlauben,
usw. - solange bis die Variable die angegebene Obergrenze (hier 5; to = engl.
bis) erreicht. In einer ausführlichen Schreibweise macht das obige Programm
genau dasselbe wie:
program TestPlugin;
var x : integer;
i : integer;
begin
x:=0;
i:=1;
x:=x+i;
i:=i+1;
x:=x+i;
i:=i+1;
x:=x+i;
i:=i+1;
x:=x+i;
i:=i+1;
//x:=0+1
//2
//x:=1+2
//3
//x:=3+3
//4
//x:=6+4
//5 - letzter Durchlauf,
//
da i nun die Obergrenze erreicht hat
x:=x+i; //x:=10+5
KAPITEL 13. APPOMATOX PLUGIN-ENTWICKLUNG
60
writeln( intToStr(x) );
end.
//Summe von 1 bis 10 schreiben
Um die Ausgabe zu verbessern, können Sie wie folgt den Ergebnissen Text
hinzufügen (aus Platzgründen wird nur die vorletzte Zeile des obigen Programms
wiederholt). Bei Text-Ausgaben hängt das + einen Text an einen anderen an:
writeln(’Summe von 1 bis 10: ’+intToStr(x));
13.1.3
Bedingung
Sie können Fallunterscheidungen treffen, indem Sie eine Bedingung mit if einleiten. Bsp.:
program TestPlugin;
var x : integer;
begin
x:=5;
//Der Variablen den Wert 5 zuweisen
if x=5 then
//wenn x=5, dann
begin
writeln(’Die Variable hat den Wert 5’);
end
else
//andernfalls...
begin
writeln(’Die Variable hat irgend einen anderen Wert.’);
end;
end.
Das obige Programm macht natürlich nur wenig Sinn, denn der Variablen
wurde ja zuvor gerade der Wert 5 zugewiesen. Wenn man Benutzereingaben
zulässt, sind Bedingungen aber mehr als nützlich. Um Benutzereingaben zu erhalten, benutzen Sie den Appomatox-Plugin-Assistent. Er vereinfacht den doch
recht komplizierten Prozess erheblich. Siehe Kapitel 13.2 auf Seite 63.
13.1.4
Mit Text arbeiten
Ein Computer kann intern nur mit Zahlen arbeiten. Deshalb wird auch ein
einzelnes Zeichen als eine Zahl gespeichert. Welches Zeichen welcher Zahl entspricht, wird aus folgender Tabelle entnommen (genannt ASCII-Tabelle):
Zahl Zeichen | Zahl Zeichen | Zahl Zeichen | Zahl Zeichen
--------------|---------------|---------------|----------------32
[leer] |
63
?
|
94
^
| 125
}
33
!
|
64
@
|
95
_
| 126
~
34
"
|
65
A
|
96
‘
| 127
|
35
#
|
66
B
|
97
a
|
36
$
|
67
C
|
98
b
|
37
%
|
68
D
|
99
c
|
38
&
|
69
E
| 100
d
|
13.1. ERSTE SCHRITTE
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
’
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
61
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Die Zeichen 0-31
sind nur für
interne Zwecke.
Die Zeichen 127
255 können sich
je nach Computer
typ unterscheiden
Um zu entscheiden, ob eine Variable nun einen Buchstaben oder eben als
Zahl enthält, müssen Sie eine Variable als char deklarieren: var c: char;. Um
die Position eines Buchstabens innerhalb obiger Tabelle zu erfahren, benutzen
Sie die Funktion Ord(...). Andersherum, also den Buchstaben an einer beliebigen Position ermitteln Sie mit Chr(...).
Folgendes Beispiel nutzt aus, dass das Alphabet in der Tabelle geschlossen
hintereinander steht. Es verschiebt ein Buchstaben um 10 Positionen nach vorne.
program CharTest;
var c : char;
i : integer;
begin
c:=’A’;
i:=Ord(c);
i:=i+10;
c:=Chr(i);
writeln( c );
end.
//Position von ’A’ in der Tabelle, also 65
//10 vorrücken
//Suchen, welches Zeichen an Position 75 ist
//"K"
//Für Fortgeschrittene, hier das selbe Programm in Kurzform:
program CharTest2;
var c: char;
KAPITEL 13. APPOMATOX PLUGIN-ENTWICKLUNG
62
begin
c:=Chr(Ord(’A’)+10);
writeln(c);
end.
Um dem Computer klar zu machen, dass man jetzt der Variablen einen
Buchstaben und keine andere Variable (statt A hätte man auch i benutzen
können, was der Name einer anderen Variablen gewesen wäre) zuzuweisen, muss
man den Buchstaben in Gänsefüsschen (Apostroph) setzen.
Einen gewöhnlichen Text, also mehrere Buchstaben aneinander gereiht, nennt man eine Zeichenkette, oder englisch: String. Ebenso, nämlich String, heißt
auch die entsprechende Variable, mit der man mehrere aneinander gereihte
Buchstaben speichern kann. Mit dem Rechenzeichen + kann man zwei Strings
aneinander hängen. Die anderen Rechenzeichen geben natürlich keinen Sinn und
sind in Zusammenhang mit Strings auch nicht erlaubt.
program StringTest;
var
a
b
x
y
:
:
:
:
string;
string;
integer;
integer;
//Text-Variablen a und b
begin
a:=’Hallo’;
b:=’Welt!’;
writeln( a+ ’ ’ +b);
a:=’1’;
b:=’2’;
writeln( a+b );
//Leerzeichen einfügen und Text
//und Text "Hallo Welt!" ausgeben
//b an a anhängen
//"12"
x:= strToInt(a);
y:= strToInt(b);
//Strings in Zahlen umwandeln
writeln( intToStr( x+y ) ); //"3"
end.
Zum Abschluss noch ein Beispiel für Fortgeschrittene, welches einen Text auf
einfache Weise verschlüsselt. Jeder einzelne Buchstabe wird um fünf Stellen weiter verschoben. Das verschlüsselte a sei also ein e, das verschlüsselte b ein f usw..
Die Funktion length(s:string) liefert die Anzahl der Zeichen eines Strings in
einer Zahl-Variablen. Die Funktion StrGet(var s: string; i:integer) liefert das i-te Zeichen von links im String zurück.
program verschluesseln;
var s
i
a
c
:
:
:
:
string;
integer;
string;
char;
//zu verschlüsselnder Text
//verschlüsselter Text
//ein einzelnes Zeichen im String
13.2. PLUGIN-ASSISTENT
63
begin
s:= ’Der zu verschlüsselnde Text.’;
//oder alternativ: readln(s);
//jedes einzelne Zeichen im String abklappern
for i:=1 to length(s) do
begin
c := StrGet(s,i);
//das i-te Zeichen von links
a := a+ (Chr(Ord(c)+5)); //*1* c um 5 Stellen verschieben
end;
writeln(’Der verschlüsselte Text:’);
writeln(a);
end.
Um ein Plugin zu schreiben, welches einen verschlüsselten Text wieder entschlüsselt, müssen Sie die in der *1* markierte Zeile das Zeichen um 5 Stellen
nach links verschieben:
a:=a+ (Chr(Ord(c)-5));
13.2
Plugin-Assistent
Mit dem Plugin-Assistenten können Sie komfortable Eingabefenster erstellen,
wie Sie sie aus Appomatox kennen. Rufen Sie ihn auf, indem Sie auf Programm/Neues Plugin erstellen... klicken. Wählen Sie eines der Layouts aus.
Es gibt Layout mit einem, zwei und drei Eingabefelder, sowie eines mit einem
großes Textfeld. Klicken Sie auf Weiter. Sie werden nach dem Namen des Plugins gefragt, sowie nach der Beschriftung der Eingabefelder. Bitte vergeben Sie
nur kurze Beschriftungen. Die Beschriftungen werden später zugleich die Namen
für die entsprechenden Variablen sein.
Wenn Sie wieder auf Weiter klicken, werden Sie gefragt, was passieren soll,
wenn der Benutzer im fertigen Fenster auf Berechnen klickt. Es wurden automatisch Variablen erstellt. Sie tragen denselben Namen wie die Beschriftung
des jeweiligen Eingabefeldes (evtl. ohne Sonderzeichen und Leerzeichen). Haben Sie z.B. das Eingabefeld mit x beschriftet, so können steht in dem String
x.text der vom Benutzer eingegebene Text. In dem Integer ix wird auch automatisch die aus dem String umgewandelte Zahl gespeichert (es handelt sich
schließlich um ein Mathematikprogramm, und die Verarbeitung von Zahlen wird
wahrscheinlich zumeist vorkommen).
Wenn Sie wieder auf Weiter klicken, werden Sie gefragt, in welcher Datei
das Plugin gespeichert werden soll. Vergeben Sie einen aussagekräftigen Namen,
unter diesem wird das Plugin später auch gestartet. Sollten Sie mit den Namen
der Variablen nicht einverstanden sind, können Sie sie, wenn Sie wieder auf
Quelltext im Editor öffnen klicken, diese ändern oder ggf. das Plugin komplett
überarbeiten.
64
KAPITEL 13. APPOMATOX PLUGIN-ENTWICKLUNG
Vom Assistenten erzeugter Quelltext
Dieses Kapitel beschreibt den Quellcode, den der Plugin-Assistent für Sie erstellt
(Layout: Ein Eingabefeld). Dieses Kapitel ist für fortgeschrittene Anwender gedacht, Einsteiger möchte ich an ein Lehrbuch für Delphi und Object Pascal
verweisen, und bitten, die folgenden Erklärungen wenigstens überfliegen.
program TestPlugin;
var Form
btnBerechnen, btnHelp
btnSchliessen
: TForm;
: TButton;
: TButton;
lblx : TLabel;
x
: TEdit;
Bevel1, Bevel2
: TBevel;
Es werden Variablen deklariert. Der Variablentyp TForm ist das eigentliche
Fenster. Auf dieses werden später Knöpfe und Eingabefelder draufgeklebt“.
”
TButton ist ein Knopf, auf den man mit der Maus klicken kann. Es gibt drei
Knöpfe: Berechnen (btnBerechnen), Hilfe (btnHelp), Schließen (btnSchliessen).
Ein TLabel ist ein einfacher Text, der angezeigt wird. Er dient als Beschriftung.
TEdit ist ein Eingabefeld. Die beiden TBevel’s dienen nur der Optik. Sie sind
Linien, die ganz oben im Fenster, sowie um die drei Buttons gezeichnet werden.
procedure btnSchliessenClick(sender: TObject);
begin
form.close;
end;
Diese Prozedur (in sich geschlossener Programmabschnitt) wird aufgerufen,
wenn der Benutzer auf den btnSchliessen klickt. Der Befehl form.close veranlasst das Fenster, zu schliessen und setzt form.visible auf false.
procedure btnBerechnenClick(sender: TObject);
var ix : integer;
begin
if x.text = ’’ then exit;
ix := strtoint(x.text); //Eingabe der Variablen zuweisen
//TODO: eigenen Code einfügen
writeln(inttostr(ix)); //Variable im Ergebnisfenster ausgeben
end;
Hier steht der direkt kopierte Quellcode, nach dem der Assistent in Was soll bei
Klick auf Berechnen geschehen? gefragt hat.
procedure xchange(sender: TObject);
begin
if x.text <> ’’ then x.color:=ApGetColor(1)
else x.color:=ApGetColor(0);
end;
13.2. PLUGIN-ASSISTENT
65
Appomatox Eingabefelder ändern ihre Farbe, sobald der Benutzer einen Wert
eingibt. Dies geschieht in dieser Prozedur. Sie wird immer dann aufgerufen,
wenn sich der Inhalt eines Eingabefeldes ändert. Die Funktion ApGetColor(...)
liefert die in Optionen eingestellte Farbe für ausgefüllte oder nicht-ausgefüllte
Eingabefelder.
Begin
Form := TForm.Create(self);
Form.Width := 361;
Form.Height := 220;
Form.BorderStyle := bsToolWindow;
Form.Caption := ’TestPlugin’;
Form.Position := poScreenCenter;
form.formstyle:=fsStayOnTop;
Das Fenster wird erzeugt. in width und height wird die Breite und Höhe
des Fensters bestimmt. borderstyle bestimmt die Rahmendicke des Fensters.
caption ist der Fenstertitel. poScreenCenter gibt an, dass das Fenster beim
Öffnen immer in der Mitte des Bildschirms platziert werden soll. fsStayOnTop
legt fest, dass das Fenster nicht hinter dem Appomatox Hauptfenster versteckt
werden kann.
btnBerechne:=TButton.create(form);
btnBerechnen.parent:=Form;
btnBerechnen.caption:=’Berechnen’;
btnBerechnen.top:=120;
btnBerechnen.left:=24;
btnBerechnen.width:=97;
btnBerechnen.height:=25;
btnBerechnen.default:=true;
btnBerechnen.onclick:=@btnBerechnenClick;
btnHelp:=TButton.create(form);
btnHelp.parent:=Form;
btnHelp.caption:=’Hilfe’;
btnHelp.top:=120;
btnHelp.left:=232;
btnHelp.width:=97;
btnHelp.height:=25;
btnHelp.default:=false;
btnHelp.enabled:=false;
btnSchliessen:=TButton.create(form);
btnSchliessen.parent:=Form;
btnSchliessen.caption:=’Schließen’;
btnSchliessen.top:=149;
btnSchliessen.left:=232;
btnSchliessen.width:=97;
btnSchliessen.height:=25;
btnSchliessen.cancel:=true;
btnSchliessen.onclick:=@btnSchliessenClick;
66
KAPITEL 13. APPOMATOX PLUGIN-ENTWICKLUNG
Die drei Buttons (Knöpfe) werden erstellt. parent weist auf das eigentliche Fenster. Denn es ist das Elter(nteil) des Buttons und der Knopf soll darauf gezeichnet
werden. caption,top,left,width,height gibt wieder die Beschriftung, sowie
die Größe (in Pixel) des Buttons, an. Falls cancel, default true sind, reicht es,
wenn der Benutzer auf Enter (default:=true) bzw. ESC (cancel:=true) drückt,
ob die mit dem Knopf verbundene Aktion auszulösen. onclick gibt den Namen
der Prozedur an, welche ausgeführt werden soll, wenn der Benutzer auf den
Knopf klickt (bzw. auf Enter oder ESC drückt).
lblx:=TLabel.create(form);
lblx.Top := 22;
lblx.Left := 16;
lblx.Height := 13;
lblx.Width := 81;
lblx.Caption := ’x’;
lblx.Parent := Form;
x:=TEdit.create(form);
x.top:=18;
x.left:=104;
x.height:=21;
x.width:=233;
x.Parent := Form;
x.color:=apgetcolor(0);
x.onchange:=@xChange;
Das TLabel ist die Beschriftung für das Eingabefeld TEdit. Left und Top wurden
so gewählt, dass die Beschriftung und Eingabefeld direkt nebeneinander liegen.
onchange, gibt den Namen der Prozedur an, welche ausgeführt wird, wenn das
Eingabefeld geändert (d.h. wenn Text eingegeben) wird.
bevel1:=TBevel.create(form);
bevel1.parent:=form;
bevel1.align:=alTop;
bevel1.style:=bsLowered;
bevel1.shape:=bsTopLine;
bevel2:=TBevel.create(form);
bevel2.parent:=form;
bevel2.shape:=bsBox;
bevel2.style:=bsRaised;
bevel2.top:=112;
bevel2.left:=8;
bevel2.width:=337;
bevel2.height:=73;
Die beiden TBevels dienen der Optik. align=alTop gibt an, dass es automatisch
vergrößert und verkleinert wird, wenn das Fenster vergrößert oder verkleinert
wird. bsBox und bsTopLine geben die Form des Bevels an. TopLine ist eine
einfache Linie, Box ein viereckiger Kasten. bsRaised, bsLowered bestimmen,
ob das Bevel so gezeichnet werden soll, als wäre eine Vertiefung bzw. Erhöhung
im Fenster.
13.3. SNIPPLETS
67
form.visible:=true;
x.setfocus;
while form.visible do
begin
Application.HandleMessage;
end;
Die Form wird durch form.visible:=true; auf den Bildschirm gezeichnet und
das Eingabefeld x erhält daraufhin durch x.setfocus; standardmäßig den Eingabecursor. Danach startet eine Endlosschleife“, die solange alle Benutzerein”
gaben an die entsprechenden Komponenten weiterleitet, bis form.visible durch
onClose, also durch Klick auf Schließen auf false gesetzt wird.
btnBerechnen.free;
btnHelp.free;
btnSchliessen.free;
form.free;
End.
Zuletzt werden alle erzeugten Komponenten wieder befreit“, d.h. aus dem
”
Speicher entfernt. TBevels sind die einzigen Komponenten, die nicht mit free
gelöscht werden dürfen. Sie werden automatisch entfernt.
13.3
Snipplets
Snipplets werden wie normale Plugins verwaltet. Sie helfen dem Benutzer bei
der Eingabe immer gleicher Werte. Man könnte sie auch als Makros bezeichnen.
Eine (zugegebenermaßen eher dürftige) Referenz über alle Eigenschaften der
Komponenten finden Sie in Kapitel 17 auf Seite 87 . Die Referenz wird in
zukünftigen Versionen noch überarbeitet und erweitert.
Der Aufbau:
program SampleSnipplet;
begin
ApOpenWindow(’FGGTKGV’);
//ruft das Appomatox-Fenster ggT/kgV-Berechnung auf
ApWriteEditValue(’FGGTKGV’, ’x1’, ’5’);
//schreibt 5 in das Eingabefeld "x="
ApWriteEditValue(’FGGTKGV’, ’y1’, ’8’);
//schreibt 8 in das Eingabefeld "y="
end.
Wenn Sie das Plugin starten, wird das Fenster für die ggT/kgV-Berechung
geöffnet und die beiden Werte in die entsprechenden Felder geschrieben. Der
Benutzer muss somit nur noch auf Berechnen klicken und das Ergebnis ablesen.
Die entsprechenden Parameter für die Funktionen stehen in Kapitel 18.5 auf
Seite 111
KAPITEL 13. APPOMATOX PLUGIN-ENTWICKLUNG
68
13.4
Benennung von Variablen
Sie sind in der Namensgebung für Variablen ziemlich frei, wie überall gelten
aber auch hier einige Vorschriften:
• Variablennamen dürfen nicht mit einer Zahl beginnen.
• Variablennamen dürfen keine Satzzeichen oder Umlaute (ä,ö,ü,ß) enthalten.
• Variablennamen müssen eindeutig sein, d.h. es dürfen keine zwei unterschiedlichen Variablen denselben Namen tragen.
• Variablennamen dürfen nicht den Namen eines Schlüsselwortes tragen.
Schlüsselwörter sind Anweisungen für den Compiler, wie beispielsweise
begin, end, for, to, do, while, repeat, until, if, then, else, case, of, try,
finally, except, ...
Kapitel 14
Plugin-Editor
Mit dem Plugin-Editor können Sie auf bequeme Weise Ihre Plugins erstellen. Sie
können ihn aufrufen, indem Sie entweder auf Programme/Plugin-Editor klicken,
oder indem Sie im Plugin-Assistenten auf Quelltext im Editor öffnen klicken.
Der Editor ist in vier Bereiche aufgeteilt: Ganz oben finden Sie die Menüleiste und eine Mausleiste. In den großen Bereich in der Mitte können Sie den
Quelltext eingeben. Rechts davon ist ein Fenster mit Debug-Informationen (siehe Kapitel 14.1 auf der nächsten Seite Fehlersuche mit dem Plugin-Editor)
und ganz unten finden Sie unter Meldungen eine Liste mit Meldungen, welche
erzeugt werden, wenn das Plugin compiliert und ausgeführt (gestartet) wird, sowie unter Ausgabe eine Kopie der Appomatox-Ergebnisausgabe. Diese dient zur
schnellen Kontrolle ohne langes Hin- und Her-Schalten zwischen den Fenstern.
Alle Meldungen sind (noch) auf Englisch. Fehlermeldung oder Hinweise beginnen immer mit [Error] bzw. [Hint], gefolgt von der Zeile und Spalte, in denen
der Fehler auftrat. Sie können mit der Maus darauf doppelklicken, damit der
Cursor automatisch zur angemahnten Stelle im Quelltext springt.
69
KAPITEL 14. PLUGIN-EDITOR
70
14.1
Fehlersuche mit dem Plugin-Editor
Manchmal kommt es vor, dass manche Fehler einfach unauffindbar sind. Der
Plugin-Editor bietet zur Behebung solcher Fehler einen Debugger. Mit ihm
können Sie, während das Plugin läuft, untersuchen, welche Werte gerade in
Variablen sind und wie die Verzweigungen innerhalb des Quelltextes sind.
1. Wenn Sie eine Vermutung haben, in welcher Zeile der Fehler auftritt, so
können Sie in diese Zeile einen Haltepunkt (Taste F5) setzen. Andernfalls
setzen Sie den Haltepunkt einfach an den Programmanfang. Das Plugin
wird an dieser Stelle dann mit der Ausführung unterbrechen. Es ist auch
möglich, mehrere Haltepunkte zu setzen. Die Zeilen, in denen ein Haltepunkt liegt, sind rot hinterlegt.
2. Starten Sie das Plugin wie gewohnt mit Klick auf Start. Geben Sie ggf.
Daten ein, welche den Fehler auslösen. Das Plugin hält an, sobald es in
der Quelltextzeile angekommen ist, in welcher Sie den Haltepunkt gesetzt
haben. In der Liste mit Debug-Informationen im Plugin-Editor erscheinen
nun alle verfügbaren Variablen mit ihren Werten.
3. Drücken Sie die Tasten F8 (Gesamte Routine) bzw. F7 (Einzelschritt,
bei verschachtelten Funktionsaufrufen) um die nächste Quelltextzeile auszuführen. Die Zeile, welche als nächstes ausgeführt wird, ist blau hinterlegt. Die Debug-Informationen werden ständig aktualisiert.
4. Sobald Sie den Fehler gefunden haben, klicken Sie wieder Start. Das Plugin
wird nun wieder wie gewohnt ohne Unterbrechung (sofern es kein weiterer
Haltepunkt gibt) abgearbeitet.
Achtung: Komplexe Datentypen wie records, classes und arrays können nicht
ausgewertet werden.
14.2
Fehlermeldungen
14.2.1
Laufzeitfehler
Laufzeitfehler sind Fehler, welche erst auftreten, während das Plugin läuft.
Could not call proc
Invalid array
Konnte Procedure nicht aufrufen.
Meldet setArrayLength, wenn Sie kein
Array als Parameter angegeben haben.
Out of String range
Cannot Import x
Kann x nicht importieren.
Melden strGet und strSet, wenn Sie
einen Index im String angegeben haben, der hinter dem letzten Zeichen Invalid Type
liegt. Verwenden Sie einen kleineren
Index!
Ungültiger Typ.
14.2. FEHLERMELDUNGEN
71
Internal error
Unexpected End Of File
Fehler in Appomatox.
Unerwartetes Dateiende. Möglicherweise fehlt ein END..
Invalid Header
Ungültiger Kopf.
divide by Zero
Division durch 0. Eine Zahl darf nicht
durch 0 geteilt werden.
Invalid Opcode
Ungültiger Opcode.
Math error
Fehler in einer Mathematikfunktion.
Invalid Opcode Parameter
Ungültige Opcode-Parameter.
Could not call proc
Konnte Prozedur nicht ausführen.
no Main Proc
Out of Record Fields Range
Keine Hauptfunktion. Jedes Plugin
Bereichsüberschreitung bei einem Remuss mit einem BEGIN anfangen, welcord.
ches in keiner Unterprozedur liegt.
Null Pointer Exception
Out of Global Vars range
Zuviele globale Variablen.
Es wurde versucht, auf einen NullZeiger zuzugreifen. Null-Zeiger zeigen
auf keinen gültigen Speicherbereich.
Out of Proc Range
Null variant error
Außerhalb des ProzedurengültigkeitsEs wurde versucht, auf einen nichtbereichs.
gefüllten Variant zuzugreifen.
Out Of Range
Out Of Memory
Außerhalb des Gültigkeitsbereichs.
Dies kann vorkommen, wenn ein Array
nicht genügend groß mittels SetArrayLength(...) dimensioniert wurde und
auf einen Index überhalb der oberen
Grenze zugegriffen wird.
Nicht genügend freier Arbeitsspeicher.
Sofern dieser Fehler beim Start des
Plugins auftritt, so schließen Sie ein
oder mehrere Anwendungen, um Speicher freizugeben. Tritt der Fehler erst
auf, nachdem das Plugin schon einige
Zeit arbeitet, so handelt es sich evtl.
um ein Speicherloch, d.h. sie reservieOut Of Stack Range
ren in einer Schleife Speicher und geAußerhalb des Stack-Gültigkeitsbe- ben ihn nicht mehr frei.
reichs.
Exception: x
Type Mismatch
Es ist eine Ausnahme aufgetreten.
Unbekannter Typ. Sie haben mögli- Sie können Ausnahmen mit try...
cherweise einen Tippfehler in einer Va- except... finally... end; auffanriablendefinition.
gen
KAPITEL 14. PLUGIN-EDITOR
72
Interface not supported
Unknown error
Schnittstelle wird nicht unterstützt.
Unbekannter Fehler.
14.2.2
Compilerfehler
Compiler sind Fehler, welche bereits erkannt werden, bevor das Plugin ausgeführt wird. Das Plugin kann nicht gestartet werden, bevor alle Compilerfehler
behoben sind. Es handelt sich dabei meistens um Flüchtigkeitsfehler, z.B. Tippfehler oder es wurde einfach vergessen, vor der Benutzung einer Variable, diese
zu deklarieren.
Unknown identifier x
’BEGIN’ expected
Unbekannter Bezeichner. Möglicher- BEGIN erwartet. Ein Block wurde
weise liegt ein Tippfehler vor.
zwar mit END geschlossen, aber nicht
mit BEGIN eingeleitet.
Identifier expected
period (’.’) expected
Bezeichner erwartet. Die angegebene
Quelltextzeile ist nicht vollständig.
Punkt erwartet. Es kann nur auf die
Unterelemente des Records zugegriffen
werden.
Comment error
Fehler im Kommentar. Der Kommentar wurde möglicherweise nicht geschlossen
Duplicate identifier x
Ein Variablenname wurde mehrmals
vergeben.
String error
Fehler im String.
colon (’:’) expected
Doppelpunkt erwartet.
Char error
Fehler in einem char.
Unknown type x
Syntax error
Unbekannter Typ. Möglicherweise liegt
ein Tippfehler vor.
Syntaxfehler. Die Schlüsselwörter sind
in der angegebenen Reihenfolge nicht Close round expected
zulässig.
Schließende runde Klammer erwartet.
Unexpected end of file
Type mismatch
Unerwartetes Dateiende. MöglicherUnbekannter Typ. Möglicherweise liegt
weise fehlt ein END..
ein Tippfehler vor.
Semicolon (”;”) expected
Strichpunkt erwartet. Wurden alle Zeilen mit einem Strichpunkt beendet?
Internal error (x)
Es gibt einen Fehler in Appomatox.
14.2. FEHLERMELDUNGEN
Assignment expected
73
’END’ expected
Zuweisung erwartet. Zuweisungen an END erwartet.
eine Variable erfolgen imer mit :=.
’THEN’ expected
Label x not set
Ein Sprungziel (LABEL) wurde zwar
THEN erwartet. Nach einem IF muss mit GOTO angesprungen aber ist
immer ein THEN erfolgen.
nicht definiert.
’DO’ expected
DO erwartet.
Not in a loop
Nicht in einer Schleife.
No result
Invalid jump
Kein Rückgabewert. Eine Funktion
muss immer einen Wert zurückgeben. Ungültiger SPrung.
Benutzen Sie statt FUNCTION -¿
PRECEDURE.
Open Block (’[’) expected
Öffnende runde Klammer erwartet.
Öffnende eckige Klammer erwartet.
Auf ein Array wird mit x[y] zugegriffen
comma (’,’) expected
Write-only property
open round (’(’)expected
Komma erwartet.
Sie können die Eigenschaft zwar schreiben aber nicht lesen.
’TO’ expected
TO erwartet.
Read-only property
is (’=’) expected
Sie können die Eigenschaft zwar schreiben aber nicht lesen.
Ist gleich (=) erwartet.
Class type expected
’OF’ expected
Klassentyp erwartet.
OF erwartet.
Close block(”]”) expected
Divide by Zero
Division durch 0. Eine Zahl kann nicht
Schließende eckige Klammer erwartet.
durch 0 geteilt werden.
Auf ein Array wird mit x[y] zugegriffen
Variable Expected
Math Error
Variable erwartet.
Fehler in einer Mathematikfunktion.
String Expected
Unsatisfied Forward x
String erwartet.
Ungenügender Verweis.
KAPITEL 14. PLUGIN-EDITOR
74
Forward Parameter Mismatch
Unknown error
Fehler im Parameter des Verweises.
Unbekannter Fehler.
14.2.3
Hinweise
Hinweise sind keine Fehler im eigentlichen Sinne. Sie werden ausgegeben, wenn
der Code unschön“ ist, oder Speicher verschwendet wird.
”
Variable x never used
Function x never used
Die Variable x wurde zwar deklariert, Die Funktion x wurde zwar deklariert,
es wird aber nie darauf zugegriffen. Die sie wird aber nie aufgerufen. Die FunkVariable kann entfernt werden.
tion kann entfernt werden.
Kapitel 15
Basistypen
ACHTUNG: Die Beispiele in diesem Kapitel sind auf das Wesentlich verkürzt.
program, begin und end werden weggelassen.
15.1
Boolean
Variablen vom Typ Boolean speichern ein Bit. Einen wahr/falsch-Wert (bzw.
true und false) oder 1 und 0.
Bsp.:
var b: boolean;
b:=true;
b:=false;
if (b=true) then
begin end
else
begin end
15.2
Extended
Extended ist eine Gleitkommazahl, also eine Zahl mit Komma. Die Nachkommastellen werden mit einem Punkt von den Ganzzahl abgetrennt.
Der Bereich von extended umfasst
3.6 x 10^-4951 .. 1.1 x 10^4932 mit 19-20 signifikaten Stellen
Bsp.:
var f : extended;
f:= 1.513;
15.3
Integer, longint und word
Integer, Longint und word sind ganzzahlige Typen, also Zahlen ohne Komma.
Der Bereich von integer umfasst -32768..+32767
75
KAPITEL 15. BASISTYPEN
76
Der Bereich von longint umfasst -2147483648..2147483647
Der Bereich von word umfasst 0..65536
Bsp.:
var i : integer;
i := 15000;
15.4
Char
Ein Char (engl. Character - Buchstabe) ist ein einzelnes Zeichen. Es wird intern
als eine Zahl gespeichert.
Bsp.:
var c: char;
c:=’A’;
15.5
String
Ein String ist eine Folge von Zeichen. Also Buchstaben, Wörter oder ganze
Sätze. Sie wird mit Apostrophen eingeklammert.
Bsp.:
var s : string;
s:=’Dies ist ein Test’;
15.6
Array
Arrays sind an sich kein echter Basistyp. Von einem (beliebigen) Basistyp werden
mehrere Instanzen nacheinander im Speicher abgelegt. Man kann mit einem
Index darauf zugreifen. Die Nummerierung der Indizes startet bei 0.
Bsp.:
var v : array of extended;
e : extended;
begin
setArrayLength(v,5);
v[0] := 1.123;
v[1] := 2.345;
v[2] := 3.456;
v[3] := 4.567;
v[4] := 5.678;
e:= v[3];
setArrayLength(v,6);
v[5] := 6.789;
end.
//das Array soll 5 Elemente aufnehmen
//Array vergrößern, jetzt auf 7 Elemente
15.7. RECORD
15.7
77
Record
Records fassen mehrere Basistypen zu einem neuen Typ zusammen. Auf die
Unterelemente kann man mit einem Punkt zugreifen.
Bsp.:
var v : record
a : integer;
b : string;
end;
begin
v.a := 4;
v.b := ’Vier’;
end.
78
KAPITEL 15. BASISTYPEN
Kapitel 16
Allgemeine Funktionen und
Prozeduren
16.1
Verarbeitung von Strings
Chr
function Chr(i: integer) : char;
Gibt das Zeichen zurück, welches dem Ordinalwert (ASCII-Wert) i entspricht.
(Inverse Funktion zu Ord(...)). Da die ASCII-Tabelle nur 256 Zeichen enthält,
darf i nicht größer als 255 sein. Die Zeichen 0-31 und 127-255 können zu unerwarteten Ergebnissen führen und sollten deshalb nicht benutzt werden.
Copy
function copy(s: string; ifrom, icount: Longint): string;
Gibt einen Teilstring des Strings s zurück. Start des Teilstrings ist der in ifrom
angegebene Index. icount gibt die zurückzugebende Anzahl an Zeichen an.
Delete
procedure delete(var s: string; ifrom, icount: Longint): string;}
Löscht die Anzahl icount an Zeichen aus dem String s. ifrom gibt an, an welcher
Position mit dem Löschen begonnen werden soll.
Insert
procedure insert(s:string; var s2:string; ipos:Longint):string;
Setzt den String s2 an der Stelle ipos in den String s ein.
Length
Function Length(s : String) : Longint;
Gibt die Länge des Strings s zurück.
79
80
KAPITEL 16. ALLGEMEINE FUNKTIONEN UND PROZEDUREN
Lowercase, AnsiLowerCase
Function Lowercase(s : string) : string;
Function AnsiLowerCase(s : string) : string;
LowerCase Wandelt den gesamten String s in Kleinbuchstaben um. AnsiLowerCase berücksichtigt dabei auch europäische Sonderzeichen.
Ord
function Ord(c: char) : integer;
Gibt den Ordinalwert (ASCII-Position) des Zeichens c zurück. (Inverse Funktion
zu Chr(...))
Pos
function pos(substr, s: string): Longint;
Sucht den Teilstring substr im String s. Es gibt die Position des Zeichens zurück,
an welchem der Teilstring in s beginnt. Falls substr nicht gefunden wird, wird
-1 zurückgegeben.
SetLength
procedure SetLength(var S: String; L: Longint);
Setzt den String s auf die die Länge L.
StrGet
Function StrGet(var S : String; I : Integer) : Char;
Gibt das Zeichen an der Stelle i des Strings s zurück.
StringOfChar
Function StringOfChar(c : char;I : longInt) : string;
Wiederholt das Zeichen c i-mal.
StrSet
procedure StrSet(c : Char; I : Integer; var s : String);
Schreibt das Zeichen c an die Stelle i in den String s.
Trim
Function Trim(s : string) : string;
Entfernt führende und abschließende Leerzeichen aus dem String s.
16.2. VERARBEITUNG VON ZAHLEN
81
Trunc
Function Trunc(e : Extended) : Longint;
Schneidet die Nachkommastrellen des Wertes e ab.
Uppercase, AnsiUpperCase
Function Uppercase(s : string) : string;
Function AnsiUpperCase(s : string) : string;
Uppercase Wandelt den gesamten String s in Großbuchstaben um. AnsiUpperCase berücksichtigt dabei auch europäische Sonderzeichen.
16.2
Verarbeitung von Zahlen
Abs
Function Abs(e : Extended) : Extended;
Liefert den Absolutwert des Wertes e zurück.
Cos
Function Cos(e : Extended) : Extended;
Gibt den Cosinus des Wertes e zurück.
Int
Function Int(e : Extended) : Longint;
Wandelt den Wert e ohne zu runden in eine Ganzzahl um.
Pi
Function Pi : Extended;
Liefert die Kreiszahl Pi zurück.
Round
Function Round(e : Extended) : Longint;
Rundet kaufmännisch korrekt den Wert e auf eine Ganzzahl.
Sin
Function Sin(e : Extended) : Extended;
Gibt den Sinus des Wertes e zurück.
82
KAPITEL 16. ALLGEMEINE FUNKTIONEN UND PROZEDUREN
Sqrt
Function Sqrt(e : Extended) : Extended;
Zieht die Wurzel (radiert) des Wertes e.
16.3
Umwandlung zwischen Zahlen und Strings
FloatToStr
function floatToStr(e: extended): string;
Wandelt die Gleitkomazahl e in einen String um.
IntToStr
function intToStr(i: Longint): string;
Wandelt den Ganzzahlwert i in einen String um.
StrToFloat
function StrToFloat(s: string): Extended;
Wandelt den String s in eine Gleitkommazahl um
StrToInt
function strToInt(s: string): Longint;
Wandelt den String s in einen ganzzahligen Wert um.
StrTointDef
function strToIntDef(s: string; def: Longint): Longint;
Wandelt den String s in einen ganzzahligen Wert um. Falls es sich um s nicht
um keine gültige Ganzzahl handelt, wird def zurückgegeben.
16.4
Verarbeitung von Arrays
GetArrayLength
function getArrayLength(var v: array): Integer;
Gibt die Länge des Arrays v zurück.
SetArrayLength
procedure setArrayLength(var v: array; i: Integer);
Setzt den Array v auf die Länge i. Bevor Sie einen Array einsetzen, müssen Sie
unbedingt mit dieser Funktion seine Länge festlegen.
16.5. VERARBEITUG VON ZEIT
16.5
83
Verarbeitug von Zeit
Date
function Date: TDateTime;
Liefert das aktuelle Datum.
DateTimeToUnix
function DateTimeToUnix(D: TDateTime): Int64;
Wandelt ein Datum in das für Unix übliche Format um. Der Rückgabewert ist
dabei die anzahl der verstrichen Millisekunden seit dem 1.1.1970.
DateToStr
function DateToStr(D: TDateTime): string;
Konvertiert ein Datum in einen String.
DayOfWeek
function DayOfWeek(const DateTime: TDateTime): Word;
Liefert den Wochentag zum angegebenen Datum zurück:
1: Sonntag
2: Montag
3: Dienstag
4: Mittwoch
5: Donnerstag
6: Freitag
7: Samstag
DecodeDate
procedure DecodeDate(const DateTime: TDateTime;
var Year, Month, Day: Word);
Wandelt das gepackte TDateTime-Format in Jahr, Monat, Tag um.
DecodeTime
procedure DecodeTime(const DateTime: TDateTime;
var Hour, Min, Sec, MSec: Word);
Wandelt das gepackte TDateTime-Format in Stunde, Minute, Sekunde, Millisekunde um.
84
KAPITEL 16. ALLGEMEINE FUNKTIONEN UND PROZEDUREN
EncodeDate, TryEncodeDate
function EncodeDate(Year, Month, Day: Word): TDateTime;
function TryEncodeDate(Year, Month, Day: Word;
out Date: TDateTime): Boolean;
EncodeDate packt Jahr, Monat, Tag in ein TDateTime-Typ. TryEncodeDate
prüft zusätzlich, ob die Grenzen überschritten werden und liefert false, falls das
Datum nicht konvertiert werden konnte.
EncodeTime
function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
function TryEncodeTime(Hour, Min, Sec, MSec: Word;
out Time: TDateTime): Boolean;
EncodeTime packt Stunde, Minute, Sekunde, Millisekunde in ein TDateTimeTyp. TryEncodeTime prüft zusätzlich, ob die Grenzen überschritten werden und
liefert false, falls die Zeit nicht konvertiert werden konnte.
FormatDateTime
function FormatDateTime(const fmt: string; D: TDateTime): string;
Now
function Now: TDateTime;
Liefert das aktuelle Datum und Zeit.
StrToDate
function StrToDate(const s: string): TDateTime;
Konvertiert einen String in ein TDateTime-Typ. Der String muss der Formatierung entsprechen, welche in der Systemsteuerung gewählt wurde.
Time
function Time: TDateTime;
Liefert die aktuelle Zeit.
UnixToDateTime
function UnixToDateTime(U: Int64): TDateTime;
Konvertiert eine Unix-Zeit (Millisekunden seit 1.1.1970) in ein TDateTime-Typ.
16.6. SONSTIGE
16.6
Sonstige
sizeof
function SizeOf(c: const): Longint;
Liefert die Größe in der angegebenen Variablen in Bytes zurück.
85
86
KAPITEL 16. ALLGEMEINE FUNKTIONEN UND PROZEDUREN
Kapitel 17
Komponenten
17.1
Visuelle Komponenten
TBevel (TGraphicControl)
Eigenschaften:
SHAPE TBEVELSHAPE
STYLE TBEVELSTYLE
PARENTSHOWHINT Boolean
MODALRESULT LONGINT
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Achtung: Löschen Sie TBevel
Ereignisse:
NICHT mit free aus dem Speicher.
ONCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
TBitBtn (TButton)
ONENDDRAG TEndDragEvent
Eigenschaften:
ONENTER TNotifyEvent
GLYPH TBITMAP
ONEXIT TNotifyEvent
KIND TBITBTNKIND
ONKEYDOWN TKeyEvent
LAYOUT TBUTTONLAYOUT
ONKEYPRESS TKeyPressEvent
MARGIN INTEGER
ONKEYUP TKeyEvent
NUMGLYPHS BYTE
ONMOUSEDOWN TMouseEvent
PARENTSHOWHINT Boolean
ONMOUSEMOVE TMouseMoveEvent
STYLE TBUTTONSTYLE
ONMOUSEUP TMouseEvent
SPACING INTEGER
ONSTARTDRAG TStartDragEvent
Ereignisse:
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
TButton (TButtonControl)
Eigenschaften:
CANCEL BOOLEAN
CAPTION String
DEFAULT BOOLEAN
FONT TFont
TCheckBox
Checkbox)
(TCustom-
Eigenschaften:
ALIGNMENT TAlignment
ALLOWGRAYED Boolean
CAPTION String
CHECKED Boolean
COLOR Longint
FONT TFont
87
KAPITEL 17. KOMPONENTEN
88
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
STATE TCheckBoxState
Ereignisse:
ONCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TComboBox
ComboBox)
(TCustom-
Eigenschaften:
STYLE TComboBoxStyle
COLOR Longint
DROPDOWNCOUNT Integer
FONT TFont
MAXLENGTH Integer
SORTED Boolean
TEXT string
CTL3D Boolean
DRAGMODE TDragMode
DRAGCURSOR Longint
ITEMHEIGHT Integer
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCHANGE TNotifyEvent
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONDRAWITEM TDrawItemEvent
ONDROPDOWN TNotifyEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMEASUREITEM TMeasureItemEvent
ONSTARTDRAG TStartDragEvent
TEdit (TCustomEdit)
Eigenschaften:
AUTOSELECT Boolean
AUTOSIZE Boolean
BORDERSTYLE BorderStyle
COLOR Longint
FONT TFont
HIDESELECTION Boolean
MAXLENGTH Integer
PASSWORDCHAR Char
READONLY Boolean
TEXT string
CHARCASE TEditCharCase
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
OEMCONVERT Boolean
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCHANGE TNotifyEvent
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMOUSEDOWN TMouseEvent
17.1. VISUELLE KOMPONENTEN
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TForm (TScrollingWinControl)
Eigenschaften:
ACTIVE BOOLEAN read-only
ACTIVECONTROL TWINCONTROL
BORDERICONS Longint
BORDERSTYLE TFORMBORDERSTYLE
CAPTION STRING
AUTOSCROLL BOOLEAN
COLOR TCOLOR
FONT TFONT
FORMSTYLE TFORMSTYLE
KEYPREVIEW BOOLEAN
POSITION TPOSITION
ACTIVEMDICHILD TFORM read-only
ACTIVEOLECONTROL TWINCONTROL
CANVAS TCANVAS read-only
CLIENTHANDLE HWND read-only
DROPTARGET BOOLEAN
MODALRESULT Longint
MDICHILDCOUNT INTEGER read-only
MDICHILDREN[i:INTEGER]: TFORM
read-only
OLEFORMOBJECT TOLEFORMOBJECT
TILEMODE TTILEMODE
ICON TICON
MENU TMAINMENU
OBJECTMENUITEM TMENUITEM
PIXELSPERINCH INTEGER
PRINTSCALE TPRINTSCALE
SCALED BOOLEAN
WINDOWSTATE TWINDOWSTATE
WINDOWMENU TMENUITEM
CTL3D BOOLEAN
POPUPMENU TPOPUPMENU
Methoden:
constructor CREATENEW(AOWNER:
TCOMPONENT; Dummy: Longint)
procedure CLOSE
procedure HIDE
procedure SHOW
function SHOWMODAL:INTEGER
procedure RELEASE
procedure ARRANGEICONS
89
procedure CASCADE
function CLOSEQUERY:BOOLEAN
procedure DEFOCUSCONTROL(
CONTROL:TWINCONTROL;
REMOVING:BOOLEAN)
procedure FOCUSCONTROL(CONTROL:
TWINCONTROL)
function GETFORMIMAGE:TBITMAP
procedure NEXT
procedure PREVIOUS
procedure PRINT
procedure SENDCANCELMODE
(SENDER: TCONTROL)
function SETFOCUSEDCONTROL
(CONTROL:TWINCONTROL):BOOLEAN
procedure TILE
Ereignisse:
ONDRAGDROP TDRAGDROPEVENT
ONDRAGOVER TDRAGOVEREVENT
ONMOUSEDOWN TMOUSEEVENT
ONMOUSEMOVE TMOUSEMOVEEVENT
ONMOUSEUP TMOUSEEVENT
ONPAINT TNOTIFYEVENT
ONACTIVATE TNOTIFYEVENT
ONCLICK TNOTIFYEVENT
ONDBLCLICK TNOTIFYEVENT
ONCLOSE TCLOSEEVENT
ONCLOSEQUERY TCLOSEQUERYEVENT
ONCREATE TNOTIFYEVENT
ONDESTROY TNOTIFYEVENT
ONDEACTIVATE TNOTIFYEVENT
ONHIDE TNOTIFYEVENT
ONKEYDOWN TKEYEVENT
ONKEYPRESS TKEYPRESSEVENT
ONKEYUP TKEYEVENT
ONRESIZE TNOTIFYEVENT
ONSHOW TNOTIFYEVENT
TGroupBox
GroupBox)
Eigenschaften:
CAPTION String
COLOR Longint
FONT TFont
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
(TCustom-
90
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
THeader (TCustomControl)
Eigenschaften:
SECTIONWIDTH[integer] INTEGER
ALLOWRESIZE BOOLEAN
BORDERSTYLE TBORDERSTYLE
FONT TFont
SECTIONS TSTRINGS
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONSIZING TSECTIONEVENT
ONSIZED TSECTIONEVENT
TImage (TGraphicControl)
Eigenschaften:
CANVAS TCANVAS read-only
AUTOSIZE BOOLEAN
CENTER BOOLEAN
PICTURE TPICTURE
STRETCH BOOLEAN
RAGCURSOR Longint
DRAGMODE TDragMode
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
KAPITEL 17. KOMPONENTEN
ONDBLCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TLabel (TCustomLabel)
Eigenschaften:
ALIGNMENT TAlignment
AUTOSIZE Boolean
CAPTION String
COLOR Longint
FOCUSCONTROL TWinControl
FONT TFont
WORDWRAP Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTCOLOR Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
SHOWACCELCHAR Boolean
TRANSPARENT Boolean
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TListBox
Box)
(TCustomList-
Eigenschaften:
BORDERSTYLE TBorderStyle
COLOR Longint
FONT TFont
MULTISELECT Boolean
SORTED Boolean
STYLE TListBoxStyle
COLUMNS Integer
17.1. VISUELLE KOMPONENTEN
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
EXTENDEDSELECT Boolean
INTEGRALHEIGHT Boolean
ITEMHEIGHT Integer
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
TABWIDTH Integer
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONDRAWITEM TDrawItemEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMEASUREITEM TMeasureItemEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TMemo (TCustomMemo)
Eigenschaften:
ALIGNMENT TAlignment
BORDERSTYLE BorderStyle
COLOR Longint
FONT TFont
HIDESELECTION Boolean
MAXLENGTH Integer
READONLY Boolean
SCROLLBARS TScrollStyle
WANTRETURNS Boolean
WANTTABS Boolean
WORDWRAP Boolean
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
OEMCONVERT Boolean
PARENTCOLOR Boolean
91
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCHANGE TNotifyEvent
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TNotebook (TCustomControl)
Eigenschaften:
ACTIVEPAGE STRING
COLOR Longint
FONT TFont
PAGEINDEX INTEGER
PAGES TSTRINGS
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONPAGECHANGED TNOTIFYEVENT
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMOUSEDOWN TMouseEvent
KAPITEL 17. KOMPONENTEN
92
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TPaintBox
trol)
(TGraphicCon-
Eigenschaften:
CANVAS TCanvas read-only
COLOR Longint
FONT TFont
RAGCURSOR Longint
DRAGMODE TDragMode
PARENTCOLOR Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONPAINT TNOTIFYEVENT
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
TPanel (TCustomPanel)
Eigenschaften:
ALIGNMENT TAlignment
BEVELINNER TPanelBevel
BEVELOUTER TPanelBevel
BEVELWIDTH TBevelWidth
BORDERWIDTH TBorderWidth
BORDERSTYLE TBorderStyle
CAPTION String
COLOR Longint
FONT TFont
DRAGCURSOR Longint
DRAGMODE TDragMode
CTL3D Boolean
LOCKED Boolean
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONRESIZE TNotifyEvent
ONSTARTDRAG TStartDragEvent
TRadioButton
Control)
(TButton-
Eigenschaften:
ALIGNMENT TALIGNMENT
CAPTION String
CHECKED BOOLEAN
COLOR Longint
FONT TFont
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
17.2. NICHT-VISUELLE KOMPONENTEN
93
TRadioGroup (TCustomRa- TSpeedButton
dioGroup)
Control)
Eigenschaften:
CAPTION String
COLOR Longint
COLUMNS Integer
FONT TFont
ITEMINDEX Integer
ITEMS TStrings
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTCOLOR Boolean
PARENTCTL3D Boolean
PARENTFONT Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
Ereignisse:
ONCLICK TNotifyEvent
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONSTARTDRAG TStartDragEvent
TShape (TGraphicControl)
Eigenschaften:
BRUSH TBRUSH
PEN TPEN
SHAPE TSHAPETYPE
DRAGCURSOR Longint
DRAGMODE TDragMode
PARENTSHOWHINT Boolean
(TGraphic-
Eigenschaften:
ALLOWALLUP BOOLEAN
GROUPINDEX INTEGER
DOWN BOOLEAN
CAPTION String
FONT TFont
GLYPH TBITMAP
LAYOUT TBUTTONLAYOUT
MARGIN INTEGER
NUMGLYPHS BYTE
PARENTFONT Boolean
PARENTSHOWHINT Boolean
SPACING INTEGER
Ereignisse:
ONCLICK TNotifyEvent
ONDBLCLICK TNotifyEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
TTimer (TComponent)
Eigenschaften:
ENABLED BOOLEAN
INTERVAL CARDINAL
Ereignisse:
ONTIMER TNOTIFYEVENT
17.2
Nicht-visuelle
Komponenten
Methoden:
procedure STYLECHANGED
(SENDER:TOBJECT))
TApplication
nent)
Ereignisse:
ONDRAGDROP TDragDropEvent
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONMOUSEDOWN TMouseEvent
ONMOUSEMOVE TMouseMoveEvent
ONMOUSEUP TMouseEvent
ONSTARTDRAG TStartDragEvent
Eigenschaften:
ACTIVE BOOLEAN read-only
EXENAME STRING read-only
HANDLE HWND
HINT STRING
MAINFORM TFORM read-only
SHOWHINT BOOLEAN
SHOWMAINFORM BOOLEAN
TERMINATED BOOLEAN read-only
(TCompo-
94
TITLE STRING
UPDATEFORMATSETTINGS BOOLEAN
DIALOGHANDLE HWND
HELPFILE STRING
HINTCOLOR TCOLOR
HINTPAUSE INTEGER
HINTSHORTPAUSE INTEGER
HINTHIDEPAUSE INTEGER
ICON TICON
Methoden:
procedure BRINGTOFRONT
function MESSAGEBOX(TEXT,
CAPTION:PCHAR;FLAGS:WORD)
:INTEGER
procedure MINIMIZE
procedure PROCESSMESSAGES
procedure RESTORE
procedure TERMINATE
procedure CONTROLDESTROYED
(CONTROL:TCONTROL)
procedure CANCELHINT
procedure CREATEHANDLE
procedure HANDLEEXCEPTION
(SENDER:TOBJECT)
procedure HANDLEMESSAGE
function HELPCOMMAND(COMMAND:
INTEGER;DATA:LONGINT):BOOLEAN
function HELPCONTEXT(CONTEXT:
THELPCONTEXT):BOOLEAN
function HELPJUMP(JUMPID
:STRING):BOOLEAN
procedure HIDEHINT
procedure HINTMOUSEMESSAGE
(CONTROL:TCONTROL;
var MESSAGE:TMESSAGE)
procedure HOOKMAINWINDOW
(HOOK: TWINDOWHOOK)
procedure INITIALIZE
procedure NORMALIZETOPMOSTS
procedure RESTORETOPMOSTS
procedure RUN
procedure SHOWEXCEPTION
(E:EXCEPTION)
procedure UNHOOKMAINWINDOW
(HOOK:TWINDOWHOOK)
Ereignisse:
ONACTIVATE TNOTIFYEVENT
ONDEACTIVATE TNOTIFYEVENT
KAPITEL 17. KOMPONENTEN
ONIDLE TIDLEEVENT
ONHINT TNOTIFYEVENT
ONMINIMIZE TNOTIFYEVENT
ONRESTORE TNOTIFYEVENT
ONHELP THELPEVENT
TBrush (TGraphicsObject)
Eigenschaften:
COLOR TCOLOR
STYLE TBRUSHSTYLE
Methoden:
constructor CREATE
TButtonControl (TWinControl)
keine neuen Eigenschaften, Methoden
oder Ereignisse
TCanvas (TPersistent)
Eigenschaften:
Handle Integer
Pixels Integer Integer Integer
Brush TBrush read-only
CopyMode Byte
Font TFont read-only
Pen TPen read-only
Methoden:
procedure Arc(X1, Y1, X2, Y2,
X3, Y3, X4, Y4: Integer)
procedure Chord(X1, Y1, X2,
Y2, X3, Y3, X4, Y4: Integer)
procedure Draw(X, Y: Integer;
Graphic: TGraphic)
procedure Ellipse(X1, Y1, X2,
Y2: Integer)
procedure FloodFill(X,Y:
Integer; Color:TColor;
FillStyle:Byte)
procedure LineTo(X, Y: Integer)
procedure MoveTo(X, Y: Integer)
procedure Pie(X1, Y1, X2, Y2,
X3, Y3, X4, Y4: Integer)
procedure Rectangle(X1, Y1, X2,
Y2: Integer)
procedure Refresh
17.2. NICHT-VISUELLE KOMPONENTEN
procedure RoundRect(X1, Y1, X2,
Y2, X3, Y3: Integer)
function TextHeight(Text:
string): Integer
procedure TextOut(X,Y:Integer;
Text: string)
function TextWidth
(Text: string): Integer
TComponent (TPersistent)
Eigenschaften:
Owner TComponent
COMPONENTS:INTEGER TCOMPONENT
INTEGER read-only
COMPONENTCOUNT INTEGER
read-only
COMPONENTINDEX INTEGER
COMPONENTSTATE Byte read-only
DESIGNINFO LONGINT
NAME STRING
TAG LONGINT
Methoden:
function FindComponent
(AName: string): TComponent;
constructor Create(AOwner:
TComponent); virtual;
procedure DESTROYCOMPONENTS
procedure DESTROYING
procedure FREENOTIFICATION
(ACOMPONENT:TCOMPONENT)
procedure INSERTCOMPONENT
(ACOMPONENT:TCOMPONENT)
procedure REMOVECOMPONENT
(ACOMPONENT:TCOMPONENT)
TControl (TComponent)
Eigenschaften:
Left Integer
Top Integer
Width Integer
Height Integer
Hint String
Align TAlign
ClientHeight Longint
ClientWidth Longint
ShowHint Boolean
Visible Boolean
95
ENABLED BOOLEAN
HINT STRING
CURSOR TCURSOR
HasParent Boolean read-only
Methoden:
constructor Create
(AOwner: TComponent);
procedure BringToFront;
procedure Hide;
procedure Invalidate;virtual;
procedure refresh;
procedure Repaint;virtual;
procedure SendToBack;
procedure Show;
procedure Update;
procedure SetBounds(x,y,w,h:
Integer);virtual;
function Dragging: Boolean;
procedure BEGINDRAG(IMMEDIATE:
BOOLEAN)
function CLIENTTOSCREEN(POINT:
TPOINT):TPOINT
procedure ENDDRAG(DROP:BOOLEAN)
function GETTEXTBUF(BUFFER:
PCHAR;BUFSIZE:INTEGER)
:INTEGER
function GETTEXTLEN:INTEGER
function PERFORM(MSG:CARDINAL;
WPARAM,LPARAM:LONGINT):LONGINT
function SCREENTOCLIENT(POINT:
TPOINT):TPOINT
procedure SETTEXTBUF
(BUFFER:PCHAR)
TCustomCheckBox (TButtonControl)
keine neue Eigenschaften
TCustomComboBox
(TWinControl)
Eigenschaften:
DROPPEDDOWN BOOLEAN
ITEMS TSTRINGS
ITEMINDEX INTEGER
CANVAS TCANVAS read-only
SELLENGTH INTEGER
SELSTART INTEGER
KAPITEL 17. KOMPONENTEN
96
SELTEXT STRING
EXISTING:BOOLEAN):INTEGER
function ITEMRECT(INDEX:
INTEGER):TRECT
Methoden:
procedure CLEAR
procedure SELECTALL
TCustomEdit
trol)
TCustomMemo
mEdit)
(TCusto-
(TWinCon- Eigenschaften:
LINES TSTRINGS
Eigenschaften:
MODIFIED BOOLEAN
SELLENGTH INTEGER
SELSTART INTEGER
SELTEXT STRING
TEXT string
TCustomPanel
Control)
(TCustom-
keine eigenen Eigenschaften, Methoden oder Ereignisse.
Methoden:
procedure CLEAR
procedure CLEARSELECTION
procedure SELECTALL
procedure COPYTOCLIPBOARD
procedure CUTTOCLIPBOARD
procedure PASTEFROMCLIPBOARD
function GETSELTEXTBUF(BUFFER:
PCHAR;BUFSIZE:INTEGER)
:INTEGER
procedure SETSELTEXTBUF
(BUFFER:PCHAR)
TCustomLabel (TGraphicsControl)
Eigenschaften:
CANVAS TCANVAS
TCustomRadioGroup (TCustomGroupBox)
keine eigenen Eigenschaften, Methoden oder Ereignisse.
TFont (TGraphicsObject)
Eigenschaften:
Handle Integer read-only
PixelsPerInch Integer
Color Integer
Height Integer
Name string
Pitch Byte
Size Integer
Handle Integer
PixelsPerInch Integer
Methoden:
TCustomListBox
Control)
(TWin- constructor Create;
Eigenschaften:
ITEMS TSTRINGS
ITEMINDEX INTEGER
SELCOUNT INTEGER read-only
SELECTED[integer] BOOLEAN
CANVAS TCANVAS read-only
TOPINDEX INTEGER
Methoden:
procedure CLEAR
function ITEMATPOS(POS:TPOINT;
Schriftattribute:
clDefault Standard
fsBold fett
fsItalic kursiv
fsUnderline unterstrichen
fsStrikeout durchgestrichen
TGraphicsObject (TPersistent)
Ereignisse:
ONCHANGE TNOTIFYEVENT
17.2. NICHT-VISUELLE KOMPONENTEN
TObject (kein Vorfahr)
Methoden:
constructor Create
procedure Free
TPage (TCustomControl)
Eigenschaften:
CAPTION String
97
ONDRAGOVER TDragOverEvent
ONENDDRAG TEndDragEvent
ONENTER TNotifyEvent
ONEXIT TNotifyEvent
ONKEYDOWN TKeyEvent
ONKEYPRESS TKeyPressEvent
ONKEYUP TKeyEvent
ONSCROLL TSCROLLEVENT
ONSTARTDRAG TStartDragEvent
TPen (TGraphicsObject)
TScrollingWindow
Control)
(TWin-
Eigenschaften:
COLOR TCOLOR
MODE TPENMODE
STYLE TPENSTYLE
WIDTH INTEGER
Eigenschaften:
HORZSCROLLBAR TCONTROLSCROLLBAR
VERTSCROLLBAR TCONTROLSCROLLBAR
Methoden:
constructor CREATE
Methoden:
procedure SCROLLINVIEW(ACONTROL
:TCONTROL)
TPersistent (TObject)
TStringList (TStrings)
Methoden:
procedure Assign(Source:
TPersistent)
Eigenschaften:
DUPLICATES TDUPLICATES
SORTED BOOLEAN
TScrollBar (TWinControl)
Methoden:
function FIND(S:STRING;
var INDEX:INTEGER):BOOLEAN;
procedure SORT;
Eigenschaften:
KIND TSCROLLBARKIND
MAX INTEGER
MIN INTEGER
POSITION INTEGER
CTL3D Boolean
DRAGCURSOR Longint
DRAGMODE TDragMode
LARGECHANGE TSCROLLBARINC
PARENTCTL3D Boolean
PARENTSHOWHINT Boolean
POPUPMENU TPopupMenu
SMALLCHANGE TSCROLLBARINC
Methoden:
procedure SETPARAMS(APOSITION,
AMIN,AMAX:INTEGER)
Ereignisse:
ONCHANGE TNOTIFYEVENT
ONDRAGDROP TDragDropEvent
Ereignisse:
ONCHANGE TNOTIFYEVENT
ONCHANGING TNOTIFYEVENT
TStrings (TPersistent)
Eigenschaften:
Names String Integer
Values String String
Count Integer read-only
Text String
CommaText String
Strings String Integer
Methoden:
function Add(S:string):Integer
procedure Append(S: string)
procedure AddStrings
98
(Strings: TStrings)
procedure Clear
procedure Delete
(Index: Integer)
function IndexOf
(const S: string): Integer
procedure Insert(Index:
Integer; S: string)
procedure LoadFromFile
(FileName: string)
procedure SaveToFile
(FileName: string)
procedure BeginUpdate
procedure EndUpdate
function Equals(Strings:
TStrings): Boolean
procedure Exchange(Index1,
Index2: Integer)
function IndexOfName(Name:
string): Intege)
procedure LoadFromStream
(Stream: TStream)
procedure Move(CurIndex,
NewIndex: Integer)
procedure SaveToStream
(Stream: TStream)
procedure SetText(Text: PChar)
function ADDOBJECT(S:STRING;
AOBJECT:TOBJECT):INTEGER
procedure APPEND(S:STRING)
function GETTEXT:PCHAR
function INDEXOFOBJECT(AOBJECT:
TOBJECT):INTEGER
procedure INSERTOBJECT(INDEX:
INTEGER;S:STRING;
AOBJECT:TOBJECT)
KAPITEL 17. KOMPONENTEN
Methoden:
function HandleAllocated:
Boolean;
procedure HandleNeeded;
procedure EnableAlign;
procedure RemoveControl
(AControl: TControl);
procedure InsertControl
(AControl: TControl);
procedure Realign;
procedure ScaleBy(M, D:
Integer);
procedure ScrollBy(DeltaX,
DeltaY: Integer);
procedure SetFocus; virtual;
function CANFOCUS:BOOLEAN
function CONTAINSCONTROL
(CONTROL:TCONTROL):BOOLEAN
procedure DISABLEALIGN
function FOCUSED:BOOLEAN
procedure PAINTTO(DC:Longint;
X,Y:INTEGER)
procedure UPDATECONTROLSTATE
17.3
Typen
TAlign
alNone, alTop, alBottom, alLeft, alRight, alClient
TAlignment
taLeftJustify, taRightJustify, taCenter
TBevelShape
TWinControl (TControl)
Eigenschaften:
Handle Longint
Showing Boolean read-only
TabOrder Integer
TabStop Boolean
BRUSH TBRUSH read-only
CONTROLS TCONTROL INTEGER
read-only
CONTROLCOUNT INTEGER read-only
HELPCONTEXT LONGINT
bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine
TBevelStyle
bsLowered, bsRaised
TBitBtnKind
bkCustom, bkOK, bkCancel, bkHelp,
bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll
17.3. TYPEN
99
TBorderStyle
TColor
siehe Kapitel 17.3 auf der nächsten Seite (TFormBorderStyle).
integer
TBorderWidth
Longint
TBrushStyle
bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross
TButtonLayout
blGlyphLeft, blGlyphRight,
phTop, blGlyphBottom
blGly-
TButtonState
bsUp, bsDisabled, bsDown, bsExclusive
TButtonStyle
bsAutoDetect, bsWin31, bsNew
TCheckBoxState
cbUnchecked, cbChecked, cbGrayed
TCloseAction
caNone, caHide, caFree, caMinimize
TCloseEvent
Vordefinierte Werte:
clScrollBar Farbe für Scrollbars
clBackground Hintergrundfarbe
clActiveCaption Farbe für aktives
Fenster
clInactiveCaption Farbe für inaktives
Fenster
clMenu Farbe für Menüs
clWindow Farbe für ein Fenster
clWindowFrame Farbe für Fensterrahmen
clMenuText Farbe für Menüeinträge
clWindowText Farbe für Fensterbeschriftungen
clCaptionText Farbe für die Titelzeile
clActiveBorder Farbe für ein aktives
Fenster
clInactiveBorder Farbe für ein inaktives Fenster
clAppWorkSpace Farbe für den Arbeitsbereich
clHighlight
clHighlightText
clBtnFace Farbe für ein Knopf
clBtnShadow Farbe für den Schatten
eines Knopfes
clGrayText Farbe für deaktivierten
Text
clBtnText Farbe für die Knopfbeschriftung
clInactiveCaptionText Farbe für Beschriftung einer inaktiven Titelzeile
clBtnHighlight
cl3DDkShadow
cl3DLight
clInfoText Farbe für einen Popup-Text
clInfoBk Farbe für ein Popup-Fenster
clBlack schwarz
clMaroon dunkelrot
clGreen grün
clOlive oliv
clNavy dunkelblau
TCloseQueryEvent
clPurple purpur
procedure(Sender: TObject; var Can- clTeal dunkelcyan
Close: Boolean)
clGray grau
procedure(Sender: TObject; var Action: TCloseAction)
100
clSilver hellgrau
clRed rot
clLime hellgrün
clYellow gelb
clBlue blau
clFuchsia türkis
clAqua cyan
clLtGray hellgrau
clDkGray dunkelgrau
clWhite weiss
KAPITEL 17. KOMPONENTEN
TEditCharCase
ecNormal, ecUpperCase, ecLowerCase
TEndDragEvent
procedure(Sender, Target: TObject; X,
Y: Integer)
TFontPitch
fpDefault, fpVariable, fpFixed
TComboBoxStyle
TFormBorderStyle
csDropDown,
csSimple,
csDropDownList,
csOwnerDrawFixed, bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin
csOwnerDrawVariable
TDragDropEvent
TFormStyle
procedure(Sender, Source: TObject;X,
Y: Integer)
fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop
TDragKind
dkDrag, dkDock
TDragMode
dmManual, dmAutomatic
TGetStrProc
procedure(const S: string)
THelpEvent
function (Command: Word; Data:
Longint; var CallHelp: Boolean): Boolean;
TDragOverEvent
TIdleEvent
procedure(Sender, Source: TObject;
X, Y: Integer; State: TDragState; var procedure (Sender: TObject; var Done:
Boolean)
Accept: Boolean)
TDragState
TKeyEvent
procedure(Sender: TObject; var Key:
dsDragEnter, dsDragLeave, dsDragWord; Shift: Byte);
Move
TDrawItemEvent
procedure(Control: TWinControl; Index: Integer; Rect: TRect; State: Byte)
TKeyPressEvent
procedure(Sender: TObject; var Key:
Char);
TListBoxStyle
TDuplicates
dupIgnore, dupAccept, dupError
lbStandard,
lbOwnerDrawFixed,
lbOwnerDrawVariable
17.3. TYPEN
101
TMeasureItemEvent
TPosition
procedure(Control: TWinControl; Index: Integer; var Height: Integer)
poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter
TMouseButton
TPrintScale
mbLeft, mbRight, mbMiddle
poNone, poProportional, poPrintToFit
TMouseEvent
procedure(Sender: TObject; Button:
Byte; Shift: Byte; X, Y: Integer);
TScrollBarKind
sbHorizontal, sbVertical
TMouseMoveEvent
procedure(Sender: TObject;
Byte; X, Y: Integer);
TNotifyEvent
Shift:
TScrollCode
scLineUp, scLineDown, scPageUp,
scPageDown, scPosition, scTrack, scTop, scBottom, scEndScroll
procedure(Sender: TObject);
TScrollEvent
TOperation
procedure(Sender: TObject; ScrollCode: TScrollCode;var ScrollPos: Integer)
opInsert, opRemove
TPenelBevel
TScrollStyle
bvNone, bvLowered, bvRaised
ssNone, ssHorizontal, ssVertical, ssBoth
TPenMode
TSectionEvent
pmBlack, pmWhite, pmNop, pmNot, procedure(Sender: TObject; ASection,
pmCopy, pmNotCopy, pmMergePen- AWidth: Integer)
Not, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmTShapeType
NotMerge, pmMask, pmNotMask, pmstRectangle, stSquare, stRoundRect,
Xor, pmNotXor
stRoundSquare, stEllipse, stCircle
TPenStyle
TWindowState
psSolid, psDash, psDot, psDashDot,
psDashDotDot, psClear, psInsideFra- wsNormal, wsMinimized, wsMaximime
zed
102
KAPITEL 17. KOMPONENTEN
Kapitel 18
Appomatox-spezifische
Funktionen
Appomatox bietet zusätzlich, über den eigentlichen Sprachumfang der Sprache
Object Pascal hinausgehende, Funktionen an, die insbesondere das Programmieren von mathematischen Anwendungen vereinfachen und die Integration in
Appomatox gewährleisten.
18.1
Mathematische Funktionen
ApAcos
function ApAcos(x:extended) : extended);
Berechnet den Arcus-Cosinus. Es wird dabei berücksichtigt, ob der Benutzer
unter Optionen Winkel in Grad- oder Bogenmaß gewählt hat.
ApArcosh
function ApArcosh(x:extended):extended);
Berechnet den Area-Cosinus.
ApArsinh
function ApArsinh(x:extended):extended);
ApArtanh
function ApArtanh(x:extended):extended);
Berechnet den Area-Tangens.
103
104
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
ApAsin
function ApAsin(x:extended) : extended);
Berechnet den Arcus-Sinus. Es wird dabei berücksichtigt, ob der Benutzer unter
Optionen Winkel in Grad- oder Bogenmaß gewählt hat.
ApAtan
function ApAtan(m:extended) : extended);
Berechnet den Arcus-Tangens. Es wird dabei berücksichtigt, ob der Benutzer
unter Optionen Winkel in Grad- oder Bogenmaß gewählt hat.
ApCos
function ApCos(m:extended) : extended);
Berechnet den Cosinus. Es wird dabei berücksichtigt, ob der Benutzer unter
Optionen Winkel in Grad- oder Bogenmaß gewählt hat.
ApCosh
function ApCosh(x:extended):extended);
Berechnet den Cosinus-Hyperbolicus.
ApExp
function ApExp(X: extended): extended);
Berechnet die Potenz zur Euler’schen Zahl e.
ApFakult
function ApFakult(x:integer) : extended);
Berechnet die Fakultät von x.
ApIsge
function ApIsge(x:extended) : Boolean);
Prüft, ob x eine gerade Zahl ist (d.h. ohne Rest durch 2 teilbar ist). Liefert true
zurück, falls x gerade ist.
ApIstPrim
function ApIstPrim(j:longint) : Boolean);
Prüft, ob j eine Primzahl ist. Fall j eine Primzahl ist, so wird true zurückgegeben.
18.1. MATHEMATISCHE FUNKTIONEN
105
ApSin
function ApSin(m:extended) : extended);
Berechnet den Sinus. Es wird dabei berücksichtigt, ob der Benutzer unter Optionen Winkel in Grad- oder Bogenmaß gewählt hat.
ApSinh
function ApSinh(x:extended):extended);
Berechnet den Sinus-Hyperbolicus.
ApTan
function ApTan(m:extended) : extended);
Berechnet den Tangens. Es wird dabei berücksichtigt, ob der Benutzer unter
Optionen Winkel in Grad- oder Bogenmaß gewählt hat.
ApTanh
function ApTanh(x:extended):extended);
Berechnet den Tangens-Hyperbolicus.
basisSystemKonvertieren
function bsyskonv(zahl:shortString; quellsys,
zielsys:integer; periodenzeichen:char) : shortstring;
basissyskonv konvertiert eine Zahl zahl im Basissystem quellsys in das ZielBasissystem zielsys. Ist die resultierende Zahl periodisch, wird als Periodenzeichen periodenzeichen verwendet.
var s: string;
s:=bsyskonv(’0,1’,10,2,’_’); //s=0,0_0011
getFnkErg
function getfnkerg(fnk: string; x:extended) : extended;
GetFnkerg gibt den Funktionswert der in fnk übergebenen Funktion zurück und
setzt für den Parameter x den entsprechenden Wert ein.
var s : string;
e : extended;
s:=mitmal(’(1-4x)(x+5xx)’); //--> e=(1-4*x)*(x+5*x*x)
e:=getfnkerg(s,3); //-->e=(-528)
106
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
GetIntegral
function GetIntegral(fnk:string; a,b:extended): extended;
GetIntegral gibt das Integral der Funktion fnk von a über b zurück.
ggT
function ggT(x,y:integer) : integer;
Liefert den größten gemeinsamen Teiler von x und y zurück.
var i: integer;
i:=ggT(12,16)); //--> i=4
hoch
function hoch(x,y:extended;z:byte) : extended);
Berechnet die Potenz x hoch y. Wenn für z 0 übergeben wird, erscheint auch bei
einem eventuellen Überlauf (zu große Zahlen) keine Fehlermeldung.
kgV
function kgV(x,y:integer) : integer;
Liefert das kleinste gemeinsame Vielfache von x und y zurück.
var i: integer;
i:=kgV(3,4); //-->i=12
mitmal
function mitmal(s: string) : string;
Passt einen vom Benutzer falsch“ eingegebenen Funktionsstring in einen von
”
Appomatox auswertbaren Funktionsstring am. Sie sollten diese Funktion vor
jedem Aufruf von getFnkerg oder getIntegral anwenden
var s: string;
s:=mitmal(’(1-4x)(x+5xx)’); //--> s=(1-4*x)*(x+5*x*x)
writeln( r2s( getfnkerg(s,3) )); //-528
18.2
Zugriff auf das Diagramm
Die Prozeduren zum Zeichnen in das Diagramm folgen immer dem selben Muster: digIn.. Diagramm-Eingabe-.... Der Parameter name steht immer für den
angezeigten Namen unter Inhalt, und der Parameter col für die Farbe. x/yKoordinaten werden immer getrennt als zwei extended-Variablen (x1,y1) übergeben.
18.2. ZUGRIFF AUF DAS DIAGRAMM
107
digInBez
procedure diginbez(x1,y1,x2,y2,x3,y3,x4,y4:extended);
Fügt eine Bézierkurve in das Diagramm ein. Es sind die vier Stützpunkte der
Kurve anzugeben. Die Farbe ist immer schwarz.
digInGrf
procedure digInGrf(funk:string; col:TColor; t:extended);
Zeichnet eine Kurve funk in das Diagramm mit der Farbe col ein. t ist dabei
der Scharparameter. Handelt es sich bei der Kurve nicht um eine Kurvenschar,
so übergeben Sie für t 0.
Bsp.:
digingrf(’x^2+2*x+3’, clRed, 0);
digInGrfEx
procedure digInGrfEx(funk:string; col:TColor; art:integer);
Zeichnet wie diginGrf eine Kurve in das Diagramm ein. Mit art kann zusätzlich
noch die Linienart bestimmt werden.
digInIntegral
procedure digInIntegral(name,fnk:string; x1,x2:extended;
col:TColor);
Fügt eine Integralfläche in das Diagramm ein. Die Fläche wird unter der Kurve
fnk gezeichnet, zwischen den Grenzen x1,x2.
digInPnk
procedure digInPnk(x1,y1,x2,y2:extended; col:TColor);
Fügt zwei Punkte in das Diagramm ein.
digInStellen
procedure digInStellen(name:string;x,y:extended;vertikal:boolean;
col:TColor);
Fügt ein Linie von einer der Achsen bis zum übergebenen Punkt x,y in das
Diagramm ein. Es ist zu wählen, ob dieser Strich vertikal (true) oder horizontal
(false) gezeichnet werden soll.
108
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
digInText
procedure digInText(name:string; x,y: extended; col:TColor;
fontname:string; size,charset:integer;
bold, italic,underline, strikeout:boolean);
Fügt eine Beschriftung an der Position x,y in das Diagramm ein. Als Fontname
ist der Name einer installierten Schriftart zu wählen. In charset kann man, für
internationale Anwendungen, den Zeichensatz wählen (üblicherweise 1). size
bestimmt die Schriftgröße in Punkten. bold, italic, underline, strikeout
bestimmt, ob die Beschriftung fettgedruckt, kursiv, unterstrichen oder durchgestrichen gezeichnet werden soll.
Mögliche Werte für charset:
0
ANSI Zeichen
1
Die Schriftart wird nur durch den Namen und Größe bestimmt. Falls die Schriftart nicht installiert ist, wird sie
durch eine Standardschriftart ersetzt.
Standard-Symbole
2
Macintosh Zeichen
77
128
Japanische Shift-JIS Zeichen
129
Koreanische Zeichen (Wansung).
Koreanische Zeichen (Johab)
130
134
Vereinfachte chinesische Zeichen
136
Traditionelle chinesische Zeichen (Taiwanesisch)
Griechische Zeichen
161
162
Türkische Zeichen
163
Vietnamesische Zeichen
Hebräische Zeichen
177
178
Arabische Zeichen
186
Baltische Zeichen
204
Kyrillische Zeichen
Thai Zeichen
222
238
Fügt diakritische Zeichen für osteuropäische Zeichen ein
Hängt von der eingestellten Codepage ab
255
Bsp.:
digInText(’Test’, 1,1, clRed , ’Arial’, 12, 1, false, false, false, false);
digInVektor
procedure digInVektor(name:string; x1,y2,x2,y2:extended;
col:TColor);
Fügt einen Vektor von x1,y1 nach x2,y2 in das Diagramm ein.
digInWinkel
procedure digInWinkel(name:string; mx,my,x1,y1,x2,y2:extended;
col:TColor);
18.3. EIN-/AUSGABE
109
Fügt eine Winkelbeschriftung (beschriftetetr Kreisbogen) in das Diagramm ein.
mx,my ist die Mittelpunktskoordinate des Winkels, x1,y1,x2,y2 sind die Grenzen des Kreisbogens.
18.3
Ein-/Ausgabe
readln
procedure readln(var s: string);
Eine sehr spartanische Funktion, die es dem Benutzer erlaubt, Text direkt einzugeben. Der vom Benutzer eingegebene String wird in die übergebene Variable
s geschrieben.
var s: string;
readln(s);
writeln(s);
Writeln
procedure Writeln(s: string);
Schreibt den String s in die Ergebnisliste.
Writeln2
procedure Writeln2(s1,s2: string; t:string);
Schreibt den String s1 fett gedruckt in die (nicht-grafische) Ergebnisliste. s2
wird in normaler Schriftstärke in die (nicht-grafische) Ergebnisliste geschrieben.
Der String t wird entsprechend den Regeln für den Formeleditor in die grafische
Ergebnisliste geschrieben. Sind Syntaxfehler in t, so erfolgt keine Ausgabe in die
grafische Ergebnisliste.
18.4
Hilfsfunktionen
ApGetColor
function ApGetColor(art: integer): TColor;
Gibt eine der drei Farben für Eingabefelder zurück. Mögliche Rückgabewerte
für art :
0
Farbe für unausgefülltes Feld (standardm. rot)
Farbe für ausgefülltes Feld (standardm. weiss)
1
2
Farbe für nicht zwingend auszufüllendes Feld (standardm. grün)
ApOpenWindow
procedure ApOpenWindow(wnd: string);
Öffnet das durch wnd definierte Appomatox-Fenster. Bitte entnehmen Sie die
möglichen Werte für wnd Kapitel 18.5 auf Seite 111.
110
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
ApStoppuhrStarten
procedure ApStoppuhrStarten;
Startet die interne Appomatox Stoppuhr. Nach Aufruf von ApStoppuhrStopp
wird die Zeitdifferenz zwischen diesen beiden Aufrufen berechnet und in der
Appomatox-Statuszeile angezeigt.
ApStoppuhrStopp
procedure ApStoppuhrStopp;
Stoppt die interne Appomatox Stoppuhr. Rufen Sie diese Prozedur immer nach
ApStoppuhrStarten auf. Es wird die Zeitdifferenz zwischen den Aufrufen von
ApStoppuhrStarten und ApStoppuhrStopp berechnet und in der AppomatoxStatuszeile angezeigt;
Bsp.:
var i: integer;
begin
ApStoppuhrStarten;
for i:=1 to 10000 do
begin
//mach was
end;
ApStoppuhrStopp;
end;
ApWriteEditValue
procedure ApWriteEditValue(Form, Edit, value: string);
Schreibt einen bestimmten Wert (value) in die TEdit-Komponente Edit des
Fensters form. Beachten Sie, dass das Fenster geöffnet sein muss, bevor Sie
einen Wert in dessen Komponenten schreiben können. Bitte entnehmen Sie die
möglichen Werte für form und edit Kapitel 18.5 auf der nächsten Seite.
gt
function gt(id: string) : string;
Die Appomatox-Sprach-Dateien (deutsch.asd) sind wie folgt aufgebaut:
m001=Programm
m002=Optionen
m003=Datei suchen
Der Befehl gt(...) sucht in der Sprachdatei nach einer Id (z.B. m001) und
liefert den dazugehörigen Ausdruck zurück.
Bsp.:
writeln(gt(’m001’));
btnSchliessen.caption:=gt(’s004’);
//Programm
//Schließen
18.5. BEZEICHNER
111
r2s
function r2s(e: extended) : string;
Die Funktion rr2s wandelt die in e übergebene Zahl in einen String um. Sie
berücksichtigt dabei die Einstellungen, die der Benutzer unter Optionen getroffen hat. Z.B. wird die Zahl ggf. in einen Bruch verwandelt oder je nach
Einstellung gerundet.
str2real
function str2real(s: string) : extended;
Die Funktion str2real wandelt den in s übergebenen String in eine Gleitkommazahl um. Es wird dabei die von Appomatox unterstützte Syntax berücksichtigt.
Ganze Zahlen können über mittels round(...) eingelesen werden.
Bsp1.:
var i: integer;
i := round(str2real(’30*5+1’);
Bsp2.:
var e: extended;
e:=str2real(’3/4*Pi+abs(-2)’);
18.5
Bezeichner
(Falls der Fehler unbekanntes Fenster erscheint, haben Sie einen Bezeichner
falsch eingegeben.)
FABLEIT
Ableitung
fnk
Funktion f(x)
abl
n=
FBERNOUL
n
p
k
Binomialverteilung
n=
p=
k=
FBEZIER
x1
y1
x2
y2
x3
y3
x4
y4
Bézier-Kurven
x1=
y1=
x2=
y2=
x3=
y3=
x4=
y4=
FBINOMIAL
x1
x2
Binomialkoeffizient
n=
k=
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
112
FBOGENLANGE
a
Edx1
Edx2
Bogenlänge einer ebenen Kurve
Funktion
x1
x2
FDODEKAEDER
x1
Dodekaeder
Kantenlänge
FDREHUNG
Drehung und Vergrößerung (analyt. Geometrie)
x1=
y1=
x2=
y2=
x3=
y3=
Drehwinkel bzw. Vergrößerungsfaktor
x1
y1
x2
y2
x3
y3
faktor
FDREIECKE
x1
y1
x2
y2
x3
y3
Dreiecke (analyt. Geometrie)
x1=
y1=
x2=
y2=
x3=
y3=
FFORMELEDIT
x1
y1
Formeleditor
Beschreibung
Formel
FGGTKGV
x1
y1
ggT / kgV
x=
y=
FIKOSAEDER
x1
Ikosaeder
Kantenlänge
FINTEGRAL
fnk
aEdit
bEdit
Integralrechnung
Funktion
x1
x2
FKREIS
x1
x2
x3
Kreiskegelstumpf
oberer Radius
unterer Radius
Höhe
FKREIS2
r
d
u
ag
Kreis
Radius
Durchmesser
Umfang
Fläche A
FKREISKEGEL
x1
y1
Kreiskegel
18.5. BEZEICHNER
113
FKREISRING
r
rg
ag
z
d
Kreisring
Radius
R
A
Mittelradius zeta
Ringbreite d
FKREISRINGSEKTOR
rg
y
ag
r
zw
l
d
Kreisringsektor
R
Schwerpunkt
Fläche
r
Zwischenradius phi
l
d
FKREISSEGMENT
(entsprechend)
Kreissegment
FKREISSEKTOR
(entsprechend)
Kreissektor
FKREISTEILE
x1
y1
Kreisteile
FKUGEL
x1
Kugel
FKUGELABSCHNITT
x1
y1
Kugelabschnitt
FKUGELAUSSCHNITT
x1
y1
Kugelausschnitt
FKUGELKEIL
x1
y1
Kugelkeil
FKUGELSCH
x1
x2
x3
x4
Kugelschicht
FKURVEN2
fnk
Kurvendiskussion
Funktion
FLINGLEICH
a1
b1
lineare Gleichungen
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
114
FLXADDITION
x1
y1
x2
y2
Addition (komplex)
Realteil z1
Imaginärteil z1
Realteil z2
Imaginärteil z2
FLXDIVISION
x1
y1
x2
y2
Division (komplex)
FLXMULTIPLIKATION
x1
y1
x2
y2
Multiplikation (komplex)
FMATRIXMULT
Matrizen-Multiplikation
FNECK
a
uk
aw
Ag
Instanzen
n
u
ik
zw
regelmäßiges n-Eck
FOKTAEDER
x1
Oktaeder
Kantenlänge
FOPTION
Optionen
FPARALLELO
a
d1
h
aw
Ag
Instanzen
b
d2
u
Parallelogramm
FPERMUTATION
n
p
k
Permutation
FPRIM
x
y
Primzahlen
18.5. BEZEICHNER
115
FPRIMFAK
x
Primfaktorzerlegung
FPYRAMIDE
x1
y1
z1
Pyramide
FPYRAMSTUMPF
x1
y1
z1
Pyramidenstumpf
FQUADER
x1
y1
z1
Quader
FRANDOM
x1
y1
Zufallszahlen
FRECHNER
fnk
xEdit
Rechner
FREGEL
x1
regelmäßige Körper
FREGRESSION
memo1
Ausgleichskurven
Punkte
FROTATION
fnk
edx1
edx2
Rotation um die x-Achse
Funktion
x1
x2
FSCHKURVEN
a
b
Schnitt zweier Funktionen
FSPTRIG
x1
x2
y1
y2
KR
MW
sphärische Trigonometrie
FSTATISTIK
(keine
automatisierten
Eingaben möglich)
Statistik
FSTRECKEN
x1
y1
x2
y2
Strecken (analyt. Geometrie)
116
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
FSUMMEN
fak
aEdit
bEdit
fnk
fak2
aedit2
bedit2
fnk2
Summen und Potenzen
Faktor
von
bis
über
Faktor (Potenz)
von (Potenz)
bis (Potenz)
über (Potenz)
FTANGENTEN
fnk
edx1
Tangente
Funktion
x
FTETRAEDER
x1
Tetraeder
Kantenlänge
FTRAPEZ
(entsprechend)
Trapez
FTRIGONO
(entsprechend)
Trigonometrie
FUMRECH
(keine
automatisierten
Eingaben möglich)
Umrechnung
FVARIANZ
n
p
Varianz
FVBETRAG
x1
Vektorbetrag
Vektor x
FVNORMAL
x1
Normalisieren
Vektor x
FVKREUZ
x1
y1
Kreuzprodukt (Vektorprod.)
Vektor x
Vektor y
FVPUNKT
x1
y1
Punktprodukt (in. Skalarprod.)
Vektor x
Vektor y
FVIERECKE
x1
y1
x2
y2
x3
Vierecke (analyt. Geometrie)
FVSKALAR
x1
edtSkalar
Skalarprodukt
Vektor x
skalarer Faktor
FZAHLSYS
x1
y1
Zahlensystemumrechnung
18.5. BEZEICHNER
117
FZINSEN
x1
y1
z1
Zinseszinsrechnung
FZYLIND
x1
y1
z1
Zylinder
118
KAPITEL 18. APPOMATOX-SPEZIFISCHE FUNKTIONEN
Kapitel 19
Styleguide
Um eine gewisse Einheitlichkeit unter den Plugins zu gewährleisten, empfehle
ich folgende Bemaßung:
Alle Maße in Pixel. Alle Forms sollten als BorderStyte bsToolWindow“ und
”
als FormStyle fsStayOnTop“ tragen:
”
var form : TForm;
form.borderStyle := bsToolWindow;
form.formStyle := fsStayOnTop;
119
120
KAPITEL 19. STYLEGUIDE
Teil III
Referenz Formeleditor
121
Kapitel 20
Referenz Formeleditor
Der Appomatox-Formeleditor ermöglicht es, Formeln so auf dem Bildschirm
darzustellen, wie sie auf dem Papier stehen. Desweiteren ist es möglich, die Formeln per Drag’n’Drop (d.h. durch Ziehen mit der Maus) oder durch Speichern
auch in jede andere Textverarbeitung, wie beispielsweise MS Word, einzufügen.
Umfangreichere Formelzeichen wie das Integralzeichen ( ) lassen sich jedoch nicht direkt mit der Tastatur setzen, es sind dazu Befehle“ nötig: Rufen
”
Sie zuerst in Appomatox den Formeleditor auf und geben Sie dann in die Zeile
Formel die Befehle ein, die hier in dieser Referenz in Schreibmaschinenschrift
gedruckt sind . Durch Aneinanderreihung von mehreren Befehlen erhalten sie
auch die kompliziertesten Formeln auf den Bildschirm.
Die Zeichen wie Sie hier in der Referenz gedruckt sind, können aus satztechnischen Gründen geringfügig von den Zeichen abweichen, die Appomatox
erzeugt. Der Appomatox-Formeleditor basiert auf den Freeware-Komponenten
ExprDraw/ExprMake eines russischen Autors ([email protected]).
Im Allgemeinen sind die Befehle case-sensitiv, d.h. beachten Sie die GroßKleinschreibung und verwenden Sie nur Leerzeichen, wo diese erlaubt sind.
123
KAPITEL 20. REFERENZ FORMELEDITOR
124
20.1
Symbole
• y=[1+1/[1+1/x]]
y = 1 + [1+1 1 ]
!( )
Erzwingt das Setzen von Klammern.
• !(x+1)*!(y-2)
(x + 1)(y − 2)
x
{}
• !(x+1)/!(x-1)
• {x+1}*{y-2}
{x + 1}{y − 2}
• a+!(b+c)=d*.!(e*.f)
a + (b + c) = d · (e · f )
• {x+1}/{x-1}
(x+1)
(x−1)
• a*!(b+c)<>d+!(e*f)
a(b + c) = d + (ef )
• a+{b+c}=d*.{e*.f}
a + {b + c} = d · {e · f }
• y=!(1+1/!(1+1/x))
y = 1 + (1+1 1 )
x
• a*{b+c}<>d+{e*f}
a{b + c} = d + {ef }
()
• y={1+1/{1+1/x}}
Erzeugt nur Klammern, wenn diese
notwendig sind.
• (x+1)*(y-2)
(x + 1)(y − 2)
• (x+1)/(x-1)
x+1
x−1
||
• a+(b+c)=d*.(e*.f)
a + (b + c) = d · e · f
• |x+1|*|y-2|
|x + 1||y − 2|
• a*(b+c)<>d+(e*f)
a(b + c) = d + ef
• |x+1|/|x-1|
• y=(1+1/(1+1/x))
y = 1 + 1+1 1
• a+|b+c|=d*.|e*.f|
a + |b + c| = d · |e · f |
|x+1|
|x−1|
x
• a*|b+c|<>d+|e*f|
a|b + c| = d + |ef |
[]
• [x+1]*[y-2]
[x + 1][y − 2]
• y=|1+1/|1+1/x||
y = 1 + |1+1 1 |
x
• [x+1]/[x-1]
[x+1]
[x−1]
• a+[b+c]=d*.[e*.f]
a + [b + c] = d · [e · f ]
• a*[b+c]<>d+[e*f]
a[b + c] = d + [ef ]
!
Fakultät. Siehe auch 20.1
• C_n^k=n!/k!/(n-k)!
n!
Cnk = k!(n−k)!
20.1. SYMBOLE
125
• 5**x
5x
• a-b
a−b
• y**2
y2
#
• 2**a**3
2a3
Setzt die Zahl in wissenschaftlicher
Schreibweise als 10er Potenz.
• sin(x)**cos(x)
sin x cos x
• 0.03*x
0, 03x
• #0.03*x
3 · 10−2 x
*.
• 5*.x
5·x
&
• y*.2
y·2
Verbindet zwei Befehle miteinander.
• 2*.a*.3
2·a·3
• y=x & space(7) & z=q
y=x z=q
• sin(x)*.cos(x)
sin x · cos x
*
Das einfache Malzeichen wertet die
Formel aus und fasst, sofern möglich,
mehrere Faktoren zusammen. Wenn
Sie das automatische Zusammenfassen
nicht möchten, verwenden Sie das doppelte Malzeichen ( 20.1). Das Malzeichen wird nicht gedruckt. Um ein gedrucktes Malzeichen zu erhalten, verwenden Sie das Zeichen *. ( 20.1).
*+
• 5*+x
5×x
• y*+2
y×2
• 2*+a*+3
2×a×3
• 5*x
5x
• sin(x)*+cos(x)
sin x × cos x
• y*2
2y
• 2*a*3
6a
• sin(x)*cos(x)
sin x · cos x
,
• a0,a1,a2, a3
a 0 , a1 , a2 , a3
/
**
• a/b
Das Malzeichen wird nicht gedruckt.
Um ein gedrucktes Malzeichen zu erhalten, verwenden Sie *. ( 20.1).
• (x+1)/(x-1)*(x+2)/(x//y)*4
a
b
4(x+1)(x+2)
(x−1)x/y
KAPITEL 20. REFERENZ FORMELEDITOR
126
• (1/2)*x
1
2x
∼
• a~b
a∼b
• (3/4)*((x+1)/(x-1))
3 x+1
4 x−1
∼∼
//
• a~~b
a≈b
• a//b
a/b
• x//(2*y)
x/2y
-+
• a-+b
a∓b
/+
• a/+b
a÷b
+
• a+b
a+b
ˆ
• a^b
ab
+-
• Ind(x,a)^2,x_a^2
x2a , x2a
• Ind(x^2,a),x^2_a
(x2 )a , x2a
• a+-b
a±b
<
• a<b
a<b
(tiefstellen)
• a_b
ab
• a_x_0
ax 0
• Ind(a,Ind(x,0))
ax 0
<∼
• a<~b
ab
<<
(Vektor)
• _a
a
• a<<b
ab
<>
‘
• a<>b
a = b
(Apostroph rückwärts, [Shift]+[´])
• f(x)‘
f (x)
• f(x)‘‘‘
f (x)
=
• a=b
a=b
20.1. SYMBOLE
=∼
127
Comma
• a=~b
a b
==
• a==b
a≡b
• x&Comma&y
x, y
const
• Int(x*Diff(x))=x^2/2+const
2
xdx = x2 + const
>
• a>b
a>
->
• a->b
a→b
Empty
Manche Funktionen sind nur in verbindung mit anderen Zeichen (Argumente) erlaubt. Mit den Zeichen Empty
und Nil können sie solche Funktionen
auch ohne ARgumente benutzen.
• Empty^2
>∼
2
• a>~b
ab
>=
Inf
Zeichen für unendlich.
• a>=b
a≥b
• lim(x->0,1/x)=+-Inf
lim x1 = ±∞
x→0
>>
• a>>b
a
b
...
• f(x1,x2,...,x_n)=0
f (x1 , x2 , . . . , xn ) = 0
Minus
Das einfache Minus-Zeichen (-) kann
nicht mit anderen Steuerzeichen und
Befehlen kombiniert werden.
• a_Minus
a-
Angle
• Angle**A
∠A
Asterix
• Summa(a_n*a_n^Asterix,n)=0
an a∗n = 0
n
Nabla
• Nabla*f=PDiffRF(f,x)*
_e_x+PDiffRF(f,y)*_e_y
+PDiffRF(f,z)*_e_z
128
KAPITEL 20. REFERENZ FORMELEDITOR
Nil
Manche Funktionen sind nur in Verbindung mit anderen Zeichen (Argumente) erlaubt. Mit den Zeichen Empty und Nil können sie solche Funktionen auch ohne Argumente benutzen.
• lim(nil,f(x))=0
lim f (x) = 0
Parallel
• _a & Parallel & _b
a b
• H_Parallel
H
Perpendicular
• _a & Perpendicular & _b
a⊥b
• v_Perpendicular
H⊥
Plank
Das Planck’sche Wirkungsquantum.
• Plank=h/2/pi
h
= 2π
20.2. FUNKTIONEN
20.2
129
Funktionen
Abs
Diff
• Abs(x^2)=Abs(x)^2
|x2 | = |x|2
• Diff(x)
dx
• Diff(x,n)
dxn
Angle
• Angle(ABC)
∠ABC
DiffN
• DiffN(x)
dx
At
• At(DiffRF(f,x),x=0)=1
df
=1
dx
• DiffN(x,n)
dn x
x=0
Brackets
• Brackets((],0&comma&1)
(0, 1]
DiffR
• DiffR(x)
d
dx
• DiffR(x,n)
dn
dxn
Cap
• Cap(x)
x̂
Case
• |x|=Case(-x,x<0,0,x=0,x,x>0)
DiffRF
• DiffRF(f,x)
df
dx
• DiffRF(f(x),x,n)
n
d f (x)
dxn
Fact
• Fact(n)
n!
Circ
• Circ(_E*Diff(_l),L)
l
Ed
L
• Fact(k+1)
(k + 1)!
Func
• Func(PDiffRF(f,x,3),x)
Comma
Fügt ein Komma mit darauffolgendem
Abstand ein. Sie können den Abstand
durch die Zahl in Klammern bestimmen (in Pixel).
• x & comma(15) & y
x, y
Ind
• Ind(a,n)
an
KAPITEL 20. REFERENZ FORMELEDITOR
130
Int
• F(x)=Int(f(x)*Diff(x))
F (x) = f (x)dx
• Phi=Int(_H*Diff(_S),S)
S
Φ = Hd
S
• Int(x,0,1)=1
1
x=1
0
IntM
• IntM(3,f(x,y,z)*
Diff(x)*Diff(y)*Diff(z),V)
f (x, y, z)dxdydz
• Matrix(2,3,x,y,x-y,x+y,z,z+y)
x
y
x−y x+y
z
z+y
• !(Matrix(2,2,1,2,-3,4))
1 2
−3 4
• [_a,_b]=|Matrix(3,3,
_e_x,_e_y,_e_z,
x_a,y_a,z_a,
x_b,y_b,z_b)|
[a, b] =
V
• IntM(0,f(x1,...,x_n)
*DiffN(x,n))
··· f (x1 , ..., xn )dn x
ex
xa
xb
ey
ya
yb
ez
za
zb
Num
• Num(0.00123456)
1, 235 · 10−3
Lim
• Lim(StandC(x->0,x>0),f(x))=1
• num(0.00123456,6)
1, 23456 · 10−3
• Num(0.00123456,4,4,3)
0, 0012
Line
• Line(x)
x
• Line(x^2)
x2
Log
• log(a,x+1)=ln(x+1)/ln(a)
Matrix
Sie können eine beliebig große Matrix erzeugen. Die Anzahl der Spalten und Zeilen müssen sie als erstes in
den Klammern schreiben. Danach folgen zeilenweise die einzelnen Elemente
• Num(0.00123456,4,6,3)
0, 001235
PDiff
• PDiff(x)
∂x
• PDiff(x,n)
∂xn
PDiffN
• PDiffN(f(x,y),3)/PDiff(x)
/PDiff(y,2)
20.2. FUNKTIONEN
PDiffR
• PDiffR(x)
• PDiffR(x,n)
131
Space
Fügt einen Abstand ein. Die Zahl
in Klammer bestimmt in Pixeln die
Größe des Abstandes.
• y=x & space(7) & z=q
y=x z=q
Sqr
PDiffRF
• PDiffRF(f,x)
• Sqr(a+b)=Sqr(a)+2*a*b+Sqr(b)
(a + b)2 = a2 + 2ab + b2
Sqrt
• Sqrt(x^2+y^2)
x2 + y 2
• PDiffRF(f(x,y),x,n)
StandC
Zentriert den Text in Klammern. Die
Zeilen sind mit Komma zu trennen.
Points
• Points(y,2)=y*Points(x)
ÿ = y ẋ
Pow
• Pow(x+2,2//3)
(x + 2)2/3
Prod
• Prod(a_i)
ai
• Prod(a_i,i<>j)
ai
i=j
• Prod{a_i,i=0,0)
n
ai
i=0
Root
• Root(3,x-1)
√
3
x−1
• StandC(0<=i<n,i<>j)
0≤i<n
i = j
StandL
Setzt Text linksbündig. Die Zeilen sind
mit Komma zu trennen.
• StandL(0<=i<n,i<>j)
0≤i<n
i = j
StandR
Setzt den Text rechtsbündig. Die Zeilen sind mit Komma zu trennen.
• StandR(0<=i<n,i<>j)
0≤i<n
i = j
String
Fügt einen beliebigen Text ein.
• String(Faktor 1 + Faktor 2)
Faktor 1 + Faktor 2
• String("Text(in Klammern)")
Text (in Klammern)
KAPITEL 20. REFERENZ FORMELEDITOR
132
Strokes
• Strokes(f(x))
f (x)
• Strokes(y,3)
y Summa
• Summa(a_i)
ai
• Summa(a_i,i<>j)
ai
nur ausgegeben, wenn der WindowsStandardzeichensatz dieses Zeichen
unterstützt.
• Symbol(198)=1
Æ= 1
System
Setzt ein Gleichungssystem.
• System(x+y=5,x*y=6)
x+y =5
xy = 6
i=j
• Summa{a_i,i=0,0)
n
ai
i=0
Tilde
• Tilde(x)
x̃
Symbol
Gibt das n-te Zeichen des UnicodeZeichensatzes
aus.
Siehe
auch
www.unicode.org. Das Zeichen wird
Vect
• Vect(a)
a
20.3. GRIECHISCHE BUCHSTABEN
20.3
133
Griechische Buchstaben
Alpha
Gamma
• Alpha
A
• Gamma
Γ
• alpha
α
• gamma
γ
Beta
Iota
• Beta
B
• Iota
I
• beta
β
• iota
ι
Chi
Kappa
• Chi
X
• Kappa
K
• chi
χ
• kappa
κ
Delta
Lambda
• Delta
∆
• Lambda
Λ
• delta
δ
• lambda
λ
Epsilon
Mu
• Epsilon
E
• Mu
M
• epsilon
• mu
µ
Eta
Nu
• Eta
H
• Nu
N
• eta
η
• nu
ν
134
Omega
KAPITEL 20. REFERENZ FORMELEDITOR
Sigma
• Omega
Ω
• Sigma
Σ
• omega
ω
• sigma
σ
Omicron
Tau
• Omicron
O
• Tau
T
• omicron
o
• tau
τ
Phi
Theta
• Phi
Φ
• Theta
Θ
• phi
φ
• theta
θ
Pi
Upsilon
• Pi
Π
• Upsilon
Υ
• pi
π
• upsilon
υ
Psi
Xi
• Psi
Ψ
• Xi
Ξ
• psi
ψ
• xi
ξ
Rho
Zeta
• Rho
P
• Zeta
Z
• rho
ρ
• zeta
ζ
Teil IV
Anhänge
135
Anhang A
Immerwährender Kalender
A: JAHRE
1801-1900
01 29 57 85
02 30 58 86
03 31 59 87
04 32 60 88
05 33 61 89
06 34 62 90
07 35 63 91
08 36 64 92
09 37 65 93
10 38 66 94
11 39 67 95
12 40 68 96
13 41 69 97
14 42 70 98
15 43 71 99
16 44 72 -17 45 73 -18 46 74 -19 47 75 -20 48 76 -21 49 77 00
22 50 78 -23 51 79 -24 52 80 -25 53 81 -26 54 82 -27 55 83 -28 56 84 -C:
Mo
Di
Mi
1901-2000
-- 25 53 81
-- 26 54 82
-- 27 55 83
-- 28 56 84
01 29 57 85
02 30 58 86
03 31 59 87
04 32 60 88
05 33 61 89
06 34 62 90
07 35 63 91
08 36 64 92
09 37 65 93
10 38 66 94
11 39 67 95
12 40 68 96
13 41 69 97
14 42 70 98
15 43 71 99
16 44 72 00
17 45 73 -18 46 74 -19 47 75 -20 48 76 -21 49 77 -22 50 78 -23 51 79 -24 52 80 --
2001-2104
-- 09 37 65
-- 10 38 66
-- 11 39 67
-- 12 40 68
-- 13 41 69
-- 14 42 70
-- 15 43 71
-- 16 44 72
-- 17 45 73
-- 18 46 74
-- 19 47 75
-- 20 48 76
-- 21 49 77
-- 22 50 78
-- 23 51 79
-- 24 52 80
-- 25 53 81
-- 26 54 82
-- 27 55 83
-- 28 56 84
01 29 57 85
02 30 58 86
03 31 59 87
04 32 60 88
05 33 61 89
06 34 62 90
07 35 63 91
08 36 64 92
TAGE
-- 02 09 16 23 30 37
-- 03 10 17 24 31 --- 04 11 18 25 32 -137
93
94
95
96
97
98
99
00
----------------01
02
03
04
2105-2202
05 33 61 89
06 34 62 90
07 35 63 91
08 36 64 92
09 37 65 93
10 38 66 94
11 39 67 95
12 40 68 96
13 41 69 97
14 42 70 98
15 43 71 99
16 44 72 -17 45 73 -18 46 74 -19 47 75 -20 48 76 -21 49 77 00
22 50 78 01
23 51 79 02
24 52 80 -25 53 81 -26 54 82 -27 55 83 -28 56 84 -29 57 85 -30 58 86 -31 59 87 -32 60 88 --
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B: MONATE
JFMAMJJASOND
400351362402
511462403513
622503514624
034025036146
255136140250
366240251361
400351362402
512503514624
033614625035
144025036146
255136140250
360351362402
511462403513
622503514624
033614625035
145136140250
366240251361
400351362402
511462403513
623614625035
144025036146
255136140250
366240251361
401462403513
622503514624
033614625035
144025036146
256240251361
ANHANG A. IMMERWÄHRENDER KALENDER
138
Do
Fr
Sa
So
---01
05
06
07
08
12
13
14
15
19
20
21
22
26
27
28
29
33
34
35
36
-----
Erklärung:
An welchem Tag war der 11.12.1946?
Suchen Sie die verlangte Jahreszahl unter A. Ziehen Sie von dort einen geraden
Strich zu dem Monat unter B. Addieren Sie die dort gefundene Zahl mit der
Tageszahl des Datums (11). Die Summe dieser Addition (0 + 11) ist 11; suchen
Sie nun unter C, dann ist Mittwoch der Tag.
Anhang B
Abkürzungen der
Zahlenfolgen
Y
Z
E
P
T
G
M
k
h
da
d
c
m
µ
n
p
f
a
z
y
Yotta
Zetta
Exa
Peta
Tera
Giga
Mega
Kilo
Hekto
Deka
Dezi
Zenti
Milli
Mikro
Nano
Piko
Femto
Atto
Zepta
Yocto
10e24
10e21
10e18
10e15
10e12
10e9
10e6
10e3
10e2
10e1
10e-1
10e-2
10e-3
10e-6
10e-9
10e-12
10e-15
10e-18
10e-21
10e-24
1.000.000.000.000.000.000.000.000
1.000.000.000.000.000.000.000
1.000.000.000.000.000.000
1.000.000.000.000.000
1.000.000.000.000
1.000.000.000
1.000.000
1.000
100
10
0,1
0,01
0,001
0,000.001
0,000.000.001
0,000.000.000.001
0,000.000.000.000.001
0,000.000.000.000.000.001
0,000.000.000.000.000.000.001
0,000.000.000.000.000.000.000.001
139
(Quadrillion)
(Trilliarde)
(Trillion)
(Billiarde)
(Billion)
(Milliarde)
(Million)
(Tausend)
(Hundert)
(Zehn)
(Zehntel)
(Hundertstel)
(Tausendstel)
(Millionstel)
(Milliardstel)
(Billionstel)
(Billiardstel)
(Trillionstel)
(Trilliardstel)
(Quadrillionstel)
ANHANG B. ABKÜRZUNGEN DER ZAHLENFOLGEN
140
Eins
Zehn
Hundert
Tausend
Million
Milliarde
Billion
Billiarde
Trillion
Trilliarde
Quadrillion
Quadrilliarde
Pentillion
Pentilliarde
Sextillion
Sextilliarde
Septillion
Septilliarde
Oktillion
Oktilliarde
10e0
10e1
10e2
10e3
10e6
10e9
10e11
10e15
10e18
10e21
10e24
10e27
10e30
10e33
10e36
10e39
10e42
10e45
10e48
10e51
nach DIN 1301-1