Verwendung von Hilfsfunktionen

Gerundete Ergebnisse

Wir betrachten noch einmal die Funktion druckLaenge aus dem letzten Abschnitt.

Funktionsdefinition:

def druckLaenge(anzahlPixel, pixelDichte):
    return (anzahlPixel / pixelDichte) * 2.54

Funktionsaufrufe:

>>> druckLaenge(5184, 600)
21.945600000000002
>>> druckLaenge(3456, 600)
14.6304

Die Funktion druckLaenge leistet durchaus das Gewünschte. Verbessern könnte man sie, wenn die Ergebnisse als gerundete Zahlen mit 1 Nachkommastelle zurückgeliefert würden.

Verwendung von Hilfsfunktionen

Python stellt zum Runden von Zahlen die vordefinierte Funktion round zur Verfügung. Hier einige Aufrufe dieser Funktion.

>>> round(21.945600000000002)
22
>>> round(21.945600000000002, 1)
21.9
>>> round(14.6304)
15
>>> round(14.6304, 1)
14.6

Aufgabe 1

(a) Kannst du aus den gezeigten Beispielaufrufen bereits erschließen, wie man die vordefinierte Funktion round benutzt?

(b) Führe selbst weitere Experimente mit der Funktion round durch.

(c) Die Funktion round rundet zwar, aber nicht immer genau im Sinne der Mathematik. Das liegt an der internen binären Darstellung von Zahlen in Python.

>>> round(0.5)
0
>>> round(1.5)
2
>>> round(2.5)
2
>>> round(3.5)
4

Führe selbst weitere Experimente durch.

Aufgabe 2

(a) Ändere die Funktionsdefinition der Funktion druckLaenge so ab, dass gerundete Ergebnisse mit einer Nachkommastelle zurückgeliefert werden. Benutze die vordefinierte Funktion round. Akzeptiere, dass manchmal nicht ganz korrekt gerundet wird.

>>> druckLaenge(5184, 600)
21.9
>>> druckLaenge(3456, 600)
14.6

(b) Ändere auch die Funktionsdefinition in Aufgabe 3 aus dem letzten Abschnitt geeignet ab. Die Funktion pixelAnzahl soll nur natürliche Zahlen als Ergebnisse zurückliefern.

Entwicklung von Hilfsfunktionen

Die Berechnungen von zu erwartenden Druckgrößen benutzen die Umrechnung von inch in cm. Für diese Umrechnung gibt es in Python keine vordefinierte Funktion. Wir konzipieren daher selbst eine geeignete Hilfsfunktion inchToCm.

<Black-Box-Diagramm><Funktionsname>inchToCm</Funktionsname><Übergaben><Übergabe><Wert>2.4</Wert><Variable></Variable><Typ></Typ></Übergabe></Übergaben><Rückgabe><Typ></Typ><Wert>6.096</Wert></Rückgabe></Black-Box-Diagramm>

Aufgabe 3

Ergänze die die Funktionsdefinition der Funktion inchToCm. Teste anschließend beide Funktionen mit geeigneten Funktionsaufrufen.

def inchToCm(laengeInch):
    return ...

def druckLaenge(anzahlPixel, pixelDichte):
    return round(inchToCm(anzahlPixel / pixelDichte), 1)

Aufgabe 3

Ergänze die die Funktionsdefinition der Funktion inchToCm. Teste anschließend beide Funktionen mit geeigneten Funktionsaufrufen.

Aufgabe 4

Entwickle eine Funktion cmToInch und benutze sie in der Funktionsdefinition der Funktion pixelAnzahl (vgl. Aufgabe 3 des letzten Abschnitts). Teste anschließend die Funktionen mit geeigneten Funktionsaufrufen.

X

Fehler melden

X

Suche