2.2.1.11. Eingabeanweisungen

Nächste Seite

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]
Name:BREITE Typ:REAL Wert:3,656
:Input "Zensuren? ",ZENS Zensuren?  
  Zensuren? {3,2,1,4} [ENTER]
Name:ZENS Typ:LIST Wert:{3,2,1,4}
:Input "Gib einen Vektor ein! ",V Gib einen Vektor ein!  
  Gib einen Vektor ein! [1,2,3] [ENTER]
Name:V Typ:VECTR Wert:[1,2,3]

 

InpSt ( Input String)

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
Name:FU Typ:STRGN Wert:"3355"
:InpSt "Funktion f(x)= ",F Funktion f(x)=  
  Funktion f(x)= x2+3
Name:F Typ:STRGN Wert:"x2+3"
:InpSt "Erste Ableitung von f: ",EF Erste Ableitung von f:  
  Erste Ableitung von f: 2*x 
Name:EF Typ:STRGN Wert:"2*x"

 

Prompt

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
Name Typ Wert
BREITE REAL 5
LAENGE REAL 6
HOEHE REAL 7
:Prompt Vektor1, Vektor2, Vektor3 Vektor1=?
Vektor2=?
Vektor3=?
 
  Vektor1=?[1,2,3]
Vektor2=?[4,5,6]
Vektor3=?[7,8,9]
Name Typ Wert
Vektor1 VECTR [1,2,3]
Vektor2 VECTR [4,5,6]
Vektor3 VECTR [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=?

 

getKy (get Key)

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 .
Anweisungen Wert von getKy nach Ausführung der Anweisung
:[Beginn Schleife] 0
[Taste wird gedrückt, Wert3] Wert3
:If getKy==[Wert1] :Then :[Anweisungen] :End 0
:If getKy==[Wert2] :Then :[Anweisungen] :End 0
:If getKy==[Wert3] :Then :[Anweisungen] :End 0
:[Ende der Schleife]  
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.
Anweisungen Werte nach Ausführung der Anweisung
TASTE=0 TASTE=0, getKy=0
:[Beginn Schleife] TASTE=0, getKy=0
[Taste wird gedrückt, Wert2] TASTE=0, getKy=Wert2
:getKy®TASTE TASTE=Wert2, getKy=0
:If TASTE==[Wert1] :Then :[Anweisungen] :End TASTE=Wert2, getKy=0
:If TASTE==[Wert2] :Then :[Anweisungen] :End TASTE=Wert2, getKy=0
:If TASTE==[Wert3] :Then :[Anweisungen] :End TASTE=Wert2, getKy=0
:[Ende der Schleife]  

Beispiel 2:

Aufgabe: Eine Zählschleife erstellt eine Tabelle, die das kleine 1x1 enthält. Durch Drücken der Exit Taste soll die Schleife jederzeit unterbrochen werden können, bevor die Tabelle erstellt ist.
:ClLCD
:For(I,1,5)
:For(I2,1,5)
:Outpt(I,1+(I2-1)*4,I*I2)
:If getKy==22 :Stop
:End :End

Beispiel 3

 

Übersicht der Werte einzelnder Tasten:

tasten.gif (27052 Byte)