13.07.2015 Aufrufe

Einführung in C/C++ - Alex-weingarten.de

Einführung in C/C++ - Alex-weingarten.de

Einführung in C/C++ - Alex-weingarten.de

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

16 KAPITEL 1. PROGRAMMIEREN IN C/<strong>C++</strong>1.1.9.3 Zusammensetzen aus TeilaufgabenDer umgekehrte Weg – Bottom-up-Entwurf – liegt nicht so nahe. Es gibt wie<strong>de</strong>rkehren<strong>de</strong>Grund-Operationen wie Suchen, Sortieren, Fragen, Ausgeben, Interpolieren, Zeichnen e<strong>in</strong>esKreisbogens. Aus diesen lässt sich e<strong>in</strong>e gegebene Aufgabe zu e<strong>in</strong>em großen Teil zusammensetzen,so dass nur wenige spezielle Teilaufgaben übrig bleiben. Hat man die Grundoperationene<strong>in</strong>mal programmiert, so vere<strong>in</strong>facht sich <strong>de</strong>r Rest erheblich.In praxi wen<strong>de</strong>t man e<strong>in</strong>e gemischte Strategie an. Man zerlegt die übergeordnete Aufgabe<strong>in</strong> Teilaufgaben, versucht diese <strong>in</strong> Grundoperationen auszudrücken und kommt dannwie<strong>de</strong>r aufsteigend zu e<strong>in</strong>er genaueren und allgeme<strong>in</strong>er gültigen Formulierung. Dieser AbundAufstieg kann sich mehrmals wie<strong>de</strong>rholen. Die Aufgabenstellung ist nicht unverän<strong>de</strong>rlich.Genau so geht man bei <strong>de</strong>r Planung von Industrieanlagen vor.Man darf nicht <strong>de</strong>n Fehler machen, die Aufgabe aus Bequemlichkeit <strong>de</strong>n Eigenheitene<strong>in</strong>es Computers o<strong>de</strong>r e<strong>in</strong>er Programmiersprache anzupassen. Der Benutzer hat Anspruchauf e<strong>in</strong> gut und verständlich funktionieren<strong>de</strong>s Programm. Die Zeiten, als <strong>de</strong>r Computer alsEntschuldigung für alle möglichen Unzulänglichkeiten herhalten musste, s<strong>in</strong>d vorbei.1.1.10 Prototyp<strong>in</strong>gIn <strong>de</strong>m häufig vorkommen<strong>de</strong>n Fall, dass die Anfor<strong>de</strong>rungen an das Programm zu Beg<strong>in</strong>nnoch verschwommen s<strong>in</strong>d, ist es zweckmäßig, möglichst rasch e<strong>in</strong> lauffähiges Grundgerüst,e<strong>in</strong> Skelett zu haben. Mit diesem kann man dann spielen und Erfahrungen sammeln <strong>in</strong> e<strong>in</strong>emStadium, <strong>in</strong> <strong>de</strong>m <strong>de</strong>r Programmco<strong>de</strong> noch überschaubar und leicht zu än<strong>de</strong>rn ist.Bei e<strong>in</strong>em solchen Prototyp s<strong>in</strong>d nur die benutzernahen Funktionen halbwegs ausgebaut,die datennahen Funktionen schreiben vorläufig nur ihren Namen auf <strong>de</strong>n Bildschirm.Von e<strong>in</strong>em menugesteuerten Vokabeltra<strong>in</strong>er beispielsweise schreibt man zunächst das Menusystemund lässt die Funktionen, die die eigentliche Arbeit erledigen, leer o<strong>de</strong>r beschränktsie auf die Ausgabe ihres Namens. Damit liegt die Programmstruktur – das Knochengerüst– fest. Gleichzeitig macht man sich Gedanken über die Datenstruktur. Steht <strong>de</strong>r Prototyp,nimmt man <strong>de</strong>n Datenaustausch zwischen <strong>de</strong>n Funktionen h<strong>in</strong>zu (Parameterübergabe und-rückgabe), immer noch mit Bildschirmmeldungen anstelle <strong>de</strong>r eigentlichen Arbeit. Funktioniertauch das wie gewünscht, füllt man e<strong>in</strong>e Funktion nach <strong>de</strong>r an<strong>de</strong>ren mit Co<strong>de</strong>.Diese Vorgehensweise lenkt die Entwicklung zu e<strong>in</strong>em möglichst frühen Zeitpunkt <strong>in</strong> diegewünschte Richtung. Bei e<strong>in</strong>em kommerziellen Auftrag bezieht sie <strong>de</strong>n Auftraggeber <strong>in</strong> dieEntwicklung e<strong>in</strong> und för<strong>de</strong>rt das gegenseitige Verständnis, aber auch bei privaten Projektenverh<strong>in</strong><strong>de</strong>rt sie, dass man viel Co<strong>de</strong> für /<strong>de</strong>v/null schreibt.Das Prototyp<strong>in</strong>g ist sicher nicht für alle Programmieraufgaben das beste Mo<strong>de</strong>ll – es gibtauch noch an<strong>de</strong>re Mo<strong>de</strong>lle – aber für dialog<strong>in</strong>tensive kle<strong>in</strong>e und mittlerer Anwendungen rechtbrauchbar und <strong>in</strong> C leicht zu verwirklichen.1.1.11 FlussdiagrammeProgramme wer<strong>de</strong>n schnell unübersichtlich. Man hat daher schon früh versucht, mit Hilfegrafischer Darstellungen 13 <strong>de</strong>n Überblick zu behalten, aber auch diese neigen zum Wuchern.E<strong>in</strong> grundsätzlicher Mangel ist die Beschränkung e<strong>in</strong>es Blattes Papier auf zwei Dimensionen.Es ist unmöglich, e<strong>in</strong> umfangreiches Programm durch e<strong>in</strong>e e<strong>in</strong>zige halbwegs überschaubareGrafik zu beschreiben.Flussdiagramme (flow chart), auch Blockdiagramme genannt, sollen die Abläufe <strong>in</strong>nerhalbe<strong>in</strong>es Programmes durch S<strong>in</strong>nbil<strong>de</strong>r nach DIN 66 001 und Text darstellen, unabhängigvon e<strong>in</strong>er Programmiersprache. Obwohl das Flussdiagramm vor <strong>de</strong>m Programmco<strong>de</strong> erstelltwer<strong>de</strong>n sollte, halten sich viele Programmierer nicht an diese Reihenfolge. Zum Teil ersetzte<strong>in</strong>e gute typografische Gestaltung <strong>de</strong>r Programmquelle auch e<strong>in</strong> Flussdiagramm, währenddas Umgekehrte nicht gilt. E<strong>in</strong> Flussdiagramm ist nicht mit e<strong>in</strong>em Syntaxdiagramm zu verwechseln,lesen Sie die bei<strong>de</strong>n entsprechen<strong>de</strong>n Abbildungen, die die if-else-Verzweigung darstellen,e<strong>in</strong>mal laut vor.13 Real programmers don’t draw flowcharts.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!