Verstehe Algorithmus nicht
-
Hi,
ich eigne mir zur Zeit C++ mit dem Buch "C++ lernen und professionell anwenden" an.Nur verstehe ich einen Schleifenalgorithmus im Buch nicht so ganz.
Er sieht folgendermaßen aus:
long lower, upper, step; for( lower=1, step=1; lower <=maxEuro; step*=10, lower = 2*step) for( euro = lower, upper = step*10; euro <= upper && euro <= maxEuro; euro+=step) Ausgabe ...Das Programm rechnet Euro in Dollar um lower und upper stellen dabei Ober und Untergrenze da und step die Schrittweite. maxEuro stellt die Wiederholungen dar.
Da ich den Ablauf nicht so ganz nachvollziehen konnte, habe ich einmal alles ausgeben lassen und nun zu meinen Fragen:
lower und step erhalten jedes mal den Wert 1 und upper den Wert 10 nur euro wird immer erhöt und das verstehe ich nicht so ganz. Wo ist festgelegt, dass die Variablen lower, step und upper wieder zurückgesetzt werden und die Variable Euro nicht? Weil in meiner Denkweise ergeben step und lower nach dem ersten Durchlauf 10 und 20 somit würde der Rest der Schleife allerdings nicht mehr hinhauen. (maxEuro ist 5).
-
Die äußerste Schleife zählt step (und lower) in Zehnerpotenzen hoch, bis lower den obersten Wert überschritten hat (also step=1,10,100,... lower=1,20,200,...). Die innerste Schleife zählt in step-Schritten von lower bis upper(=10*step) hoch (also 1,2,3,...,10/20,30,40,...100/200,300,...,1000).
PS: Setz mal einen größeren Wert für maxEuro an, dann siehst du das vielleicht deutlicher

-
Ahh stimmt, hab mal ne höhere Grenze gesetzt und siehe da, ich verstehs ^^
Danke ^^