Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Beispiel - Dialog im Ausführfenster

Preisberechnungen - bisherige Vorgehensweise

Wir betrachten noch einmal die Funktion zur Preisberechnung aus dem letzten Abschnitt.

Black-Box Zahlungsbetrag

Wenn man für diese Funktion eine Funktionsdefinition erstellt, dann lassen sich konkrete Berechnungen durch Funktionsaufrufe im Ausführfenster durchführen.

Funktionsdefinition:

def zahlungsbetrag(listenpreis, pRabatt, pMwSt, pSkonto):
    rabatt = (listenpreis / 100) * pRabatt
    nettopreis = listenpreis - rabatt
    mehrwertsteuer = (nettopreis / 100) * pMwSt
    bruttopreis = nettopreis + mehrwertsteuer
    skonto = (bruttopreis / 100) * pSkonto
    endpreis = bruttopreis - skonto
    return endpreis

Funktionsaufrufe:

>>> zahlungsbetrag(159.0, 5.0, 19.0, 2.0)
176.15451000000002
>>> zahlungsbetrag(280.0, 20.0, 19.0, 0.0)
266.56

Diese Vorgehensweise ist wenig benutzerfreundlich. Um Berechnungen durchzuführen muss der Benutzer den Namen der Funktion kennen (und richtig eintippen) und die Reihenfolge der zu bearbeitenden Daten kennen (und genau beachten).

Preisberechnungen - jetzt interaktiv

Mit einem Programm, das Benutzereingaben und eine Datenausgabe vorsieht, wird das einfacher.

Programm:

"""
Programm zur Preisberechnung
Autor: KB
Datum: 12.12.2014
"""

# Unterprogramme
def zahlungsbetrag(listenpreis, pRabatt, pMwSt, pSkonto):
    rabatt = (listenpreis / 100) * pRabatt
    nettopreis = listenpreis - rabatt
    mehrwertsteuer = (nettopreis / 100) * pMwSt
    bruttopreis = nettopreis + mehrwertsteuer
    skonto = (bruttopreis / 100) * pSkonto
    endpreis = bruttopreis - skonto
    return endpreis

# Hauptprogramm
# Eingabe
aListenpreis = float(input('Listenpreis (in €)    : '))
aRabattsatz = float(input('Rabatt (in %)         : '))
aMehrwertsteuersatz = float(input('Mehrwertsteuer (in %) : '))
aSkontosatz = float(input('Skonto (in %)         : '))
# Verarbeitung
aZahlungsbetrag = zahlungsbetrag(aListenpreis, aRabattsatz, aMehrwertsteuersatz, aSkontosatz)
# Ausgabe
print('Zahlungsbetrag (in €) :', aZahlungsbetrag)

Progammausführung:

>>> 
Listenpreis (in €)    : 159.0
Rabatt (in %)         : 5.0
Mehrwertsteuer (in %) : 19.0
Skonto (in %)         : 2.0
Zahlungsbetrag (in €) : 176.15451000000002

Aufgabe 1

Speichere das Programm ab und führe es mit [Run][Run Module] aus. Im Ausführfenster wirst du zur Mitarbeit aufgefordert. Probiere das mehrmals mit verschiedenen Daten aus. Du musst das Programm hierzu jeweils wieder neu ausführen.

Aufgabe 2

Informiere dich im Abschnitt Fachkonzept - Programm und bearbeite dann folgende Teilaufgaben.

(a) Das Programm ist in ein Haupt- und ein Unterprogramm aufgeteilt. Was leisten die einzelnen Teile jeweils? Warum ist es sinnvoll, eine solche Aufteilung vorzunehmen?

(b) Das Programm benutzt Kommentare. Welche sind das hier? Wozu sind sie gut?

Aufgabe 3

Informiere dich im Abschnitt Fachkonzept - EVA-Prinzip und bearbeite dann folgende Teilaufgaben.

(a) Wie werden die Eingaben des Benutzers verwaltet? Wieso muss man hier den float-Operator benutzen?

(b) Wie werden die Ausgeben auf dem Bildschirm erzeugt? Wozu dient die Zeichenketten 'Zahlungsbetrag (in €) :'?

Aufgabe 4

(a) Das Programm benutzt Variablen, um aktuell eingegebene und berechnete Daten zu verwalten. Welche sind das hier?

(b) Informiere dich im Abschnitt Exkurs - lokale und globale Variablen und kläre am oben gezeigten Programm, was man unter lokalen und globalen Variablen versteht.

X

Fehler melden

X

Suche