Prozedurales Programmieren und Problemlösungsstrategien
Bachelorstudiengänge
Umwelttechnik und Maschinenbau Prof. Dr. Thomas Hoch
Problemlösungsstrategien
Übersicht
Probleme lassen sich nicht nach einem vorgefertigten Schema lösen.
Es existieren viele Strategien zur Problemlösung, die sich wie Werkzeuge einsetzen und kombinieren lassen. Hier die wichtigsten:
Statistische Analyse von Daten Mathematische Modellierung:
o Umsetzen von Problemen in Gleichungen o Hilfsmittel: Plausibilität, Einheiten, Analogien o Lösen von Gleichungssystemen
o Simulation von Systemen
Entwurf von Algorithmen:
o Identifizieren von Schleifen und Fallunterscheidungen o Zerlegung von komplexen Problemen in einfachere:
das Prinzip „Teile und Herrsche“
Standardalgorithmen (Suchen, Sortieren, Kombinatorik, etc.)
Statistische Analyse von Daten
• Berechnung von Mittelwerten, Median
• Berechnung der mittleren Abweichung vom Mittelwert: Standardabweichung, Varianz
• Berechnung von Minimum und Maximum
• (Lineare) Regression, Parameterschätzung
• Grafische Darstellung von Daten
• Beispiel: Statistik in Excel
Mathematische Modellierung
• Umsetzen von Problemen in Gleichungen
– Bezeichnungen für unbekannte (und bekannte) Größen – Aufstellung und Vereinfachen von mathemat. Gleichungen
• Hilfsmittel zum Aufstellen von Gleichungen
– Plausibilität: Ergeben die Gleichungen in verschiedenen Grenzfällen Sinn? Passen die physikalischen Einheiten zusammen?
– Analogien: Gibt es bekannte ähnliche Systeme?
– Beispiel: Melonenproblem
• Lösen von Gleichungssystemen
– Lineare Gleichungssyteme: Lösung einfach
– Nichtlineare Gleichungssysteme: Näherungslösung?
• Simulation von Systemen
– Spezielle Näherungslösung zur Berechnung des (meist zeitlichen) Verhaltens eines Systems, oder
– Simulation mit Hilfe von Zufallszahlen (Monte-Carlo-Simulation)
Entwurf von Algorithmen (1)
• Was ist ein Algorithmus?
– Ein Algorithmus ist ein klar definiertes Verfahren zur Lösung eines Problems, das aus elementaren Schritten besteht (hierzu später mehr). Beispiel: ein Kochrezept.
• Identifizieren von Schleifen und Fallunterscheidungen
– Schleifen und Fallunterscheidungen sind wichtige Bausteine von Algorithmen. Sie werden Kontrollstrukturen genannt.
Beispiel: Zählen von positiven und negativen Zahlen
– Bei einer Schleife (auch Iteration oder Wiederholung genannt) wird ein Teil eines Algorithmus mehrfach wiederholt.
– Bei einer Fallunterscheidung (auch Auswahl oder Selektion genannt) werden verschiedene Teile eines Algorithmus alternativ ausgeführt.
– Schleifen und Fallunterscheidungen lassen sich grafisch z. B. mit Hilfe von Struktogrammen darstellen oder mit Hilfe von
höheren Programmiersprachen (wie VBA) ausdrücken.
Entwurf von Algorithmen (2)
• Zerlegen von komplexen Problemen in einfachere
– Es ist sinnvoll, ein komplexes Problem in einfachere Teile zu zerlegen. Diese lassen sich leichter lösen.
– Dieses Prinzip wird „Teile und herrsche“ genannt und lässt sich oft rekursiv anwenden (Beispiel: Türme von Hanoi).
• Standardalgorithmen
– Es gibt einen riesigen Fundus von Standardalgorithmen, auf den man zurückgreifen kann, z. B. zum Suchen oder Sortieren.
• Invarianten
– Bei kombinatorischen Problemen gibt es im Suchraum häufig Größen, die invariant (also unveränderlich) sind (Invarianten).
– Diese lassen sich nutzbringend zur Lösungssuche einsetzen (Beispiele: Haus vom Nikolaus, Schachbrett)