Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kapitel 12<br />
Programmentwurf<br />
12.1 Losen von Problemen<br />
Wenn Sie die vorangegangenen Kapitel sorgfaltig durchgearbeitet und insbesondere die Ubungsaufgaben<br />
intensiv bearbeitet haben, sind Sie Ihrem Ziel, ein " guter\ Programmierer zu werden,<br />
schon ein ganzes Stuck nahergekommen. Sie wissen nun, was Anweisungen sind, Sie konnen<br />
Prozeduren und boolesche Funktionen de nieren und aufrufen, und Sie kennen als Kontrollstrukturen<br />
des Programmablaufs die Auswahl- und Wiederholungsanweisungen, mit denen Sie<br />
Algorithmen bzw. Programme exibel formulieren konnen. In diesem Kapitel wird nun kein weiteres<br />
derartiges Sprachkonstrukt eingefuhrt, stattdessen werden Sie lernen, wie Sie die bisher<br />
erlernten Sprachkonstrukte einsetzen konnen, um ausgehend von einem gegebenen Problem ein<br />
Programm zu entwickeln, das dieses Problem korrekt und vollstandig lost und dessen Losungsidee<br />
auch fur andere verstandlich ist.<br />
Vielleicht hatten Sie beim Losen von Ubungsaufgaben insbesondere in den letzten beiden Kapiteln<br />
bestimmte Probleme; sie wu ten eventuell nicht, wie Sie an die Ubungsaufgabe herangehen,<br />
womit Sie anfangen sollten. Keine Angst, in diesem Kapitel werden Sie ein Verfahren kennenlernen,<br />
das Ihnen dabei hilft, derartige Ubungsaufgaben systematisch zulosen. Nichtsdestotrotz ist<br />
der Algorithmen- bzw. Programmentwurf kein vollstandig mechanisierbarer, sondern ein kreativer<br />
Proze , bei dem Sie Ihre Gehirnzellen aktivieren mussen. Er ist insbesondere selbst nicht<br />
algorithmisierbar und erfordert vom Programmierer Intuition, Erfahrung und Ideen.<br />
Aber der Programmentwurf ist vergleichbar mit vielen Problemen, mit denen Sie tagtaglich in<br />
Beruhrung kommen. Uberlegen Sie einmal: Wie gehen Sie vor, wenn Sie ein Puzzle zusammensetzen.<br />
Ganz sicher nicht so, da Sie einfach probieren, so lange Puzzlestucke zusammenzustecken,<br />
bis das Puzzle fertig ist. Vielmehr werden Sie zunachst die vier Eckstucke und anschlie end<br />
die Randstucke suchen und damit zunachst den Rahmen zusammensetzen. Anschlie end werden<br />
Sie vielleicht (falls es sich bei dem Puzzle um ein Landschaftsbild handelt) alle blauen<br />
Stucke heraussuchen, die zum Himmel gehoren konnten. Was Sie hier machen, nennt man Komplexitatsreduktion.<br />
Sie versuchen, das komplexe Gesamtproblem zunachst in weinger komplexe<br />
Teilprobleme zu zerlegen und die Teilprobleme zu losen. Die Gesamtlosung ergibt sich dann<br />
schlie lich durch die Zusammenfuhrung der Teillosungen. Genau dieselbe Systematik liegt auch<br />
dem im folgenden beschriebenen Verfahren des Programmentwurfs zugrunde. Man bezeichnet<br />
das Verfahren deshalb auch als Schrittweise Verfeinerung oder Top-Down-Programmentwurf.<br />
141