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
.
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.