TI-83 PLUS PROGRAMMIERUNGS

Transcription

TI-83 PLUS PROGRAMMIERUNGS
TI-83 PLUS PROGRAMMIERUNGSANLEITUNG
FÜR ANFÄNGER
Erstellt von: Boris Cherny
Übersetzt von: Yamen Heilani
Lesen Sie diese Anleitung von Anfang an durch und probieren Sie jedes
Progammierungsbeispiel aus. Viel Spaß!
I NHALTSVERZEICHNIS

1. THEMENBLOCK
o
o
o
o
o
o
o
o
o
o

2. THEMENBLOCK
o
o
o
o
o
o
o
o
o
o

FOR Funktion
WHILE Funktion
VERGLEICH
IF, THEN, ELSE, und OR Funktion
STRING Funktion
GETKEY Funktion
RAND, RANDINT, iPART, und fPART Funktion
LIST Funktion
MATRIX Funktion
AUFGABENÜBERSICHT
 VERBESSERTES MENÜ
 LAUFSPIEL
3. THEMENBLOCK
o
o
o
o
o
o
o
o

DISP Funktion
OUTPUT Funktion
CLRHOME Funktion
LBL/GOTO Funktion
END/PAUSE Funktion
MENU Funktion
INPUT/PROMPT Funktion
STOP Funktion
VARIABLEN
AUFGABENÜBERSICHT
 FLÄCHENINHALT EINES ZYLINDERS
 ZÄHLPROGRAMM
 LAUFPROGRAMM
CLRDRAW Funktion
TEXT Funktion
LINE, TANGENT, VERTICAL, und HORIZONTAL Funktion
SHADE Funktion
CIRCLE Funktion
Pt-On und Pt-Off Funktion
NESTED LOOPS Funktion
AUFGABENÜBERSICHT
 KREISPROGRAMM
