11 Übungen, Mehrfachverzweigung

In diesem Abschnitt sollen zahlreiche Funktionen, Prozeduren, Komponenten und Objekte aus den vorangegangenen Abschnitten wiederholt, angewendet und vertieft werden. Bevor du mit dem Programmieren beginnst, solltest du die Aufgabe des Programmes nicht nur verstanden, sondern die Arbeit schon geplant haben. Folgende Schritte sind empfehlenswert:
  1. Arbeite das zentrale Problem heraus und beschaffe dir notwendige Lösungswege, mathematische Grundlagen, Lösungsformeln etc.!
  2. Plane das Aussehen des Formulars und lege alle notwendigen Komponenten fest! Benenne die Komponenten mit "sprechende Namen"! Plane alle Ein- und Ausgabefelder und bestimme die Schnittstelle zum Benutzer (Buttons, Menübefehle, Hilfetexte, etc.)!
  3. Fertige von den wichtigsten Prozeduren Struktogramme an! Überlege dir die notwendigen Variablen und ihre Typen!
  4. Schreibe alle Prozeduren und teste schrittweise jede neu hinzugefügte Komponente!
  5. Führe nach dem Ausdruck der wichtigsten Bildschirme, des Programmes ein kurzes Protokoll über die Aufgaben des Programmes und was es leistet! Kommentiere "verzwickte" Programmzeilen im Quelltext (Text zwischen geschwungenen Klammern)! Damit wird das Überarbeiten oder Erweitern des Programmes auch nach längeren Zeitabschnitten möglich.


Struktogramme:

Die (Einfach-)Verzweigung

Falls die Bedingung erfüllt wird, werden die Anweisungen links ausgeführt ("then"-Zweig). Andernfalls werden die rechten Anweisungen ausgeführt .

("else"-Zweig)

Die Mehrfachverzweigung

Die Mehrfachverzweigung läßt mehrere Möglichkeiten der Auswahl zu: Die Anweisung case besteht aus einem Ausdruck (dem Selektor) und einer Liste von Anweisungen, denen jeweils eine oder mehrere Konstanten (case-Konstanten) oder das reservierte Wort else voranstehen. Alle Case-Konstanten müssen einheitlich sein und einen Ordinal-Typ besitzen. Bei der Ausführung wird jeder Ausdruck bewertet, bis ein passender Wert gefunden wird. Dann führt das Programm die Anweisungen aus, die mit dem passenden Ausdruck verbunden sind. War die Suche nicht erfolgreich, setzt das Programm bei der else-Anweisung fort. Um die Geschwindigkeit zu optimieren, ist es günstig, die case-Konstanten in aufsteigender Reihenfolge anzugeben.

case Auswahl of
1:Ausgabelabel.caption:='Erster Fall';
2:Ausgabelabel.caption:='Zweiter Fall';
else 
Ausgabelabel.caption:='nix passt';
end;
case eingabe.text[1] of
'a':begin
 ...
 end;
 'b':begin
 ...
 end;
end;
case ch of
'A'..'Z','a'..'z':label.caption:='Buchstabe';
'0'..'9':        label.caption:='Ziffer';
'+','-','*','/':  label.caption:='Operator';
else
label.caption:='erweitertes ASCII-Zeichen';
end;

Vergleiche mit den Komponenten "Checkbox" und "RadioButton"!

Projekt PNOTSTAT (Schularbeitsnotentatistik)

Entwirf ein Programm, mit dem die Schularbeitsnoten einer Klasse eingegeben kann! Anschließend sollen die Anzahl der jeweiligen Note und der Notendurchschnitt ausgegeben werden!



Projekt PQUAD (Quadratische Gleichungen)

Quadratische Gleichungen sollen nach der Eingabe der Koeffizienten a, b und c gelöst und ihre Graphen dargestellt werden (Lösungsformel!)...