Schachtelung von Funktionen
Ein Dia scannen und drucken
Früher - vor der Zeit der digitalen Fotografie - wurden Fotos oft als Dias entwickelt und aufbewahrt.
Viele Menschen haben noch Diasammlungen zu Hause mit interessanten Fotos von früher, aber keinen Diaprojektor mehr, um sie anzuzeigen. In solch einer Situation kann man das Dia einscannen und anschließend (z.B. als Poster`) ausdrucken. Wir entwickeln für solch eine Situation geeignete Berechnungsprogramme.
Folgendes Problem soll mit Hilfe von Funktionen bearbeitet werden: Ein Dia (36mm x 24mm) wird mit 4000 PPI eingescannt und anschließend als Poster mit 160 PPI gedruckt. Wie groß wird das Poster?
Funktionen für Teilberechnungen
Die Funktionen für die Teilberechnungen wurden bereits in den vorangegangenen Abschnitten entwickelt.
Die Funktion druckLaenge
berechnet aus der Anzahl der Pixel und der Pixeldichte (in PPI)
die erwartete Laenge der Bildseite (in cm, auf eine Nachkommastelle gerundet) beim Ausdrucken.
Die Funktion pixelAnzahl
berechnet aus der Länge der Bildseite (in cm) und der Pixeldichte (in PPI)
die (gerundete) Anzahl der Pixel beim Scannen.
Wir benutzen diese beiden Funktionen, um die Berchnungen für das Diaposter durchzuführen.
Aufgabe 1
Erläutere, wie das ausgegebene Ergebnis hier berechnet wird. Ergänze auch die Berechnung für die zweite Postergröße.
Schachtelung von Funktionen
Die oben dargestellten Berechnungen zeigen, dass man Funktionsaufrufe ineinander schachteln kann.
Hier liefert der innere Funktionsaufruf pixelAnzahl(3.6, 4000)
ein Ergebnis, das direkt an
die äußere Funktion druckLaenge
zur Verarbeitung weitergegeben wird.
Diese Schachtelung von Funktionen lässt sich auch in der Funktionsdefinition umsetzen:
Aufgabe 2
(a) Erläutere den Aufbau der Funktion scanDruckBildLaenge
.
(b) Benutze die Funktion scanDruckBildLaenge
zur Bestimmung der Postergröße bei den oben
angegebenen Daten.
Quellen
- [1]: Dia - Urheber: Hutschi - Lizenz: Creative Commons BY-SA 3.0