Je konkreter deine Fragen sind, umso mehr kann man erkennen, dass du dich mit der Thematik auseinandergesetzt hast - und umso eher kann und darf man dir helfen. Wenn du mit einer while-Schleife nicht klarkommst, dann zeig uns doch einfach mal was du da geschrieben hast und was falsch läuft.
Grundsätzlich ist eine while-Schleife so aufgebaut:
Code:
Wiederhole solange Bedingung X erfüllt ist
{
anweisung1;
anweisung2;
}
Die Schleife wird also solange
anweisung1 und
anweisung2 wiederholt ausführen bis die Bedingung X
nicht mehr erfüllt ist. Das heißt also auch, dass innerhalb der Schleife irgendwas passieren muss, das X beeinflusst. Ändert sich innerhalb der Schleife nichts an X, geht die Schleife endlos weiter, daher der Begriff "Endlosschleife". In deiner Aufgabe soll ja solange durch 2 geteilt wird
bis ein bestimmter Zustand erreicht wird - das ist die Bedingung X und anweisung1, etc. sind die Berechnungen, die eben dazu führen, dass X irgendwann nicht mehr erfüllt ist und while-Schleife beendet wird. Manchmal muss man die Bedingung aus der Aufgabe aber umdrehen, weil X ja gültig sein muss damit die Schleife
weitergeht.
Hier ein Beispiel:
Code:
zahl = 1
wiederhole solange zahl < 3
{
schreibe zahl auf bildschirm
erhöhe zahl um 1
}
1. Durchlauf (zahl ist 1):
1 < 3 --- solange Bedingung erfüllt - fortsetzen
1 wird auf dem Bildschirm ausgegeben
zahl wird um 1 erhöht
2. Durchlauf (zahl ist 2):
2 < 3 --- solange Bedingung erfüllt - fortsetzen
2 wird auf dem Bildschirm ausgegeben
zahl wird um 1 erhöht
3. Durchlauf (zahl ist 3):
3 ist
nicht < 3 --- solange Bedingung nicht erfüllt
Schleife vorbei
Jetzt musst du das nur noch nachvollziehen, in die korrekte Schreibweise mit while, etc bringen und natürlich deine /2 Berechnung einfügen nebst der Bedingung für den
Fortlauf der Schleife.