Die meisten Algorithmen erfordern, dass gewisse Berechnungen wiederholt ausgeführt werden, bis eine bestimmte Bedingung eintritt. Man unterscheidet drei Arten von Schleifen. Die erste Art, die while-Schleife, wird in diesem Abschnitt behandelt.
Der Rechner soll von 10 rückwärts bis 0 zählen und dabei jedes Mal das Zeichen * ausgeben.
Die Variablennamen i, j, k werden gerne für Zähler eingesetzt.
int main() { int i=10; while(i>0){ i=i-1; cout <<"*"; } cout<<"\n Fertig"; getch(); return 0; }
In der while-Schleife bestimmt die Laufbedingung - das ist der Ausdruck in der Klammer nach while - wielange die folgende Anweisung wiederholt wird. Der Wert des Ausdrucks wird vor der Abarbeitung der Anweisung überprüft. Daher kann es auch vorkommen, dass eine Schleife überhaupt nicht durchlaufen wird.
while(Ausdruck) //Schleifeneintrittsbedingung Anweisung; while(Ausdruck){ //Schleifeneintrittsbedingung Anweisung1; Anweisung2; ...; }
while leitet die while-Anweisung ein. Es folt in Klammern ( ) ein Ausdurck, welcher einen Wert true oder false liefert. Ist der Wert true, werden die Anweisungen im Schleifenkörper ausgeführt. false zurückliefert, wird der Schleifenkörper übergangen und die erste Anweisung nach der Schleife durchgeführt. Bei Rückgabe von true wird der Schleifenkörper erneut ausgeführt.a) Schreibe ein Programm, welches die Zahlen von 1 bis zu einer Obergrenze n=30 aufsummiert, also die Summe sum = 1+2+3+4+…+30 berechnet.
b) Erweitere dein Programm so, dass der Benutzer selbst die Obergrenze n bestimmt.
Lösung:
int main() { int n; int sum=0; cout<< "Das folgende Programm summiert die Zahlen 1 - n auf. \n"; cout<<"Geben Sie eine Obergrenze ein: "; cin>>n; for (int i=1;i<=n ;i++) { sum=sum+i; } cout<<"Ergebnis: " << sum; getch(); return 0; }
Schreibe ein Programm mit dem Namen „Noten“, das die erreichte Punkteanzahl bei der Mathematikschularbeit in eine Note umwandelt:
Gibt der Benutzer eine falsche Punkteanzahl an (> 48) soll er auf seine Falscheingabe hingewiesen werden.
Der Benutzer des Programms möchte nicht für jeden Schüler das Programm neu starten müssen. Überlege dir, wie du die Benutzerfreundlichkeit des Programms mit Hilfe von Schleifen erleichtern könntest.
int main() { int eingabe; int anzahl; //Höchstgrenze int i=1; //Zähler cout<<"Anzahl der Schularbeiten: "; cin>>anzahl; while(i<=anzahl) { cout << "Wie viele Punkte hast du erreicht? "; cin >> eingabe; if (eingabe > 48 || eingabe < 0) { cout << "Falsche Eingabe!"; } else { if (eingabe < 24) { cout << "Nicht Genuegend"; } else if (eingabe >= 24 && eingabe <= 29) { cout << "Genuegend"; } else if (eingabe >= 30 && eingabe <= 38) { cout << "Befriedigend"; } else if (eingabe >= 39 && eingabe <= 44) { cout << "Gut"; } else if (eingabe >= 45 && eingabe <= 48) { cout << "Seht gut. Hast du toll gemacht!"; } } i++; } cout << "\n\n\n\n Drueke eine Taste um das Proggi zu beenden"; getch(); return 0; }