2. Bedingungen und Schleifen
In dieser Lektion erhalten Sie
Informationen über:
Schreiben von Programmen, die verschiedene
Anweisungen ausführen, je nachdem, ob eine
oder mehrere logische Bedingungen gelten.
Schreiben von Programmen, die
Anweisungen wiederholen, bis
ein bestimmtes Ereignis auftritt.
3. Bedingungen in Small Basic-Programmen
Möchten Sie Bedingungen angeben, die steuern, wie Ihr Programm ausgeführt
wird (oder ob es überhaupt ausgeführt wird)?
Werfen wir einen Blick auf das
folgende Programm:
Dieses Programm weist den Computer an, „Frohes Neues Jahr“
anzuzeigen, wenn gerade der 1. Januar ist.
Beachten Sie, dass dieses Programm die Schlüsselwörter If, Then und
EndIf enthält.
4. Bedingungen in Small Basic-Programmen
Schreiben wir jetzt ein Programm,
bei dem eine andere Aktion
vorgeschrieben wird, wenn
die Bedingung nicht erfüllt ist.
Je nachdem, wann Sie das Programm ausführen, zeigt
der Computer eines der folgenden Ergebnisse an:
5. Bedingungen in Small Basic-Programmen
Beim Programmieren führen verschiedene Wege zum Ziel. Sie als Programmierer
haben die Wahl.
Sie haben in diesem Beispiel
wahrscheinlich bemerkt, dass
die zweite Bedingung in dem
Programm viele der Informationen
der ersten Bedingung wiederholt.
Reduzieren wir diese
Wiederholungen durch Einführen
des Schlüsselworts Else.
Beide Programme geben dasselbe Ergebnis, Sie können jedoch weniger
If-, Then- und EndIf-Schlüsselwörter verwenden, wenn Sie das Schlüsselwort
Else verwenden.
6. Bedingungen in Small Basic-Programmen
Betrachten wir ein weiteres Beispiel...
Beachten Sie die Verwendung
von If, Then, Else und EndIf
in dem Programm.
Sie schreiben ein komplexes
Programm und wollen prüfen,
ob der Benutzer eine gerade
oder eine ungerade Zahl
eingegeben hat.
7. Bedingungen in Small Basic-Programmen
Wenn Sie ein Programm schreiben, können Sie mit dem Schlüsselwort ElseIf
beliebig viele Bedingungen angeben. Sie können auch eine oder mehrere
auszuführende Operationen angeben, je nachdem, welche Bedingung bei
Ausführung des Programms erfüllt ist.
Schauen wir uns dies
anhand eines Beispiels an.
In diesem Beispiel enthält jede
Bedingung eine eindeutige
Anweisung, die der Computer
evaluiert. Wenn der Computer
feststellt, dass eine Bedingung
erfüllt ist, führt der Computer
die Operation für diese
Bedingung durch und fährt
bis zum Ende fort.
8. Schleifen in Small Basic-Programmen
Mit einer Schleife können Sie den
Computer anweisen, eine oder
mehrere Anweisungen mehr als
einmal auszuführen.
Mit einer For (Für)-Schleife können
Sie angeben, wie oft der Computer
die Anweisungen wiederholen soll.
Mit einer While (Während)Schleife können Sie angeben, dass
das Programm die Anweisungen
wiederholen soll, bis eine
bestimmte Bedingung erfüllt ist.
Sehen wir uns jetzt einige
Schleifenanweisungen an…
9. Schleifen in Small Basic-Programmen
Beginnen wir mit einem Programm, das eine For..EndFor-Schleife enthält.
Im Allgemeinen verwenden Sie eine For..EndFor-Schleife, um Code eine
bestimmte Anzahl von Malen durchlaufen zu lassen. Zur Verwaltung dieser
Art von Schleife erstellen Sie eine Variable, die nachverfolgt, wie oft die
Schleife ausgeführt wurde.
Klicken Sie auf die Schaltfläche
in der Symbolleiste.
In diesem Beispiel enthält die Variable einen Wert, der bei jedem
Schleifendurchlauf um eins erhöht wird.
10. Schleifen in Small Basic-Programmen
Verwenden wir dieses Konzept zum Druck der Multiplikationstabelle der Zahl 5.
11. Schleifen in Small Basic-Programmen
Im vorigen Beispiel wird der Wert der
Zählvariablen in einer For-Schleife bei
jedem Durchlauf um eins erhöht. Mit
dem Schlüsselwort Step können Sie
den Wert um eine andere Zahl erhöhen.
So können Sie etwa
mit dem folgenden Code
den Wert um 2 erhöhen:
12. Schleifen in Small Basic-Programmen
Wenn Sie vor dem Schreiben eines Programms die Zahl der Schleifen nicht
kennen, können Sie eine While-Schleife anstelle einer For-Schleife verwenden.
Wenn Sie eine While (Während)-Schleife
erstellen, geben Sie eine Bedingung an,
die erfüllt ist, wenn die Schleife beginnt.
Der Computer evaluiert die Bedingung
jedoch bei jeder Wiederholung der
Schleife. Wenn die Bedingung nicht mehr
erfüllt ist, wird die Schleife angehalten.
Wir illustrieren die
While-Schleife mit dem
folgenden Programm:
13. Fassen wir zusammen…
Herzlichen Glückwunsch! Sie haben
Folgendes gelernt:
Schreiben von Programmen, die logische Bedingungen evaluieren
und auf der Grundlage der Ergebnisse Operationen ausführen.
Schreiben von Programmen, die eine oder mehrere Operationen
entweder eine bestimmte Anzahl von Malen oder auf der Grundlage
einer logischen Bedingung ausführen.
14. Zeigen Sie, was Sie wissen
Erstellen Sie ein Programm, das ein oder mehrere
Testergebnisse von Studenten von einem
Prozentsatz in eine durch Buchstaben bezeichnete
Note umwandelt. Fordern Sie den Benutzer zuerst
auf, anzugeben, wie viele Noten berechnet werden
sollen. Fordern Sie ihn dann auf, den ersten
Prozentsatz einzugeben, und wandeln Sie ihn dann
auf der Grundlage der folgenden Kriterien in eine
Buchstabennote um:
Wenn der Prozentsatz über 75 liegt,
in A umwandeln.
Wenn der Prozentsatz unter 75 liegt,
jedoch größer oder gleich 60 ist, in B
umwandeln.
Wenn der Prozentsatz unter 60 liegt,
jedoch größer oder gleich 35 ist, in C
umwandeln.
Wenn der Prozentsatz unter 35 liegt,
in D umwandeln.
Notas del editor
In Small Basic verwenden Sie das Clock (Uhr)-Objekt, um die aktuelle Uhrzeit und das aktuelle Datum zu bestimmen. Mit dem If-Schlüsselwort geben Sie eine Bedingung an, die der Computer evaluiert, um zu bestimmen, ob eine bestimmte Operation durchgeführt werden soll. Mit dem Then-Schlüsselwort geben an, welche Operation(en) der Computer durchführen soll, wenn die Bedingung erfüllt ist. Wenn die Bedingung nicht erfüllt („False“) ist, übergeht der Computer die Operation und geht zur nächsten Programmzeile über. Mit dem EndIf-Schlüsselwort geben Sie an, dass der Computer zur nächsten Programmzeile übergehen soll, unabhängig davon, on die Bedingung erfüllt war.In diesem Beispiel geben Sie mit dem Schlüsselwort If die Bedingung an, dass heute der erste Tag des ersten Monats des Jahres (Januar) ist. Mit dem Schlüsselwort Then geben Sie an, dass, wenn heute der erste Tag des ersten Monats ist, der Computer die Operation WriteLine ausführen soll. Wenn heute nicht der erste Tag des ersten Monats ist, soll der Computer die Operation übergehen und zur EndIf-Zeile des Programms weitergehen.Code:If Clock.Day = 1 And Clock.Month = 1 ThenTextWindow.WriteLine(„FrohesNeuesJahr“)EndIf
Code:If Clock.Hour < 12 thenTextWindow.WriteLine(„Haben Sie schon gefrühstückt?“)EndIfIf Clock.Hour > 12 thenTextWindow.WriteLine(„Haben Sie schon zu Mittag gegessen?“)EndIf
In diesem Programm geben Sie eine Bedingung und eine Operation an, die ausgeführt werden soll, wenn die Bedingung erfüllt ist. Dann geben Sie eine zweite Bedingung und eine zweite Operation an, die ausgeführt werden soll, wenn die zweite Bedingung erfüllt ist. Die erste Bedingung ist jedoch nur erfüllt, wenn die zweite Bedingung nicht erfüllt ist, und die zweite Bedingung ist nur erfüllt, wenn die erste Bedingung nicht erfüllt ist. Sie müssen daher die zweite Bedingung nicht angeben, da der Computer allein auf der Grundlage der ersten Bedingung bestimmen kann, welche Operation ausgeführt werden soll. Anstatt dem Computer zwei Bedingungen zur Evaluierung zu geben, können Sie den Computer anweisen, die erste Operation auszuführen, wenn die erste Bedingung erfüllt ist, und die zweite Operation auszuführen, wenn die erste Bedingung nicht erfüllt ist. Beide Vorgehensweisen führen zu demselben Ergebnis. Dieses Beispiel zeigt, dass beim Programmieren verschiedene Wege zum Ziel führen. Das entscheiden Sie allein!Code:If Clock.Hour < 12 ThenTextWindow.WriteLine(„Haben Sie schon gefrühstückt?“)ElseTextWindow.WriteLine(„Haben Sie schon zu Mittag gegessen?“)EndIf
In diesem Programm verwenden Sie zuerst die Operation WriteLine zur Anzeige von „Multiplikationstabelle“ auf dem Bildschirm.Dann erstellen Sie die Variablen „Zahl“ zum Speichern des Werts 5.Dann erstellen Sie eine For-Schleife mit der Variablen „a“, um sicherzustellen, dass die WriteLine-Operation zehn Mal ausgeführt wird.Mit der Operation WriteLine zeigen Sie die folgenden Elemente in dieser Reihenfolge an:--den Wert, der in der Variablen „a“ gespeichert ist--das Multiplikationszeichen--den Wert, der in der Variablen „Zahl“ gespeichert ist--das Gleichheitszeichen--die Produkte der Werte der Variablen „a“ und „Zahl“Code:TextWindow.WriteLine(„Multiplikationstabelle“)Zahl = 5For a = 1 to 10TextWindow.WriteLine(a + „ x “ + Zahl + „ = “ + a * Zahl)EndFor
Sie können sogar den Wert der Schleifenvariablen bei jeder Codausführung senken, wenn Sie das Schlüsselwort Step verwenden, jedoch eine negative Zahl angeben. Sie können etwa ein Programm schreiben, das abwärts von 10 bis 1 auf dem Bildschirm zählt, wenn Sie dem Schlüsselwort den Wert Step zuweisen.Code:TextWindow.WriteLine(„Ungerade Zahlen mit 5 multiplizieren:“)Zahl = 5For a = 1 to 10 Step 2TextWindow.WriteLine(a + „ x “ + Zahl + „ = “ + a * Zahl)EndFor
In diesem Beispiel erstellen Sie zuerst die Variable „a“ und setzen ihren Wert auf 10. Anschließend erstellen Sie eine While-Schleife mit der Bedingung, dass der Wert der Variablen „a“ kleiner oder gleich 100 ist. Da Sie gerade den Wert der Variablen auf 10 gesetzt haben, ist die Bedingung bei Beginn der Schleife erfüllt.Mit der Operation WriteLine zeigen Sie bei jedem Schleifendurchlauf den Wert der Variablen „a“ an.In der nächsten Anweisung erhöhen Sie den Wert der Variablen „a“ bei jedem Schleifendurchlauf um 10.Die Schleife stoppt nach 10 Ausführungen, da der Wert der Variablen „a“ größer als 100 wird. Code:a = 10While (a <= 100)TextWindow.WriteLine(a)a = a +10EndWhile
Lösung:TextWindow.Write(„Wie viele Studentennoten möchten Sie berechnen?“)Zahl = TextWindow.Read()n = 1While n <= ZahlTextWindow.Write(„Wie groß ist der Prozentsatz der Studenten?“)Prozentsatz = TextWindow.Read()If Prozentsatz >= 75 ThenTextWindow.WriteLine(„Die Note des Studenten ist A?“)ElseIf Prozentsatz < 75 And Prozentsatz >= 60 ThenTextWindow.WriteLine(„Die Note des Studenten ist B“)ElseIf Prozentsatz < 60 And Prozentsatz >= 35 ThenTextWindow.WriteLine(„Die Note des Studenten ist C“)ElseTextWindow.WriteLine(„Die Note des Studenten ist D“)EndIfn = n + 1EndWhile