i

Bedingungen als Funktionen

Im letzten Abschnitt haben wir gesehen, dass man Bedingungen miteinander verknüpfen kann. Wir betrachten nochmal das Programm, dass beim Wurf zweier Würfel ein Pasch und noch dazu ein Sechserpasch erkennt.

Das Programm funktioniert hervorragend. Wenn man es aber verändern möchte, muss man sich immer wieder in die nicht ganz einfachen logischen Verknüpfungen von Bedingungen hineindenken. Einfacher wäre es, wenn man auch für die einzelnen betrachteten Fälle eigene Namen hätte.

Das kann man erreichen, wenn man wieder Funktionen benutzt:

Hinter return steht jetzt im Grunde wieder eine Formel, so wie bei anderen Funktionen auch. Aber hier ist es keine Formel, die eine Zahl zurückliefert. Stattdessen ist es eine Formel für eine Bedingung. Der Wert dieser Formel ist keine Zahl, sondern eine Information darüber, ob die Bedingung erfüllt ist oder nicht. Letztlich ist der Wert also entweder ein WAHR oder ein FALSCH. Solche Formeln mit den Werten WAHR oder FALSCH kennt man normalerweise nicht aus dem Mathematikunterricht. Sie werden als Boolesche Formeln bezeichnet, wieder nach dem Mathematiker George Boole (1815-1864); die Werte WAHR und FALSCH werden als Boolesche Werte (im Englischen als "booleans") bezeichnet. Funktionen, die einen Booleschen Wert zurückliefern, nennt man auch Boolesche Funktionen.

Das Verwenden von Booleschen Funktionen hat unser Programm — ehrlich gesagt — nicht kürzer gemacht, sondern länger. Dafür ist es aber für einen Außenstehenden deutlich lesbarer geworden, denn er kann mit einem Blick erkennen, dass es hier um gewöhnliche Pasch-Würfe und Sechserpaschs geht.

Aufgabe 1: Kein Pasch

Erweitere das Programm so, dass in dem Fall, dass gar kein Pasch vorliegt, eine entsprechende Meldung ausgegeben wird. Definiere hierfür auch die Funktion kein_pasch(w1,w2).

Aufgabe 2: Teilbarkeit

Das folgende Programm bestimmt, ob eine eine Zahl durch eine andere Zahl (ganzzahlig) teilbar ist oder nicht.

Beim Lesen bist du vielleicht über die Bedingung ((zahl1 % zahl2)==0) gestolpert. Sie bedeutet folgendes:

Das Zeichen % steht für eine Rechenoperation, die du aus vermutlich aus deiner Grundschulzeit kennst. Dort hat man beispielsweise gerechnet: $17:5 = 3 \mathrm{~Rest~} 2$.

Der Python-Ausdruck zahl1 % zahl2 berechnet den Rest, wenn man zahl1 durch zahl2 ganzzahlig (also so wie in der Grundschule) dividiert. Wenn bei einer ganzzahligen Division als Rest 0 herauskommt, dann weiß man, dass die erste Zahl durch die zweite Zahl teilbar war.

Jetzt wissen wir, wie (bzw. wieso) die Zeile so funktioniert, aber ein Außenstehender müsste sich erst wieder hineindenken.

Erstelle in dem gegebenen Programmtext eine Boolesche Funktion teilbar(...) und schreibe den Programmtext so um, dass bei der Fallunterscheidung die neue Funktion benutzt wird.

Aufgabe 3: Zahlenbereiche

Häufig muss man beim Programmieren herausfinden, ob eine Zahl von ihrer Größe her zwischen zwei anderen Zahlen liegt. Schreibe eine Funktion liegtzwischen(...) und teste sie mit eiem entsprechenden kleinen Programm.

Suche

v
100.102.5.5
inf-schule.de/entwuerfe/python_online/fallunterscheidung/Bedingungen_als_Funktionen
inf-schule.de/100.102.5.5
inf-schule.de/@/page/xr0V08182DLLQgsO

Rückmeldung geben