Hallo,
Zitat:
Okay aber jetzt hängt es sich bei Knopfdruck auf.
Wundert Dich das? Wenn ich mir
k := random(1000)+1;
und
Delphi-Quellcode:
REPEAT
n := random(100) +1; m:= random(100) +1;
UNTIL (n>=m) and (n/m = k);
ansehe, dann kann die Abbruchbedingung nur erfüllt werden, wenn k <= 100 gilt. Für ein k > 100 kann n div m = k nie erfüllt werden, denn das Maximum für n ist 100, das Minimum für m ist 1 - also bestenfalls n div m = 100 zu erreichen.
Wenn Du Glück hast und 1 <= k <= 100 erfüllt ist, dann wird die Schleife u. U. aber auch eine ganze Weile laufen bis n = k * m gilt. Wenn Du kein Glück hast (und das ist sehr wahrscheinlich): Endlosschleife.
In der zweiten Schleife - Random(1000) - ist das Erreichen der Abbruchbedingung prinzipiell möglich; selbst bei k = 1000 kann mit n = 1000 und m = 1 die Abbruchbedingung erreicht werden - ist halt nur eine Frage der Zeit wann die Konstellation eintritt.
Gruß