Thema: Delphi Fehler in Rechenprogramm

Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#9

AW: Fehler in Rechenprogramm

  Alt 16. Nov 2013, 15:20
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ß
Volker Zeller
  Mit Zitat antworten Zitat