MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

________________________________________________________________________________

 

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. 

 

_______________________________________________________________________________

 

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.