zurück weiter

C++

G.Eichelsdörfer - Staatliche Technikerschule Weilburg

Ablaufstrukturen: Schleifen für Wiederholungen (Iterationen) (2)

Zur Berechnung des Bruttopreises

vollständige Ablaufstruktur Die in der Schleife wiederholt abzuarbeitende Anweisungssequenz wird Schleifenrumpf genannt. In einer kopfgesteuerten Schleife wird zuerst geprüft, ob die Bedingung für den Schleifenrumpf erfüllt ist. Wenn die Schleife zum ersten Mal "betreten" wird, kann die Bedingung bereits nicht erfüllt sein, d.h. der boolesche Ausdruck ergibt zur Laufzeit den Wert "falsch". In einem solchen Fall wird der Schleifenrumpf nicht ein einziges Mal abgearbeitet.

Damit dies in unserem Programm nicht geschieht, muss der Nettowert vor dem Eintritt in die Schleife einen sinnvollen Wert haben. Deshalb ist es zweckmäßig, den Nettowert vorher einzulesen. Andernfalls beinhaltet die Variable Netto einen Zufallswert, der sich aus dem unvorhersehbaren Bitmuster im Speicherplatz der Variablen ergibt. Weil für jeden Schleifendurchlauf ein neuer Nettowert benötigt wird, muss nach der Verarbeitung des alten Wertes ein neuer Wert eingelesen werden.

Frage 1:
Was geschieht bei der Abarbeitung des Programms, wenn der Anwender beim ersten Mal für Netto einen negativen Wert eingibt?

Frage 2:
Wie würde sich das Programm verhalten, wenn das Einlesen des Nettowertes im Schleifenrumpf (unten) fehlen würde?

Strukturblock einer kopfgesteuerten Schleife Beispiel
Strukturblock einer kopfgesteuerten Schleife Strukturblock zur obigen Schleife

Frage 3:
Das Beispiel entspricht nicht vollständig dem obigen Pfaddiagramm. Was fehlt hier?


Legen Sie zur Bearbeitung der folgenden Aufträge einen Arbeitsbereich "schleifen1" an! Erstellen Sie jeweils ein Struktogramm und den Quelltext in C++!

Auftrag 1

Erweitern Sie das Programm "brutto" aus den ersten Übungen um die beschriebene kopfgesteuerte Schleife!
Projekt: bruttoiter (iter von iterativ, wiederholend)

Auftrag 2

Erweitern Sie das Programm "bruttonetto1" (s. bedingte Anweisungen) um den Menüpunkt "0: Programm beenden"
Projekt: bruttonetto1x (x von extended, erweitert)

Auftrag 3

Erweitern Sie "bruttoiter" (s.o.) so, dass die Anzahl der berechneten Bruttopreise gezählt wird. Vor jeder Netto-Eingabe soll die Nummer der Eingabe stehen. Vor der ersten Eingabe soll "1: " stehen, vor der zweiten entsprechend "2: " u.s.w. Zusätzlich sollen alle berechneten Bruttopreise summiert werden. Diese Summe soll nach dem Verlassen der Schleife ausgegeben werden.
Projekt: bruttostat (stat von Statistik)