×
produktlogotitle

Seite: bbc_index
Diese Seite wurde aktualisiert am 11.09.2021

LOGIN
Benutzer:
Passwort:
 
   if1.net-schulbuch.de

 

Entscheiden wir uns zwischen zwei Alternativen

Beim bekannten Spiel MenschÄrgereDichNicht kommt ein Mitspieler häufig in die Situation, eine SECHS würfeln zu müssen. Wenn dann die gwünschte Seite oben liegt, freut man sich. Erscheint dagegen keine SECHS, ärgert man sich.

Das kann graphisch in einem sog. ProgrammAblaufPlan (PAP) dargestellt werden:

 

Zweiseitige Fallunterscheidung

Eine zweiseitige Fallunterscheidung besteht aus einer Bedingung und zwei Anweisungsblöcken:

  • eine Block für den Fall, dass die Bedingung erfüllt ist,
  • ein weiterer Block für den Fall, dass die Bedingung nicht erfüllt ist

In Python gibt es dazu die folgende Syntax:

if [Bedingung]:
    [Anweisungsblock für den "Ja"-Fall]
else:
    [Anweisungsblock für den "Nein"-Fall]

 

Das obige Beispiel kann dann in ein Python-Programm umgesetzt werden:

wurf_01.py.txt

from random import *

wurf = randint (1,6)

if wurf == 6:
    print("Hurra, ich habe eine 6 gewürfelt!")
else:
    print("Mist! Ich habe leider eine", wurf, "gewürfelt.")
        

i  Dringend zu beachten!

  1. Am Ende der Zeile mit der Bedingung steht ein Doppelpunkt :
    Also 

    if bedingung:


  2. Die beiden Anweisungsblöcke können aus einer oder aus mehreren Anweisungen, also einer Anweisungsfolge bestehen.

  3. Die beiden Anweisungsblöcke müssen immer eingerückt werden. Die Einrückungstiefe muss innerhalb des Blocks konstant sein!

 

Die Qual der Wahl zwischen mehreren Möglichkeiten

Bei einigen Algorithmen hat man mehr als zwei mögliche Fälle zu unterscheiden. Du kennst vielleicht den sog. BodyMassIndex (BMI), mit dem man anhand von Größe und Gewicht einer Person grob unterscheiden kann, ob jemand unter-, normal- oder übergewichtig ist.

Der BMI berechnet sich in der einfachsten Variante als

{\displaystyle {\mathit {BMI}}={\frac {m}{l^{2}}}}

wobei m das Gewicht (Kilogramm) und l die Körpergröße (in Meter) angegeben. 

 

Hat man also z.B. eine Person, die bei einer Körpergröße von 1.75 m ein gewicht von 75 kg hat, dann ist der BMI ungefähr 24.5

Und jetzt zur Interpretation in einer sehr vereinfachten Variante.

  • Viele Studien haben heute gewisse Vorbehalte gegen die Aussagekraft des BMI
  • In der Praxis werden weitere Faktoren wie das Geschlecht und das Alter der Person berücksichtigt.

Dazu kann man die folgende Tabelle benutzen:

BMI Status
unter 18.5 Untergewicht
zwischen 18.5 und 24.9 Normalgewicht
über 24.9 Übergesicht

Der Algorithmus, der den Status ausgeben soll, könnte dann umgangssprachlich formuliert werden:

wenn der BMI kleiner ist als 18.5
    dann schreibe "Untergewicht"
sonst wenn der BMI kleiner ist als 24.9
    dann schreibe "Normalgewicht"
sonst
schreibe "Übergewicht"

 

Der PAP für den BMI-Algorithmus:

 

Natürlich können auch mehr als drei Fälle zu unterscheiden sein. Die allgemeine Python-Syntax für eine Fallunterscheidung mit mehreren Fällen hat dann die folgende Form:

if [Bedingung1]:
    Anweisungsblock1
elif [Bedingung 2]:
    Anweisungsblock2
elif [Bedingung3]:
Anweisungsblock3
....
else:
Anweisungsblock falls keine der Bedingungen zutrifft

Das Python-Programm für den BMI (wie oben beschrieben):

bmi.py.txt

gew = float(input ("Gewicht in kg: "))
gro = float(input ("Körpergröße in m: "))
bmi = gew / (gro**2)

print("Der BMI ist", bmi)

if bmi < 18.5:
    print("Untergewicht")
elif bmi < 24.9:
    print("Normalgewicht")
else:
    print("Übergewicht")

Entweder ... oder nix

In der Schulbibliothek darf man sich maximal 3 Bücher gleichzeitig ausleihen. Ein Ausschnitt des Ausleihprogramms:

buecher1.py.txt

anzahl = int(input("Wie viele Bücher möchtest du ausleihen? "))

if anzahl > 3:
    anzahl = 3
    print("Du darfst nur maximal 3 Bücher ausleihen")
    
print("Du kannst jetzt", anzahl, "Bücher ausleihen!")

# Hier geht das Programm weiter.

 

Bedingte Anweisung (Einseitige Fallunterscheidung)

Eine bedingte Anweisung ist ein Programmblock, der nur ausgeführt wird, wenn eine Bedingung erfüllt ist.

Eine solche bedingte Anweisung kann man sich auch vorstellen als zweiseitige Fallunterscheidung, bei der im Sonst-Fall keine Aktion erfolgt. Dadurch erklärt sich auch der seltsame Name Einseitige Fallunterscheidung, obwohl es ja tatsächlich keinen wirklichen zweiten Fall gibt, der zu einer Aktion führt.

Man könnte sich dabei zwei mögliche Programmablaufpläne vorstellen:

Einseitig simuliert mit zweiseitiger Fallunterscheidung Bedingte Anweisung
   

 

 

Impressum
© 2023  Net-Schulbuch.de
10.00  0.4760  8.1.27