i

Fachkonzept - Problemzerlegung

Verwendung einer Strategie

Bei der Entwicklung von Funktionen als Programme zur Lösung von Berechnungsproblemen sollte man überlegt vorgehen und Strategien verwenden.

Wenn ein Problem komplex ist, dann hat sich die Strategie Problemzerlegung bewährt: Man zerlegt das Problem in Teilprobleme und versucht, diese zu lösen und mit den Lösungen der Teilprobleme dann auch eine Lösung für das Gesamtproblem zu entwickeln.

Wir verdeutlichen diese Strategie am Beispiel "Berechnung der Anzahl der Fliesen für einen Swimming-Pool".

Problemzerlegung

Folgendes Berechnungsproblem muss man bei der Planung eines Pools lösen:

Ein quaderförmiger Pool mit einer vorgegebenen Länge, Breite und Höhe soll am Boden und auf den Seitenflächen mit Fliesen ausgelegt werden. Die Fliesen sollen quadratisch sein. Am Rand müssen ggf. Fliesen abgeschnitten werden, die Restfliesen können dann nicht weiter verwendet werden. Da einige Fliesen beim Bau kaputt gehen, sollen 3% mehr Fliesen eingeplant werden als unbedingt erforderlich sind. Wie kann man die Kosten für die zu bestellenden Fliesen berechnen, wenn der Preis pro Fliese bekannt ist?

Gesamtproblem [0]: Wie berechnet man den Preis für die Gesamtheit aller benötigten Fliesen?

Teilprobleme:

Teilproblem [1]: Wie viele Fliesen braucht man für die Bodenfläche?
Teilproblem [2]: Wie viele Fliesen braucht man für die Seitenflächen?
Teilproblem [3]: Wie groß ist die Minimalanzahl der Fliesen für den Pool?
Teilproblem [4]: Wie erhält man aus der Minimalanzahl von Fliesen die Gesamtanzahl einschließlich der 3% Reservefliesen?

Die Teilprobleme [1] und [2] kann man verallgemeinernd zusammenfassen zu:

Teilproblem [1;2]: Wie viele Fliesen braucht man für eine rechteckige Fläche?

Entwicklung von Lösungen

Teilproblems [1; 2] lässt sich mit der Funktion anzahlFliesenRechteck lösen.

anzahlFliesenRechteck laengeRechteck breiteRechteck seiteFliese =
    (ceiling (laengeRechteck / seiteFliese)) * (ceiling (breiteRechteck / seiteFliese))

Teilproblems [3] lässt sich mit der Funktion anzahlFliesenPool lösen. Beachte, dass diese Funktion die Funktion anzahlFliesenRechteck verwendet.

anzahlFliesenPool laenge breite hoehe seiteFliese =
    (1 * anzahlFliesenRechteck laenge breite seiteFliese) + 
    (2 * anzahlFliesenRechteck laenge hoehe seiteFliese) + 
    (2 * anzahlFliesenRechteck breite hoehe seiteFliese)

Teilproblems [4] lässt sich mit der Funktion gesamtanzahlFliesen lösen. Beachte, dass diese Funktion die Funktion anzahlFliesenPool verwendet.

gesamtanzahlFliesen laenge breite hoehe seiteFliese =
    ceiling ((toFloat (anzahlFliesenPool laenge breite hoehe seiteFliese)) * 1.03)

Das Gesamtproblem [0] lässt sich schließlich mit der Funktion preisPoolFliesen lösen. Beachte, dass diese Funktion die Funktion gesamtanzahlFliesen verwendet.

preisPoolFliesen laenge breite hoehe seiteFliese preisFliese =
    (toFloat (gesamtanzahlFliesen laenge breite hoehe seiteFliese)) * preisFliese

Suche

v
100.110.2.4.4
inf-schule.de/entwuerfe/fp_elm_alteversion/elm_programme/hilfsfunktionen/konzept_problemzerlegung
inf-schule.de/100.110.2.4.4
inf-schule.de/@/page/tmRNIQNU07Ltpx7x

Rückmeldung geben