Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 12:09
Ich würde folgendes korrigieren:
LHelper := Trunc(((LEndX-LStartX)*(LEndY-LStartY))/Sqr(LStep))+1; // +1 wegen Trunc() zu
LHelper := ceil((LEndX - LStartX) / LStep) * ceil((LEndY - LStartY) / LStep); Zur Erklärung zu deinem Beispiel: Die X-Schleife wird 16 mal durchlaufen, die Y-Schleife 9 mal. Folglich greifst du auf 144 Elemente zu.
LHelper wird aber anders berechnet: 1000/64 = 15.625, 770/64 = 8.90625. Das Produkt daraus wird aber 139.16..., entsprechend bekommt das Array nur 140 Elemente. Es muss vor dem Multiplizieren gerunden werden.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat