For Laufvariable,
Anfangswert,
Endwert
[,Inkrement]
Anweisungen EndFor |
Die Laufvariable
dient als Zähler, der Anfangswert
enthält den Wert der Laufvariablen zu Beginn des ersten Schleifendurchlaufs,
der Endwert enthält jenen Wert,
bei dem die Schleife zum letzten Mal durchlaufen wird. Will man den Zähler
um einen anderen Wert als
1 (=Eins) erhöhen, kann man dies
mit Hilfe des Parameters Inkrement
durchführen. Das Inkrement darf übrigens auch negativ sein -
in diesem Fall muss der Anfangswert natürlich größer als
der Endwert sein. Einige Beispiele sollen dies verdeutlichen:
Dieser Programmkode führt | zu folgender Ausgabe |
For i, 1, 5
Disp i EndFor |
|
For i, 2, 10, 2
Disp i EndFor |
|
For i, 100, 200, 20
Disp i EndFor |
|
For i, 20, 10, -2
Disp i EndFor |
Nachdem der Benutzer eine natürliche Zahl n eingegeben hat, soll das Programm die Summe |
Wir wählen für die Zahl,
bis zu der summiert werden soll, den Variablennamen n, für
die Laufvariable den Namen i und für die zu berechnende Summe
den Namen summe. Alle Variablen sollen lokale Variablen sein.
|
add
()
Prgm Local summe, n, i ClrIO EndPrgm |
Für das Einlesen der Zahl n
hätten wir diesmal gerne etwas mehr Komfort. Der Befehl Request
AuffordString,
Var
erzeugt ein Dialogfeld für die Dateneingabe. AuffordString
hat die gleiche Funktion wie beim Befehl
Input, darf hier aber höchstens
20 Zeichen betragen.
|
...
ClrIO Request "natürliche Zahl", n For i, 1, n EndFor
|
In dieser Schleife durchläuft
die Laufvariable i alle Werte von 1 bis n.; d.h. beim
ersten Durchlauf hat i den Wert 1, bei zweiten Durchlauf
hat i den Wert 2, etc. Wenn es uns also gelingt bei jedem
Schleifendurchlauf den Wert von i zur Variable summe zu addieren,
sollte am Ende in der Variable summe tatsächlich die gewünschte
Summe aller natürlicher Zahlen kleiner gleich n enthalten sein.
Wir müssen also in jedem Durchlauf der Variablen summe den
Wert der Variablen summe plus dem Wert der Laufvariablen i
zuweisen. Eine Wertzuweisung am TI-92
erfolgt mit Hilfe des Zuordnungspfeiles, der mit der -Taste
erzeugt werden kann.
|
...
For i, 1, n summe + i ® summe EndFor EndPrgm |
||
|
Hast du alles genauso eingebeben, wie oben beschrieben, solltest du nun folgende Fehlermeldung am TI-Bildschirm sehen:
Es ist also ein Bereichsfehler aufgetreten.
Betätigt man im obigen Fehler-Dialogfeld die -Taste,
wird der Programmeditor geladen, und der Cursor blinkt an jener Stelle,
die diese Fehlermeldung verursacht hat. In unserem Fall rechts vom n
in der Zeile For i,1,n. Die Ursache
für die Fehlermeldung liegt beim Befehl Request, da dieser
die eingelesene Variable Var (in unserem Fall n) immer als
String anlegt. Wie wir bereits wissen kann mit einem String nicht gerechnet
werden; wir müssen diesen zunächst in eine Zahl verwandeln. Der
TI-92 stellt dafür den Befehl expr()
zur Verfügung.
|
...
Request "natürlicheZahl: ", n expr(n) ® n For i, 1, n ... |
||
|
Verantwortlich für diese Fehlermeldung
ist diesmal die Zeile
|
..
Request "natürlicheZahl: ", n expr(n) ® n 0 ® summe For i, 1, n ... |
|
Was ist nun schon wieder passiert?
Offensichtlich hat der TI-92 eine Berechnung durchgeführt - er meldet
dies durch die Bildschirmausgabe
Done. Aus irgendeinem Grund will
er uns aber das Ergebis nicht anzeigen. Es liegt also nahe zu überprüfen,
ob unser Programm überhaupt einen Befehl für die Ausgabe der
Berechnung enthält. Da dies nicht der Fall ist, ergänzen wir
die entsprechende Zeile und nun sollte das Programm wie gewünscht
funktionieren:
|
...
EndFor Disp summe EndPrgm |
|
Fehler in der Art wie sie soeben beschrieben wurden, werden dir - zumindest am Anfang - immer wieder passieren. Sie gehören zum Lernprozess einfach dazu. Es ist wichtig, dass du lernst die Fehlermeldungen zu analysieren und richtig darauf zu reagieren; d.h. tritt eine neuartige Fehlermeldung auf, erkundigt man sich zunächst im Anhang des Handbuch über die Bedeutung dieser Meldung.
[Lösungsvorschlag]
|
For Laufvariable,
Anfangswert,
Endwert
[,Inkrement]
Anweisungen For Laufvariable, Anfangswert, Endwert [,Inkrement] Anweisungen EndFor Anweisungen EndFor |
Am Bildschirm soll der Buchstabe X in der folgenden Form ausgegeben werden, wobei es dem Benutzer möglich sein soll, die "Breite" des Buchstabens anzugeben:
|
|
letterx()
Prgm Local b ClrIO Request "Breite", b expr(b) ® b ClrIO EndPrgm |
Für die Ausgabe brauchen wir
die Möglichkeit einer positionierten Ausgabe - diese ermöglicht
uns der Befehl
Der TI-92-Bildschirm hat bekanntlich
eine Auflösung von 240x105 Pixel. Damit ergeben sich folgende Koordinaten
für die vier Eckpunkte:
Beachte, dass der Ursprung hier links oben liegt und nicht, wie vom Kartesischen Koordinatensystem gewohnt, links unten. |
Der TI-92 verwendet für die Darstellung eines Zeichens 7x5 Pixel. Siehe folgende Beispiele:
Lässt man zwischen je zwei Buchstaben
ein Pixel als Zwischenraum könnten also pro Zeile intDiv(240,6)=40
Zeichen und pro Spalte intDiv(105,8)=13 Zeichen dargestellt werden (Die
Funktionsweise des Befehls intDiv kann im Handbuch nachgeschlagen werden).
Da aber 0 Pixel Abstand vom Bildschirmrand die Lesbarkeit der ausgegebenen
Texte stark beeinträchtigen würde, setzt der Befehl
Die Ausgabe des ersten Balkens von
unserem "X" lässt sich durch folgenden Code bewerkstelligen:
For i, 0, 11
For j, 1, b Output i * 8, (i + j) * 7, "*" EndFor EndFor |
Hier wird zunächst in der äußere
Schleife das i auf 0 gesetzt und danach in der innere Schleife
das j von
1 bis b abgearbeitet, danach wird in der äußeren
Schleife das i auf 1 gesetzt und dann in der innere Schleife
wiederum das j von 1 bis b abgearbeitet; usw.
|
|
|
Lösungsvorschlag |
[Lösungsvorschlag]
[Lösungsvorschlag] |
|