Kurs:Python/LG/Py2009/Aufgaben/Reifendruck

Aus Wikiversity
< Kurs:Python‎ | LG‎ | Py2009‎ | Aufgaben

Hier wird am Programm Reifendruck, Version 3 geschraubt.

Version 2[Bearbeiten]

# Reifendruck
druck_min = 35
druck_max = 45

kontrolle_vorne = 0
kontrolle_hinten = 0

warnung = "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs. Bitte suchen Sie eine Werkstatt auf."

# Programm-Start
print "Reifendruck"
 
# Eingabe
while True:
    print "- - - - Bitte machen Sie Ihre Angaben! - - - -"
 
    reifendruck_vorne_rechts = input ("Reifendruck: rechter Vorderreifen ")
    if druck_max < reifendruck_vorne_rechts or reifendruck_vorne_rechts < druck_min:
        print warnung
        break
 
    reifendruck_vorne_links = input ("Reifendruck: linker Vorderreifen ")
    if druck_max < reifendruck_vorne_links or reifendruck_vorne_links < druck_min:
        print warnung
        break
 
    reifendruck_hinten_rechts = input ("Reifendruck: rechter Hinterreifen ")
    if druck_max < reifendruck_hinten_rechts or reifendruck_hinten_rechts < druck_min:
        print warnung
        break
 
    reifendruck_hinten_links = input ("Reifendruck: linker Hinterreifen ")
    if druck_max < reifendruck_hinten_links or reifendruck_hinten_links < druck_min:
        print warnung
        break
 
    # Kontrolle vorn
    if reifendruck_vorne_rechts > reifendruck_vorne_links:
        kontrolle_vorne = reifendruck_vorne_rechts - reifendruck_vorne_links
    else:
        kontrolle_vorne = reifendruck_vorne_links - reifendruck_vorne_rechts
 
    # Kontrolle hinten
    if reifendruck_hinten_rechts > reifendruck_hinten_links:
        kontrolle_hinten = reifendruck_hinten_rechts - reifendruck_hinten_links
    else:
        kontrolle_hinten = reifendruck_hinten_links - reifendruck_hinten_rechts
 
    # Ausgabe
    if kontrolle_vorne > 3.0 or kontrolle_hinten > 3.0:
        print warnung
    else:
        print "Reifendruck ist OK"
    break
 
print "Das Programm wurde beendet."

Version 1[Bearbeiten]

# Reifendruck
reifendruck_vorne_links   = 0
reifendruck_vorne_rechts = 0
reifendruck_hinten_links   = 0
reifendruck_hinten_rechts = 0

druck_min = 35
druck_max = 45

kontrolle_vorne = 0
kontrolle_hinten = 0

print "Reifendruck"

# Eingabe
while True:   
    
    print "- - - - Bitte machen Sie Ihre Angaben! - - - -"

    reifendruck_vorne_rechts = input ("Reifendruck: rechter Vorderreifen ")

    if druck_max < reifendruck_vorne_rechts or reifendruck_vorne_rechts < druck_min:
        print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
        continue

    reifendruck_vorne_links = input ("Reifendruck: linker Vorderreifen ")

    if druck_max < reifendruck_vorne_links or reifendruck_vorne_links < druck_min:
        print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
        continue
        
    reifendruck_hinten_rechts = input ("Reifendruck: rechter Hinterreifen ")

    if druck_max < reifendruck_hinten_rechts or reifendruck_hinten_rechts < druck_min:
        print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
        continue
        
    reifendruck_hinten_links = input ("Reifendruck: linker Hinterreifen ")

    if druck_max < reifendruck_hinten_links or reifendruck_hinten_links < druck_min:
        print "Warnung: Der Reifendruck ist ausserhalb des erlaubten Bereichs."
        continue
        
    # Kontrolle vorn
    if reifendruck_vorne_rechts > reifendruck_vorne_links:
        kontrolle_vorne = reifendruck_vorne_rechts - reifendruck_vorne_links
    else:
        kontrolle_vorne = reifendruck_vorne_links - reifendruck_vorne_rechts
        
    # Kontrolle hinten
    if reifendruck_hinten_rechts > reifendruck_hinten_links:
        kontrolle_hinten = reifendruck_hinten_rechts - reifendruck_hinten_links
    else:
        kontrolle_hinten = reifendruck_hinten_links - reifendruck_hinten_rechts
        
    # Ausgabe
    if kontrolle_vorne > 3.0 or kontrolle_hinten > 3.0:
        print "Bitte fahren Sie zur naechsten Werkstatt. Der Reifendruck ist nicht in Ordnung."
    else:
        print "Reifendruck ist OK"
    break

print "Ende"

Das Programm wirkt auf mich etwas umständlich, weil lang. Ich vermute Redundanz. Außerdem startet das Programm nach einer Warnung einen neuen Programmdurchlauf, was mir ebenfalls noch nicht gefällt.