ich habe folgendes Programm und frage mich dabei, wieso ich wenn ich z.B. Zahl = 9 setze, die while Schleife nochmal betreten wird, wenn Wurzel den Wert 3 bekommt, sodass die Schleife erst bei Wurzel = 4 abbricht und der Wert dann unten nochmal korrigiert werden muss.
Hier das Programm:
procedure Wurzel is Zahl : Integer; --Zahl, die vom Benutzer festgelegt wird Wurzel: Integer:=0; --Die aus der Zahl berechnete Wurzel, wird anfangs Null gesetzt begin Put("Geben Sie eine natuerliche Zahl ein, deren Wurzel berechnet werden soll: "); Get(Zahl); --Eingabe der Zahl while Wurzel*Wurzel <= Zahl loop --Schleife läuft so lange, bis die Wurzel mit sich selbst multipliziert größer oder gleich dem Ergebnis ist Wurzel := Wurzel+1; --Damit beim nächsten Durchlauf der nächsthöhere Wert probiert wird end loop; Wurzel := Wurzel-1; Put("Das Ergebnis lautet: "); Put(Wurzel,0); New_Line; --Ausgabe des Ergebnisses end;
Hm hat sich erledigt, ich bin ja doof gewesen...sorry für den überflüssigen Thread.