AUFGABENÜBERSICHT
2
1. THEMENBLOCK
DISP Funktion
Es gibt drei verschiedene Möglichkeiten, Text auf dem Display anzeigen zu lassen:
DISP, OUTPUT und TEXT. Zuerst beschäftigen wir uns mit der grundlegendsten aller
Methoden: DISP. Diese Funktion zeigt das eingegebene Wort auf der nächstmöglichen Linie
an (die Linie, die sich ganz am Anfang des Displays befindet, und in der noch kein Text
drinsteht). Die DISP Funktion kann man unter PRGM ➢ I/O ➢ 3: aufrufen. Beachte, dass
du das Wort, das angezeigt werden soll, immer in Anführungszeichen setzen musst!
Hier ist ein Beispiel:
: Disp "TUTORIAL"
OUTPUT Funktion
Der GTR hat im Vergleich zur allgemeinen Mathematik ein anders aufgebautes
Koordinatensystem. Die x - Achse bleibt gleich, wobei die y - Achse oben anfängt und nach
unten geht. Das heißt konkret, dass man sich, in der allgemeinen Mathematik gesehen, im
„(+ | –) Feld“ befindet. Der Bildschirm des GTR TI-83 Plus ist 8 Kästchen hoch und 16
Kästchen lang:
Obwohl DISP eine wichtige Funktion ist, wirst du feststellen, dass man die OUTPUT Funktion
viel öfter verwendet. Im Gegensatz zu der DISP Funktion ermöglicht die OUTPUT Funktion
eine variable Position, bzw. kann koordinieren, wo der Text angezeigt werden soll.
Außerdem ist die OUTPUT Funktion mit einer automatischen Textumbruchfunktion
versehen. Die OUTPUT Funktion kann man unter PRGM ➢ I/O ➢ 6: aufrufen. Beachte,
dass du das Wort, das angezeigt werden soll, immer in Anführungszeichen setzen
musst! Hier ist ein Beispiel:
: Output(3,2,"TUTORIAL")
3
Hinweis:
Es macht nichts aus, das schließende Anführungszeichen und die
schließende Klammer wegzulassen. Allerdings funktioniert dies nur bei der
OUTPUT-Funktion!
: Output (3,2, "TUTORIAL
CLRHOME Funktion
Die CLRHOME-Funktion wird dafür genutzt, den aktuellen Bildschirm zu löschen. Die
Funktion wird in der Regel ganz am Anfang des Programms eingefügt, um den am Anfang
eingeblendeten Programmnamen zu löschen. Die CLRHOME-Funktion kann man unter
PRGM ➢ I/O ➢ 8: aufrufen. Bei der Programmierung ist es vorteilhaft, die CLRHOMEFunktion beim Einblenden eines neuen Bildschirms immer als ersten Befehl einzusetzen.
Hier ist ein Beispiel:
: ClrHome
: Disp "HELLO WORLD"
Beachte, dass dieses Mal vor dem Haupttext kein störender Programmname
(„prgmTUTORIAL“) oben am Display erschienen ist!
LBL/GOTO Funktion
Die LBL-Funktion wird dafür verwendet, die aktuelle Abfolge von Befehlen mit einer
Variablen abzuspeichern. Da diese Funktion meist zu fehlerhaften Codierungen führt, sollte
man diese nur im äußersten Fall benutzen. Mit der GOTO-Funktion kann man diesen vorher
festgelegten Befehlsablauf wieder abspielen lassen. Die Funktionen kann man unter
PRGM ➢ 9: und PRGM ➢ 0: aufrufen. Hier ist ein Beispiel:
: Lbl A
: ClrHome
: Output(4,2,"HELLO WORLD"
: Goto A
In diesem Beispiel wird der Text „HELLO WORLD“ ununterbrochen ein- und ausgeblendet –
sodass der Text scheinbar flackert – bis man die „ON“-Taste drückt und das Programm
über „Quit“ beendet.
Hier ist die Auflösung: Die Abfolge ist unter der Variablen „A“ gespeichert und
ein Text „HELLO WORLD“ wird bei den Koordinaten (4,2) angezeigt. Dann
geht der Rechner wieder zur gespeicherten Abfolge „A“, löscht den aktuellen
Bildschirm (ClrHome) und zeigt den gleichen Text nochmal an. Dies passiert
alles in einer solch hohen Geschwindigkeit, dass der Text „HELLO WORLD“
flackert. Dieser Vorgang ist ziemlich nutzlos, weswegen man eine Funktion bzw. einen
Befehl braucht, um diesen ununterbrochenen Ablauf zu beenden, damit diese Funktion
Sinn bekommt.
4
END/PAUSE Funktion
Die END-Funktion ermöglicht es, Befehlsabfolgen zu beenden bzw. bedeutet, dass
dies das Ende einer Abfolge ist. Die END-Funktion wird zum Beispiel bei der FOR-, WHILE-,
GETKEY-, und INPUT-Funktion verwendet.
Mit der PAUSE-Funktion kann man eine Abfolge anhalten, das heißt, dass der Benutzer erst
die ‚ENTER‘-Taste drücken muss, damit das Programm weiterlaufen kann. Die Funktionen
kann man unter PRGM ➢ 7: und PRGM ➢ 8: aufrufen. Hier ist ein Beispiel:
: Lbl A
: ClrHome
: Output(4,2,"HELLO WORLD"
: Pause
: ClrHome
MENU Funktion
Menüs werden häufig dafür genutzt, Spiele zu starten/zu beenden, etwas aus einer
Liste auszuwählen … Im GTR TI 83 Plus ist bereits eine MENU-Funktion vorinstalliert. Diese
Funktion kann man unter PRGM ➢ C: aufrufen. Hier ist ein Beispiel:
: Menu("--MENU--","BANANA",1,"ORANGE",2,"PEACH",3,"QUIT",X)
Da der Bildschirm nur acht Kästchen hoch ist, liegt das Maximum an Auswahlpunkten bei
sieben, weil der Menütitel eine dieser acht Linien verbraucht. Die erste Linie im Menü
verbraucht, wie bereits erwähnt, der Menütitel und danach werden die Auswahlpunkte
aufgereiht.
INPUT/PROMPT Funktion
Die INPUT- und PROMPT-Funktionen stellen zwei Möglichkeiten dar, um am Ende das
gleiche Ergebnis zu erhalten. Bei beiden Funktionen wird der Benutzer nach einer Eingabe,
wie zum Beispiel einer Zahl, einem Buchstaben etc. gefragt. Die INPUT-Funktion erfordert
mehr Zeitaufwand, da sie nicht einfach nach einer Zahl frägt und dann endet, wie es bei der
PROMPT-Funktion der Fall ist, wo der Befehlsablauf, der unter einer bestimmten Variable
gespeichert wurde, automatisch beendet wird. Die INPUT-Funktion ist dafür aber
kompatibel mit der STRING-Funktion, was bedeutet, dass man neben Variablen, auch mit
der STRING-Funktion arbeiten kann. Die PROMPT-Funktion dagegen ist nicht kompatibel.
Die INPUT- und PROMPT-Funktionen kann man unter PRGM ➢ I/O ➢ 1: und
PRGM ➢ I/O ➢ 2: aufrufen. Hier sind zwei Beispiele und mögliche Situationen:
: ClrHome
: Prompt X
: Disp X
: Pause
5
6
: ClrHome
: Input X
: Disp X
: Pause
: Stop
: End
STOP Funktion
Die STOP-Funktion stoppt alle laufenden Prozesse. Zum Beispiel wurde im obigen Beispiel
die STOP-Funktion eingesetzt, um den Prozess, bei dem eine Variable angezeigt wird, zu
beenden. Die STOP-Funktion kann man unter PRGM ➢ F: aufrufen.
VARIABLEN
Variablen werden vielseitig eingesetzt: Man kann Zahlen oder ganze Bildschirmzeilen mit
einer Variablen benennen und abspeichern. Dies ermöglicht es dem Benutzer, eine Zahl
später einfach abrufen zu können, ohne sie sich merken zu müssen. Variablen werden auch
für die Zahlen eingesetzt, die sich im Laufe des Programms verändern bzw. dessen
Zwischenwerte man nicht kennt. Zum Beispiel ist ein Spieler beim Spielstand von ‚0 Äpfeln‘.
Dieser Wert ‚0‘ wird unter der Variablen ‚X‘ gespeichert. Während eines Spiels verändert
sich dieser Wert kontinuierlich. Beispielsweise kann der Spieler den totalen (10 Äpfel), den
kleinen (3 Äpfel), oder den negativen Bonus (- 5 Äpfel) erhalten. In einem solchen Fall
speichert man den Wert des neuen Spielstandes wieder unter der Variablen ‚X‘ ab. Sprich
wenn der Spieler z.B. den totalen Bonus (10 Äpfel) bekommt, speichert man X (der alte
Spielstand) + 10 (Bonus) X (neuer Spielstand). Kurz: X + 10 X. Der neue Spielstand
bezieht sich so wieder auf das nun folgende Spielgeschehen.
: ClrHome
: 250 A
: 500 B
: Output(2,1,A
: Pause
: ClrHome
: Output(2,1,B
: Pause
Bei diesem Beispiel werden die Nummern 250 und 500 unter der Variablen A und B
abgespeichert, welche später bei den Koordinaten (2,1) nacheinander – getrennt durch
eine Pause – auf dem Bildschirm angezeigt werden.
7
AUFGABENÜBERSICHT
FLÄCHENINHALT EINES ZYLINDERS:
Erstelle ein Programm, das den Benutzer nach
der Höhe und dem Radius fragt und dann
anhand dieser Werte den Flächeninhalt des
Zylinders berechnet und anschließend anzeigt.
ZÄHLPROGRAMM:
Erstelle ein Programm, das von 0 bis 2000
zählt, so dass alle aufgezählten Zahlen auf dem
Bildschirm nacheinander angezeigt werden.
LAUFPROGRAMM:
Erstelle ein Programm, in dem der Benutzer aus
einem Menü unterschiedliche Optionen
auswählen kann: ‚Nach oben‘, ‚Nach unten‘,
‚Nach rechts‘, ‚Nach links‘ und ‚Explosion‘. Je
nach dem was er wählt, bewegt sich ein Cursor
in die Richtung, die er ausgewählt hat bzw.
„explodiert“ ein Teil des Bildschirms.
2. THEMENBLOCK
FOR Funktion
Die FOR Funktion ist eine Art Wartefunktion. Sie zählt von der ersten bis zur zweiten Zahl in
Intervallen der dritten Zahl. Sie wird auch dafür eingesetzt, etwas eine bestimmte Zeit lang
anzeigen zu lassen. Es funktioniert folgendermaßen: for([Variable A-Z), [Startzahl],
[Zielzahl], [Intervallzahl]). Je kleiner die Start- und Zielzahl, desto kleiner die Zeitspanne.
Mit der END Funktion kann man den Ablauf beenden. Gelegentlich wird auch die STOP
Funktion zum Beenden des Ablaufs benutzt. Die FOR Funktion kann man unter PRGM ➢ 4:
aufrufen. Hier ist ein Beispiel:
: ClrHome
: For(A,0,50)
: Output(3,1,"THIS"
: End
: For(A,1,50,20)
: Output(4,2,"IS A"
: End
: For(R,9,500,10)
: Output(5,3,"TUTORIAL"
: End
Hier ist die Auflösung: Die einzelnen Textlinien werden nacheinander
angezeigt. Die FOR Funktion veranlasst, dass die Textlinien für die angegebene
Zeitspanne angezeigt werden, bevor das Programm weiterläuft. Obwohl es
am Ende des Programms eine END Funktion gibt, startet das Programm neu,
sobald der Benutzer die ENTER Taste drückt.
In diesem Beispiel speichert der Rechner den sich verändernden Wert von 0 bis 50 in die
Variable ‚A‘ ein. Der Schriftzug ‚THIS‘ wird bei den Koordinaten (3,1) solange angezeigt, bis
der Rechner von 0 bis 50 gezählt hat.
WHILE Funktion
Die WHILE Funktion lässt das Programm erst dann weiterlaufen, wenn eine bestimmte
Bedingung erfüllt ist. Im Gegenteil zur FOR Funktion addiert die WHILE Funktion nicht
automatisch jedes Mal eine ‚1‘ zum Wert der Variablen hinzu. Man muss den
hinzuzuaddierenden bzw. abzuziehenden Wert extra eingeben. Dies macht die Funktion
flexibler als die FOR Funktion. Die WHILE Funktion kann man unter PRGM ➢ 5: aufrufen.
Hier ist ein Beispiel:
: ClrHome
:1 Y
: While Y 16
:1 X
: While X 8
: Output(X,Y,"+"
: X+1 X
: End
: Y+1 Y
: End
Hier ist die Auflösung: Der Bildschirm wird gelöscht und der Wert ‚1‘ wird
unter der Variablen ‚Y‘ abgespeichert. Solange ‚Y‘ kleiner oder gleich 16 ist,
wird der Wert 1 unter der Variablen ‚X‘ abgespeichert. Solange der X-Wert
kleiner oder gleich 8 ist, wird das Pluszeichen (+) bei den Koordinaten (X,Y)
angezeigt. Zum X-Wert wird sooft 1 addiert, bis sich das Programm acht Mal
wiederholt hat, sodass ‚X‘ den Wert 8 erreicht hat. Jetzt, da 8 erreicht wurde, wiederholt
sich das Programm nicht mehr, sondern durchläuft in diesem Durchlauf auch den unteren
Teil der Programmierung. Zum Y-Wert wird nun 1 dazugezählt und der X-Wert wird auf 1
zurückgesetzt. Demzufolge werden die X-Spalten jeweils von oben nach unten nacheinander
mit ‚+‘ Zeichen aufgefüllt, bis der Y-Wert 16 erreicht hat und sich das Programm beendet.
Wenn man bei der Programmierung ‚While 1‘ eingibt, so wiederholt sich die
Befehlsabfolge der WHILE Funktion wieder und wieder, es sei denn es erfolgt
eine Unterbrechung durch einen Befehl, der den Ablauf beendet, wie zum
Beispiel, wenn der Benutzer die ENTER-Taste drückt. Wenn man bei der
Programmierung ‚While 0‘ eingibt, so wird das Programm ab der WHILE
Funktion bis zur END Funktion nicht weiterlaufen. Das liegt daran, dass Computer mit Bits
[winzige Stromstöße] arbeiten, um Informationen zu übertragen. Eine kleine Spannung
steht für ‚1‘ und keine Spannung steht für ‚0‘. Daraus kann man schließen, dass ‚1‘ für
„Richtig“ steht, da Strom fließt und ‚0‘ für „Falsch“ steht, da kein Strom fließt. Ein
anschauliches Beispiel zur Verdeutlichung ist ein Lichtschalter: Wenn das Licht brennt, so
fließt Strom und wenn es nicht brennt, so fließt kein Strom. Wenn man demnach ‚While 1‘
eingibt, so meint man damit eigentlich ‚While „Richtig“‘.
8
VERGLEICH
Das folgende Beispiel zeigt die eigentliche Nutzung der FOR Funktion, die man viel öfter
verwendet, als die vorherig gezeigte Wartefunktion. Einige noch nicht beschriebene
Funktionen, die in diesen Beispielen verwendet werden, werden später erklärt. Hier werden
drei Funktionen miteinander verglichen: die FOR, WHILE und LBL/GOTO Funktion. Die
folgenden Programme sind zwar vom Ergebnis her alle gleich, aber hinter den Kulissen
unterscheiden sie sich total voneinander. Überspiele alle drei folgenden Programme auf
deinen GTR, um die Unterschiede der drei Funktionen sehen zu können (zum Beispiel, dass
das LBL/GOTO Beispiel am meisten Zeit in Anspruch nimmt). Ändere als Erstes die
WINDOW Einstellungen folgendermaßen:
Xmin=-100
Xmax=100
Xscl=10
Ymin=-100
Ymax=100
Yscl=10
Xres=1
Beispiel I: FOR
: ClrDraw
: For(X,0,50)
: Circle(0,0,X)
: Text(0,0,"RADIUS:",X
: End
: Text(6,0,"DONE"
Der Bildschirm des Koordinatensystems wird gelöscht und unter
der Variablen ‚X‘ wird der Wert 0 abgespeichert. Bei den
Koordinaten (0,0) wird ein Kreis gezeichnet (in diesem Fall in die
„Mitte“ des Bildschirms). Der Radius ist mit ‚X‘ benannt und hat
somit zuerst den Wert 0. Bei den Koordinaten (0,0) (in diesem Fall
wieder oben links) wird der Text „RADIUS:“ angezeigt und danach der momentane Wert
der Variablen ‚X‘. Die END Funktion befiehlt dem Rechner die Programmschleife bzw. den
Ablauf zwischen der FOR und END Funktion zu beenden, sobald der Wert von ‚X‘ gleich 50
ist. Ist diese Stelle erreicht, so wird der Text „DONE“ angezeigt.
Beispiel II: WHILE
: ClrDraw
:0 X
: While X<50
: Circle(0,0,X)
: Text(0,0,"RADIUS:",X
: X+1 X
: End
: Text(6,0,"DONE"
9
10
Der Bildschirm des Koordinatensystems wird gelöscht und unter der Variablen
‚X‘ wird der Wert 0 abgespeichert. Solange der X-Wert kleiner als 50 ist, wird
so ein immer größer werdender Kreis wegen dem immer größer werdenden
Radius von X bei den Koordinaten (0,0) eingezeichnet. Dann wird bei den
Koordinaten (0,0) der Text „RADIUS:“ und dahinter der momentane Wert von
‚X‘ angezeigt. Nun wird zum X-Wert 1 hinzuaddiert und dieser gesamte Vorgang wiederholt
sich nun solange bis die Aussage „X ist kleiner als 50“ falsch ist, bzw bis der X-Wert nicht
mehr kleiner als 50 ist. Das bedeutet also, dass der X-Wert nun größer als 50 sein muss.
Ist dieser Punkt erreicht, so wird der Text „DONE“ angezeigt.
Beispiel III: LBL/GOTO
: ClrDraw
:0 X
: Lbl 1
: Circle(0,0,X)
: Text(0,0,"RADIUS:",X
: X+1 X
: If X=50
: Goto 2
: Goto 1
: End
: Lbl 2
: Text(6,0,"DONE"
Der Bildschirm des Koordinatensystems wird gelöscht und unter der Variablen
‚X’ wird der Wert 0 abgespeichert. Der folgende Programmablauf wird unter
‚Lbl 1‘ abgespeichert. Ein Kreis mit dem Radius des X-Wertes wird bei den
Koordinaten (0,0) gezeichnet. Danach wird der Text „RADIUS:“ und dahinter der
momentane Wert von ‚X‘ angezeigt. Zum X-Wert wird 1 hinzuaddiert. Wenn X
gleich 50 ist, geht der Rechner zum Programmablauf, der bei ‚Lbl 2‘ beginnt. Wenn ‚X‘
nicht gleich 50 ist, so geht der Rechner wieder zum obigen, also zum ‚Lbl 1‘ Ablauf. Ist der
X-Wert 50 erreicht, so geht der Rechner zum Programmablauf ‚Lbl 2‘ und der Text „DONE
wird angezeigt.
FAZIT
Abschließend kann man sagen, dass die FOR Version die schnellste und effizienteste
Möglichkeit darstellt, um einen stetig wachsenden Kreis zu zeichnen. Die zweitbeste
Möglichkeit wäre die WHILE und die schlechteste die LBL/GOTO Version.
IF, THEN, ELSE, OR Funktion
Diese Funktionen gehören zu den meist benutzten Funktionen beim Programmieren, weil
sie Werte, Eingaben, Textzeilen und Variablen miteinander vergleichen können. Die ELSE
Funktion macht etwas, wenn kein bestimmter Wert für eine Variable eingegeben wurde.
Die IF Funktion vergleicht den Wert einer Variablen mit dem einer vorher festgelegten
Variablen. Die THEN Funktion macht etwas, wenn eine bestimmte Bedingung erfüllt wurde.
Die OR Funktion vergleicht die Werte vieler Variablen miteinander. Die IF, THEN und ELSE
Funktion kann man unter PRGM ➢ 1:, PRGM ➢ 2: und PRGM ➢ 3: aufrufen. Die OR
Funktion kann man unter TEST ➢ LOGIC ➢ 2: aufrufen. Hier ist ein Beispiel:
: ClrHome:Input "NMBR=",X
: If X=1 or X=2:Then
: Output(2,1,"1 or 2"
: Else:Output(2,1,"3 and UP"
: Pause
: ClrHome
HINWEIS:
11
Damit die ELSE Funktion funktioniert, muss man sie in Verbindung mit der
THEN Funktion einsetzen. Jedoch sind beide Funktionen insgesamt nicht sehr
effizient und können meistens ersetzt werden.
: ClrHome:Input "NMBR=",X
: If X=1 or X=2:Output(2,1,"1 or 2"
: If X=3:Output(2,1,"3 and UP"
: Pause:ClrHome
Diese verbesserte Version verbraucht zwei Zeilen weniger beim Programmieren und
arbeitet trotzdem genau gleich wie die obige Version.
STRING Funktion
Die STRING Funktion ist eine Unterfunktion der Variablen. Mit der STRING Funktion kann
man einzelne Wörter, Sätze und ganze Textabschnitte abspeichern. Sie wird in Verbindung
mit einer Eingabe eingesetzt und kann im Gegensatz zu Variablen ganze Textlinien, wie zum
Beispiel ‚Hans baut ein großes Haus‘ beinhalten und speichern. Man kann die STRING
Funktion unter VARS ➢ STRINGS ➢ 0: - 9: aufrufen. Hier ist ein einfaches Beispiel:
: ClrHome
: Input "NAME:",Str1
: Output(2,1,"NAME IS: "
: Output(3,1,Str1
: Stop
: End
GETKEY Funktion
Die GETKEY Funktion ist eine der meist gebrauchten Funktionen beim Programmieren.
Wusstest du, dass jede Taste auf dem GTR mit einer zugehörigen Nummer versehen ist?
Die GETKEY Funktion gleicht der INPUT Funktion, allerdings wartet die GETKEY Funktion
nicht auf eine Zahleingabe, sondern auf eine bestimmte Taste, die gedrückt werden muss.
Diese Funktion wird manchmal genutzt, um einen Cursor bewegen zu können oder in
Menüs Auswahlpunkte zu wechseln. Die GETKEY Funktion kann man unter
PRGM ➢ I/O ➢ 7: aufrufen. Sie wird zu 90% auf folgende Art und Weise eingesetzt:
: While 1
: getKey (variable A-Z)
: While (variable A-Z)=0
: getKey (variable A-Z)
: End
12
Es gibt außerdem noch ein Programm, das beim Drücken einer bestimmten Taste dessen
zugeteilte Nummer anzeigt. Dies ist sehr hilfreich, wenn man nicht gerade einen Spickzettel
neben sich liegen hat:
: While 1
: getKey A
: While A=0
: getKey A
: End
: Disp A
: End
Anstatt ständig Variablen zu benutzen, kann man gelegentlich auch die ANS Funktion
verwenden. Dies ist aber nur dann möglich, wenn der Wert die GETKEY Funktion nicht
wiederholt gebraucht wird. Trotzdem kann damit das Programm verkürzt werden.
Man muss nicht unbedingt immer den Buchstaben ‚A’ nehmen. Man kann alle möglichen
Buchstaben aus dem Alphabet verwenden. Hier ist ein einfaches Programm bei dem die
GETKEY Funktion benutzt wird:
: ClrHome
: For(A,0,1)
: getKey V
: While V=0
: getKey V
: End
: If V=41
: Disp "YOU PRESSED MATH"
: If V=42
: Disp "YOU PRESSED APPS"
: If V 41 or 42
: End
Hier ist die Auflösung: Der Bildschirm wird gelöscht und unter der Variablen ‘A’
wird der Wert 0 abgespeichert. Sollte der Rechner eine gedrückte Taste
registrieren und sollte diese Taste die MATH Taste sein, so wird der Text „YOU
PRESSED MATH“ angezeigt. Registriert er die APPS Taste, so wird der Text
„YOU PRESSED APPS“ angezeigt. Wird keine der beiden bzw. eine andere Taste
gedrückt, so passiert gar nichts. Da die FOR Funktion das Programm nochmal abspielen
lässt, nachdem bereits einmal eine beliebige Taste gedrückt wurde, tritt die END Funktion
erst im zweiten Durchlauf in Kraft, um den Programmablauf zu beenden. Beachte, dass
das Programm ohne LBL/GOTO Funktion viel übersichtlicher ist, auch wenn man bei der
Programmierung dafür weniger denken musste.
RAND, RANDINT, IPART und FPART Funktion
13
Manchmal muss der Rechner beim Ausführen eines Programmes automatisch eine
Auswahl zwischen zwei Zahlentypen treffen. Denn manchmal benötigt man eine einstellige
Zahl und manchmal die genaue Zahl mit den Dezimalen hintendran.
Die RAND Funktion wählt eine beliebige Zahl zwischen 0,0000000001 und 1 aus und zeigt
diese dann an. Diese ausgewählte Zahl kann man nach Bedarf verändern, wie man sie
gerade braucht. Zum Beispiel kann man sie mit 10 multiplizieren und 1 hinzuaddieren:
: 1+(rand*10)
Beim obigen Beispiel werden sowohl ganzzahlige, als auch Dezimalzahlen von 1 bis 11
angezeigt. Was soll man aber eingeben, wenn nur ganzzahlige Zahlen angezeigt werden
sollen?
: iPart(1+(rand*10))
Nun werden nur ganze Zahlen angezeigt. Was soll man aber eingeben, wenn nur die
Dezimalzahlen angezeigt werden sollen?
: fPart(1+(rand*10))
Um auf viel einfachere Art und Weise nur ganze Zahlen zwischen 1 und 10 anzeigen zu
lassen, gibt man folgendes ein:
: randInt(1,10)
Die RAND Funktion kann man unter MATH ➢ PRB ➢ 1: aufrufen.
Die RANDINT Funktion kann man unter MATH ➢ PRB ➢ 5: aufrufen.
Die IPART Funktion kann man unter MATH ➢ NUM ➢ 3: aufrufen.
Die FPART Funktion kann man unter MATH ➢ NUM ➢ 4: aufrufen.
LIST Funktion
Auf dem GTR sind bereits sechs Standardlisten (L1, L2, L3, L4, L5, L6) vorinstalliert. Diese
Listen kann man jedoch nicht für Programme, Diagramme oder Spielinformation nutzen,
um sie zu speichern, da sie mit hoher Wahrscheinlichkeit durch andere Programme, die
ebenfalls diese Listen verwenden, verändert werden können. Aus diesem Grund besteht die
Möglichkeit Listen selber zu erstellen und zu speichern. Diesen Listen muss man dann
einen vierstelligen Namen geben. Dabei darf man sowohl Zahlen, als auch Buchstaben
verwenden, wobei keine Zahl an erster Stelle des Namens der Liste stehen darf. Im
folgenden Beispiel wird dargestellt, wie man eine Liste erstellen kann:
: 10
14
dim(LTTRL)
Im obigen Beispiel bedeutet die 10 die Anzahl der freien Plätze in der Liste und „TTRL“ der
Name. Vor dem Namen steht ein nach unten gesetztes L, welches bedeutet, dass es sich
um eine Liste handelt. Die Funktion dim (engl: „dimension“) meint die freien Plätze der Liste.
Die dim Funktion kann man unter 2nd ➢ STAT ➢ OPS ➢ 3: aufrufen. Die L Funktion kann
man unter 2nd ➢ STAT ➢ OPS ➢ B: aufrufen. Die LIST Funktion kann man unter 2nd ➢
STAT ➢ 1: - 6: aufrufen. Alle anderen selbsterstellten Listen werden unter den
Standardlisten abgespeichert und können dort aufgerufen werden.
Um in Platz 1 der Liste TTRL zum Beispiel die Variable C einzuspeichern, geht man wie folgt
vor:
:C
TTRL(1)
L
Um wieder was Neues, angenommen die Variable B, in Platz 1 einspeichern zu können,
überschreibt man das Alte einfach (das wird z.B. gebraucht, um Highscores zu erstellen):
: LTTRL(1)
B
MATRIX Funktion
Die MATRIX Funktion ist im Grunde dasselbe wie die LIST Funktion, nur dass die
MATRIX Funktion im Gegensatz zur LIST Funktion sehr große Mengen an Informationen
speichern kann. Im folgenden Beispiel wird dargestellt, wie man eine ‚Matrix‘ erstellen kann:
: {2,3}
dim([A])
Die Zahlen 2 und 3 (Höhe x Breite) geben die Größe der ‚Matrix‘ an. *(A)+ ist der Name der
-1
‚Matrix‘. Die MATRIX Funktion kann man unter 2nd ➢ x ➢ 1: - 0: aufrufen.
AUFGABENÜBERSICHT
VERBESSERTES MENÜ:
Erstelle ein Menü, ohne die MENU Funktion zu benutzen. Das
Menü soll fünf Auswahlpunkte, einen Titel und ein
Auswahlcursor umfassen.
LAUFSPIEL:
Erstelle ein Spiel, bei dem der Benutzer einen Cursor
(Pi Symbol) auf dem Bildschirm bewegen kann, wenn er die
Pfeiltasten drückt. Wenn der Cursor ein Ende des Bildschirms
trifft, so soll der Cursor auf der anderen Seite des Bildschirms
wieder auftauchen. Trifft der Cursor auf ein ‚0‘ bei den
Koordinaten (1,1), so soll das Spiel beendet werden. Trifft er
auf ein ‚S‘, das jedes Mal aufs Neue woanders angezeigt
werden soll, so soll der Text „BONUS“ fünf Mal aufflackern und
10 Punkte sollen zum Spielstand (als Liste gespeichert)
hinzugerechnet werden. Danach soll das Spiel weiterlaufen.
3. THEMENBLOCK
15
CLRDRAW Funktion
Die CLRDRAW Funktion ist praktisch die gleiche Funktion wie die CLRHOME Funktion,
außer dass sie den Bildschirm des Koordinatensystems löscht und nicht den normalen.
Die CLRDRAW Funktion kann man unter 2nd ➢ PRGM ➢ 1: aufrufen.
TEXT Funktion
Die TEXT Funktion ist praktisch die gleiche Funktion wie die OUTPUT Funktion, außer dass
hier der Text auf dem Bildschirm des Koordinatensystems angezeigt wird. Außerdem hat
die TEXT Funktion im Gegensatz zur OUTPUT Funktion keine automatische Textumbruchfunktion. Auch ist der Bildschirm des Koordinatensystems in kleinere Kästchen (Pixel)
eingeteilt, als der normale Bildschirm. Er ist 62 Pixel hoch und 92 Pixel breit. Genauso wie
bei der OUTPUT Funktion ist der Anfang des Bildschirms bzw. die Koordinaten (0,0) links
oben. Die TEXT Funktion kann man unter 2nd ➢ PRGM ➢ 0: aufrufen. Im unteren Beispiel
wird dargestellt, wie der Text per TEXT Funktion auf dem Bildschirm des Koordinatensystems angezeigt wird:
: ClrDraw
: Text(0,0,"(0,0)"
: Text(50,0,"(50,0)"
: Text(0,50,"(0,50)"
: Text(50,50,"(50,50)"
LINE, TANGENT, VERTICAL und HORIZONTAL Funktion
Die HORIZONTAL und TANGENT Funktionen zeigen beide eine waagerechte Linie an. Die
VERTICAL Funktion zeigt eine senkrechte Linie an und die LINE Funktion zieht eine Gerade
von der ersten zur zweiten Koordinate.
HINWEIS:
Ändere zuerst die Einstellungen von WINDOW folgendermaßen:
Xmin=0
Xmax=94
Xscl=10
Ymin=0
Ymax=62
Yscl=10
Xres=1
Im folgenden Beispiel wird gezeigt, wie die einzelnen Funktionen eingesetzt werden:
Die HORIZONTAL Funktion kann man unter 2nd ➢ PRGM ➢ 3: aufrufen.
Die VERTICAL Funktion kann man unter 2nd ➢ PRGM ➢ 4: aufrufen.
Die TANGENT Funktion kann man unter 2nd ➢ PRGM ➢ 5: aufrufen.
Die LINE Funktion kann man unter 2nd ➢ PRGM ➢ 2: aufrufen.
: ClrDraw
: Horizontal 50
: Text(0,0,"HORIZONTAL"
: Pause
: ClrDraw
: Vertical 50
: Text(0,0,"VERTICAL"
: Pause
: ClrDraw
: Tangent(50,2,"TANGENT"
: Pause
: ClrDraw
: Line(10,20,40,30)
: Text(0,0,"LINE"
: Pause
: ClrDraw
16
SHADE Funktion
Wie der Name schon sagt, kann die SHADE Funktion bestimmte Teile des Bildschirms
schwärzen. Man kann die SHADE Funktion unter 2nd ➢ PRGM ➢ 7: aufrufen. Hier ist ein
Beispiel:
: ClrDraw
: ZStandard
: Shade(-10,5)
HINWEIS:
Die ZStandard Funktion stellt automatisch die Standardwerte vom
Bildschirm des Koordinatensystems wieder her:
Xmin=-10
Xmax=10
Xscl=1
Ymin=-10
Ymax=10
Yscl=1
Xres=1
CIRCLE Funktion
Die CIRCLE Funktion kann einen Kreis bei den angegebenen Koordinaten einzeichnen. Es
funktioniert folgendermaßen: Circle([X Koordinate vom Kreisursprung], [Y Koordinate
vom Kreisursprung], [Radius]). Da der Bildschirm eine Rechteckform besitzt, wird der
Kreis wie eine Ellipse aussehen, es sei denn man ändert die WINDOW Einstellungen:
Die CIRCLE Funktion kann man unter 2nd ➢ PRGM ➢ 9: aufrufen.
Xmin=0
Xmax=94
Xscl=1
Ymin=0
Ymax=62
Yscl=1
Xres=1
Hier ist ein Beispiel:
17
: ClrDraw
: Circle(20,20,12)
: Text(0,0,"CIRCLE"
Pt-On und Pt-Off Funktion
Die Pt-On Funktion streut eine bestimmt Anzahl an Punkten auf eine bestimmte Fläche des
Bildschirms. Die Pt-Off Funktion löscht die verstreuten Punkte wieder. Wenn man beim
Programmieren diese Punkte entfernen muss, so ist es besser die Pt-Off Funktion zu
verwenden, da diese den Bildschirm, im Gegensatz zur CLRDRAW Funktion, nicht
aufflackern lässt. Ändere zuerst die WINDOW Einstellungen folgendermaßen:
Xmin=0
Xmax=90
Xscl=10
Ymin=0
Ymax=90
Yscl=10
Xres=1
Hier ist ein Programm, das zeigt, wie man die Pt-On Funktion einsetzten muss:
: ClrDraw
: For(A,0,90)
: randInt(1,90)
: Pt-On(X,A)
: End
X
Dieses Programm zeigt insgesamt neunzig Punkte an irgendwelchen Stellen auf der Fläche
zwischen (0,0) und (90,90) an. Die Pt-On und Pt-Off Funktion kann man unter
2nd ➢ PRGM ➢ POINTS ➢ 1: und 2: aufrufen.
NESTED LOOPS Funktion
NESTED LOOPS sind zwei ineinander programmierte Funktionsabläufe, zum Beispiel die
FOR und WHILE Funktionen, die zusammen arbeiten. Das ist eine sehr nützliche Methode,
wenn ein bestimmter Prozess immer und immer wieder abgespielt werden soll.
AUFGABENÜBERSICHT
KREISPROGRAMM: Erstelle ein Programm, welches einen Kreis zeichnet, ohne dabei die
CIRCLE Funktion zu benutzen. Der Kreis soll immer größer werden.
Insgesamt sollen nicht mehr als 10 Zeilen zur Programmierung
benötigt werden. Außerdem sollen mindestens zwei verschiedene
Funktionstypen mit derselben Funktion benutzt werden. Versuche
zuerst dieses Programm zu erstellen, bevor du fortfährst.
AUFGABENÜBERSICHT
18
Du hast gelernt zu programmieren! Versuche nun folgende Programme zu erstellen:





Ein Ratespiel mit verschiedenen Levels, bei dem der Benutzer eine Zahl erraten
muss, die vorher willkürlich vom Rechner ausgewählt wurde.
Ein Kampfspiel mit einer Lebensanzeige, einem Laden, verschiedenen Gegnern,
Waffen, Panzerungsanzeige, Graphiken und Animationen.
Ein Programm, das den Benutzer nach den Variablen A, B und C fragt und dann mit
der Mitternachtsformel die x-Stellen ausrechnet und anzeigt.
Ein Divisionsprogramm, das den Rechenweg, die Antwort und den Rest anzeigt.
Ein Umrechnungsprogramm, das - Fahrenheit in Celsius
- Celsius in Fahrenheit
- Zentimeter in Zoll
- Zoll in Zentimeter umrechnen kann.
Copyright © 1996-2010, the ticalc.org project. Alle Rechte vorbehalten.

Documents pareils