________________________________________________________________________________
Inhalt....: if-Anweisungen in MuPAD
Kategorie.: Handwerkskasten
Mathematik: Programmierung
MuPAD.....: 3.0.0
Datum.....: 2002-08-14
Autoren...: Kai Gehrs <acrowley@mupad.de>
Funktionen: if, then, else, elif, random
________________________________________________________________________________
Elementare MuPAD-Funktionen:
if-Anweisungen in MuPAD
Zu den elementarsten Konzepten der imperativen Programmierung gehören die if-Anweisungen.
Der Umgang mit if-Anweisungen in MuPAD soll im folgenden beschrieben werden.
Die Syntax von if-Anweisungen und ihre Verwendung in MuPAD wollen wir nicht
allgemein auf technische Weise beschreiben (eine solche Beschreibung findet
sich in dem offiziellen MuPAD Tutorium, welches durch einen Maus-Klick auf
das Buchsymbol in der obigen Befehlsleiste einsehbar ist), sondern an Beispielen
kennenlernen.
Wir wollen testen, ob eine zufällig erzeugte Zahl aus dem Bereich von 1 bis
1000 eine gerade Zahl ist. Zufallszahlen aus dem Bereich von 1 bis 1000
erzeugen wir uns wie üblich:
Zufall:= random(1..1000):
Um zu testen, ob eine Zahl a gerade ist, rechnen wir a mod 2. Ist das Ergebnis
0, so ist a eine gerade Zahl, ist das Ergebnis 1, so ist a eine ungerade Zahl.
Den Test, ob eine Zahl gerade oder ungerade ist, wollen wir mit Hilfe einer
if-Anweisung durchführen:
a:= Zufall():
if a mod 2 = 0 then
print(Unquoted, "a = ". a ." ist eine gerade Zahl"):
end_if:
a = 564 ist eine gerade Zahl
(Da MuPAD im Fall, dass a eine ungerade Zahl ist, nichts ausgibt, kann es
sein, dass man die obige Eingabezeile einige Male ausführen muss, bis
tatsächlich eine Ausgabe erscheint. Zu näheren Informationen zum Gebrauch
des Befehls print verweisen wir auf das Notebook print-Anweisungen des
Handwerkskastens)
Bei einer if-Anweisung müssen wir immer zunächst eine Bedingung, in unserem
Fall die Bedingung a mod 2 = 0, angeben. Falls die Bedinung erfüllt ist, so
soll MuPAD etwas ganz bestimmtes tun - in unserem Fall, wenn die Zufallszahl
a gerade ist, soll MuPAD uns dieses mitteilen, d.h. die Ausgabe
a = ... ist eine gerade Zahl
produzieren. Ist die Bedingung nicht erfüllt, so tut MuPAD nichts.
Eine if-Anweisung schließen wir immer mit der Zeile "end_if" ab. Man kann
auch abkürzend nur "end" schreiben, was aber im Kontext von ganzen
Programmen der Übersicht wegen nicht unbedingt ratsam ist.
Die Tasache, dass MuPAD nichts tut, wenn a eine ungerade Zahl ist, scheint
nicht wirklich glücklich zu sein. Schöner wäre es, wenn MuPAD uns das
auch mitteilen würde. Dafür können wir den Befehl else benutzen:
a:= Zufall():
if a mod 2 = 0 then
print(Unquoted, "a = ". a ." ist eine gerade Zahl"):
else
print(Unquoted, "a = ". a ." ist eine ungerade Zahl"):
end_if:
a = 977 ist eine ungerade Zahl
Jetzt erhalten wir bei jeder Ausführung der Eingabezeilen eine Ausgabe.
Mit Hilfe des else Befehls teilen wir MuPAD mit, dass immer dann, wenn
die Bedingung a mod 2 = 0 nicht erfüllt ist, die Ausgabe
a = ... ist eine ungerade Zahl
produziert werden soll.
Wir wollen das Problem ein wenig "verkomplizieren". Aufgabe soll es
sein, zu testen, ob die Zahl a gerade ist - ist sie nicht gerade, so soll
weiter getestet werden, ob sie kleiner als 500 ist. Mit Hilfe von elif können
wir auch weitere Bedinungen abprüfen:
a:= Zufall():
if a mod 2 = 0 then
print(Unquoted, "a = ". a ." ist eine gerade Zahl"):
elif a < 500 then
print(Unquoted, "a = ". a ." ist eine ungerade Zahl kleiner als 500"):
else
print(Unquoted, "a = ". a ." ist eine ungerade Zahl größer oder gleich 500"):
end_if:
a = 539 ist eine ungerade Zahl größer oder gleich 500
MuPAD testet also jetzt zuerst, ob die Zahl a gerade ist. Ist dies nicht
der Fall, so testet MuPAD als nächstes, ob a kleiner als 500 ist. Trifft
all dies nicht zu, so wird die Zeile unterhalb des else Befehls ausgeführt.
Wichtig ist hier die Reihenfolge der Bedingungen, die genau so abgearbeitet
werden, wie wir sie angegeben haben.
_______________________________________________________________________________
Anmerkungen:
1. Weitere Anregungen finden Sie in der Buchreihe Mathematik 1 x anders. In dieser Reihe
wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gelöst. Die
Bücher können unter www.schule.mupad.de/literatur kostenfrei kopiert werden.
_______________________________________________________________________________