Schleifenanweisung mit der Bedingung - while


Indem wir den Zyklus untersuchten, sagten wir, dass, wenn es eine Reihe von Wiederholungen gab, das Programm mit dem Betreiber für den Zyklus reduziert werden könnte. Und wenn es keine bekannte Wiederholung gibt? Es passiert oft.
Denken Sie beispielsweise an die Übertragung der Anzahl vom Dezimalsystem auf ein anderes: Wir müssen die Zahl (und dann das Ergebnis der Trennung) auf der Grundlage des Berechnungssystems teilen, bis wir Null in der Antwort erhalten. Wie oft teilen wir uns? Und es gibt viele Programme, die diesen Algorithmus tun.
Wie funktioniert das?
Für einen solchen Fall gibt es einen Zyklusoperator unter einer Bedingung.
In Pascal beginnt der Zyklusoperator mit dem Wort und hat das folgende Design.
while <условие> do begin
  тело цикла
end
Wie wir schon wissen,
- Zustand ist ein Ausdruck, der entweder die Wahrheit oder die Lüge (wie in einem bedingten Operator) bewirken kann
- Cycle Body ist Teams, die wiederholt werden müssen
Anfang und Ende kann entfallen, wenn der Zykluskörper nur aus dem Bediener besteht

Wie funktioniert der Bediener?
ANHANG Das Programm legt zunächst die Bedingung nach dem Wort fest. Ist die Bedingung erfüllt (d.h. das Programm wird vom/den Betreiber(n) im Telezyklus durchgeführt.
2. Wie im Zyklus für, wenn der Körper des Zyklus enthält nur einen Bediener, die Wörter beginnen und Enden, die den Körper des Zyklus trennen kann gelöscht werden.
3. Sobald der Zykluskörper überholt wurde, wird das Programm erneut untersucht und erneut untersucht.
L 347 vom 20.12.2013, S. 1). Diese Maßnahmen (bezüglich der Bedingungen - Leistung des Zykluskörpers) werden wiederholt, bis die Bedingung falsch wird.
5. Wenn bei der ersten Leistung des Betreibers die Bedingung nicht sofort erfüllt wird (kompliziert), wird das Programm nie die Stelle des Zyklus erfüllen.

Bei der Analyse des Bedieners &apos; s Arbeit sollte klar sein, dass der Bediener im Körper des Zyklus vorhanden sein sollte, der die Bedingung beeinflusst.
Beispielsweise kann der Zyklus die im Zustand verwendeten Variablen erhöhen.

Beispiel des Programms nennen wir "Das magische Konto."
Wir haben das Programm, anstatt uns zu zählen, zum Beispiel bis 10.
Das Programm sollte die Phrase "Start" und "Finish" nehmen und, zwischen diesen Aktionen, die Zahlen, die berücksichtigt werden.
Zum Beispiel
Start
1 2 3 4 5 6 7 8 9 10
Fertig
Das Programm wird mit Hilfe des Zyklus wie folgt aussehen.
var i: integer;
begin
    writeln('Start');
    i := 1;
    while i <= 10 do begin
        write(i, ' ');
        i += 1; //Оператор, который влияет на изменение переменной в условии    
    end;
    writeln();
    writeln('Finish');
end.
In diesem Programm legen wir den Wert der Variablen i:=1 - Beginn der Zählung
Als nächstes, solange wir die Bedeutung der Variablen haben i nicht mehr (was weniger als oder gleich) die Bedeutung, die wir brauchen, sind wir
1 - die Variable i-Wert anzeigen
2 - den Wert der Variablen i bis 1 zu erhöhen, beeinflusst der Bediener den Wert der konsolierten Bedingung. Geändert i erhöht, d.h. irgendwann wird die Bedingung i=10 falsch. Es wird passieren, wenn ich 11 bin. In diesem Fall wird die Stelle des Zyklus nicht mehr durchgeführt und das Programm wird nach dem Operator &apos; s Zyklus, d.h. Schreibln();
schriftlich('Finish');

Versuchen wir, ein Programm zu schreiben, um mit folgenden zu behandeln:

Es besteht die Notwendigkeit, eine Zahl einzuführen (die weniger als 3.000 Tausend sein wird) und die Zahl der Zahlen zu bestimmen.

Die Idee einer Lösung


Holen wir die Nummern. Der Originalzähler ist 0. Wir müssen nur die letzte Zahl konsequent trennen (dies kann durch Reduktion der Zahl 10 mal, mit dem 10-stelligen Gesamt) und jedes Mal, wenn der Zähler um 1 erhöht werden muss.
Nachdem wir alle Zahlen geschnitten haben, bekommen wir die Nummern auf dem Zähler.
Alternativ kann der Algorithmus wie folgt gelesen werden:
Ich will das nicht tun. Ich werde es 10 machen und es so aussehen lassen.
Nummer (n)Steuerung
ANHANG0)
121
12
0)3
Das Programm wird wie folgt aussehen.
var n, count: integer;
begin
    read(n);
    count := 0;
    while n <> 0 do begin
        count += 1;
        n := n div 10;
    end;
    writeln('Number - ', n, ' contains ', count, ' digits');
end.
Das Programm muss informiert werden, da es auf vielen anderen Aufgaben im Zusammenhang mit der Nummerierung basiert.

Ziel

Es gibt einen Datenfluss am Eingang des Programms, eine Sequenz von ganzen Zahlen, die mit Null endet (Null in Folge). Es ist notwendig, die Summe der Elemente dieser Sequenz zu finden.
Entscheidungs-Algorithmus
Summe =
Einführung x/
solange x=0 // wenn der Eintrag abgeschlossen ist,
/ d.h. Null wurde noch nicht eingeführt
Summe = Summe + x // mit Referenznummer, jede Aktion kann ergriffen werden.
/ Eine Überprüfung der Nummer für eine Bedingung, etc. kann hinzugefügt werden.
Einführung x/
Knospen
Summe // Ausgabe