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.