2.2.1.11. Eingabeanweisungen |
![]() |
Die Tastatur ist beim TI-85 die einzige Schnittstelle
zwischen Anwender und Rechner. Um in Programmen aktiv den Programmverlauf und die Ausgaben
bestimmen zu können, bedarf es Eingabeanweisungen, mit denen der Nutzer beispielsweise
eine gewünschte (analytische) Funktion oder einen Wert zur Bearbeitung eingeben kann.
In TI-85 BASIC gibt vier verschiedene Eingabeanweisungen, deren Anwendung im
Folgenden erklärt wird:
Input
Der Input- Befehl hat verschiedene Funktionen, die von den
Argumenten abhängen, welche man ihm übergibt. Grundsätzlich können mit dem "Input" Befehl nur numerische Werte
eingegeben und in Variablen der Datentypen REAL, LIST, CPLX,
VECTR oder MATRX gespeichert werden. Auch Ausdrücke können
eingegeben werden. Diese werden zunächst berechnet und das Ergebnis wird gespeichert.
Wenn eine Funktion eingegeben wird, versucht der Rechner den aktuellen Wert aller
Funktionsvariablen zu ermitteln, rechnet den Funktionswert aus und speichert diesen als REAL Variable. Tauchen jedoch in der Funktion
unbekannte Variablen auf, so tritt eine Fehlermeldung auf.
Sollen Zeichenketten abgefragt werden, kann die "Input" Anweisung nicht verwendet werden, da es sonst zur Fehlermeldung "ERROR 14 UNDEFINED" kommt.
Hinweis: Während der Rechner auf die Eingabe des Wertes wartet, wird die Programmausführung angehalten. Nachdem der Wert eingegeben wurde, muss dieser mit der [Enter] Taste bestätigt werde und die Programmausführung wird wieder aufgenommen.
:Input | Ohne weitere Argumente, veranlasst "Input", dass der aktuelle Graph angezeigt wird und die Programmausführung anhält. Die Cursor Tasten können freibewegt werden. Nach einem Drücken der [ENTER] Taste, wird das Programm weiter ausgeführt. |
:Input [Bezeichner] | In dieser Form fordert "Input" zur Eingabe eines Wertes auf, welcher dann in einer Variable mit dem übergebenen Bezeichner gespeichert wird. |
:Input [Zeichenfolge], [Bezeichner] | Die vom Nutzer definierte Zeichenkette wird angezeigt und ein Wert eingelesen, welcher mit [ENTER] übergeben wird. |
Beispiele:
Anweisung | Ausgabe | Variable | |||
:Input BREITE | ? | ||||
?3.656 [ENTER] |
|
||||
:Input "Zensuren? ",ZENS | Zensuren? | ||||
Zensuren? {3,2,1,4} [ENTER] |
|
||||
:Input "Gib einen Vektor ein! ",V | Gib einen Vektor ein! | ||||
Gib einen Vektor ein! [1,2,3] [ENTER] |
|
Diese Anweisung ist das zeichenketteneinlesende Äquivalent
zum "Input" Befehl. D.h.
alle mit "InpSt"
eingegebenen Werte und Zeichen werden in einer Variablen des Datentyps STRGN gespeichert. Diese Anweisung ist vor allem
für die Eingabe von analytischen Funktionen bestimmt, die danach mit dem Befehl St>Eq
in Funktionsvariablen vom Datentyp EQU kovertiert werden können.
Die Anwendung der "Input" Anweisung ist ähnlich wie bei "Input":
:InpSt [Bezeichner] | Es wird zur Eingabe eines Zeichens oder einer Zeichenkette aufgefordert, welche unter dem angegebenen Bezeichner als STRGN Variable gespeichert wird. |
:InpSt [Zeichenfolge], [Bezeichner] | Die angegebene Zeichenfolge wird angezeigt und fordert zur Eingabe einer Zeichenkette oder Funktion auf, welche dann als STRGN gespeichert wird. |
Beispiele:
Anweisung | Ausgabe | Variable | |||
:InpSt ZAHL | ? | ||||
?3355 |
|
||||
:InpSt "Funktion f(x)= ",F | Funktion f(x)= | ||||
Funktion f(x)= x2+3 |
|
||||
:InpSt "Erste Ableitung von f: ",EF | Erste Ableitung von f: | ||||
Erste Ableitung von f: 2*x |
|
Der Prompt Befehl hat eine ähnliche Funktion wie Input, jedoch kann er mehrere Variablen hintereinander einlesen und speichern.
Für die möglichen Datentypen eingelesener Variablen gelten die selben Bedingungen wir
für den Input Befehl, d.h.
Zeichenketten und Funktionen können nicht eingegeben werden, wohl aber Ausdrücke,
Listen, Vektoren usw.
Mit Prompt können beliebig
viele Variablen eingelesen werden. Die Anzahl wird nur vom verfügbaren Speicherplatz
begrenzt.
:Prompt [Bezeichner1], [Bezeichner2], ..., [BezeichnerN] |
Beispiele:
Anweisung | Ausgabe | Variable | ||||||||||||
:Prompt BREITE, LAENGE, HOEHE | BREITE=? LAENGE=? HOEHE=? |
|||||||||||||
BREITE=?5 LAENGE=?6 HOEHE=?7 |
|
|||||||||||||
:Prompt Vektor1, Vektor2, Vektor3 | Vektor1=? Vektor2=? Vektor3=? |
|||||||||||||
Vektor1=?[1,2,3] Vektor2=?[4,5,6] Vektor3=?[7,8,9] |
|
Hinweis: Da es beim Prompt Befehl nicht die Möglichkeit gibt, eine Zeichenfolge anzeigen zu lassen, welche den einzulesenden Wert definiert, sollten die Variablen entsprechend aussagefähige Bezeichner haben. Speicherfreundlicher und effektiver ist allerdings eine Verwendung des Disp Befehls, um vorher den Anwender zu informieren, welche Variablen eingelesen werden.
Beispiele:
Anweisung | Ausgabe |
:Disp "Gib 5 Vektoren
ein!" :Prompt V1,V2,V3,V4,V5 |
Gib 5 Vektoren ein! V1=? V2=? V3=? V4=? V5=? |
Jede Taste des TI-85 besitzt einen bestimmten
Wert, welcher mit der Funktion getKy ermittelt wird. Sie gibt den Wert der zuletzt gedrückten Taste zurück.
Wenn keine Taste gedrückt wurde, ist der zurückgegebene Wert gleich 0.
Die "ON" Taste hat,
als einzige keinen Wert, da sie die Abarbeitung von Programmen auf jeden Fall abbricht und
daher nicht anderweitig verwendet werden kann.
Die Funktion wird vor allem
verwendet, um in laufenden Schleifen (auch in Endlosschleifen) neue Anweisungen oder auch
das Beenden der Schleife einzuleiten.
Häufigste Anwendung von getKy sind sicherlich Spiele, in denen die Funktion genutzt wird um eine Figur auf
dem Display zu bewegen.
Anwendung in TI-85 BASIC
:getKy®[Bezeichner] oder :If getky==[Vergleichswert] :Then :[Anweisungen] :End oder :If getky ¹ [Vergleichswert] :Then :[Anweisungen] :End |
Hinweis: Die Funktion getKy überprüft unmittelbar nach ihrem Aufruf die zuletzt gedrückte Taste. Wenn danach eine bedingte Anweisung folgt, die je nach Wert der gedrückten Taste unterschiedliche Anweisungen ausführt, so ist es sinnvoll den getKy Wert einer Variablen zu übergeben und nicht direkt zu überprüfen. Bei jedem Vergleich würde sonst getKy erneut abgefragt werden und dann den Wert 0 enthalten.
Beispiel 1:
Das wird nicht funktionieren: Die Anweisungen für Wert3 würden nur dann ausgeführt werden, wenn die Taste zufällig unmittelbar vor der dritten bedingten Anweisung gedrückt werden würde. So aber passiert nach einem Drücken der Taste wahrscheinlich nichts und sie müsste mehrmals betätigt werden . |
||||||||||||||||||
|
||||||||||||||||||
Durch eine Zuweisung des Wertes von getKy zu der Variablen TASTE, wird der Wert gespeichert und beliebig oft
für Vergleichsoperationen genutzt werden. Die Anweisungen der zweiten bedingten Anweisungen werden jetzt sofort nach einem Drücken der entsprechenden Taste ausgeführt. |
||||||||||||||||||
|
Beispiel 2:
|
||||||
|
Übersicht der Werte einzelnder Tasten: