AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi [gelöst] Wie oft wird diese Schleife durchlaufen?
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Wie oft wird diese Schleife durchlaufen?

Ein Thema von asq81 · begonnen am 17. Feb 2011 · letzter Beitrag vom 17. Feb 2011
Antwort Antwort
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.869 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 11:24
Funktioniert den das?
iY += LStep; Das ist doch eher c.
Markus Kinzler
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 11:33
Lazarus?
Benutze bitte unbedingt den Delphi-Tag (den mit dem Römerhelm)
Dann sieht der Code übersichtlicher aus
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 11:39
Was ist mit

LASSDidx und
LASDidx ?
Gruß, Jo
  Mit Zitat antworten Zitat
asq81

Registriert seit: 21. Jan 2011
4 Beiträge
 
#4

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 11:45
Funktioniert den das?
iY += LStep; Das ist doch eher c.
Richtig, ich benutze Lazarus da geht es
(hatte zuvor die a := a + b; Schreibweise, aber der Fehler bleibt an selber Stelle)

Was ist mit

LASSDidx und
LASDidx ?
ist nur ein Schreibfehler, ich habe ein paar Codeteile vereinfacht dargestellt, der Übersichtlichkeit halber, muss dabei passiert sein (die weggelassenen Teile sind bei mir im Original auskommentiert, haben also keinen Einfluss)

edit: @jo: wo siehst du den Schreibfehler? Ich glaube ich habe den bereits korrigiert? =)

Geändert von asq81 (17. Feb 2011 um 11:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

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

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
asq81

Registriert seit: 21. Jan 2011
4 Beiträge
 
#6

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 12:40

ich benutze jetzt das Äquivalent: (weil Lazarus offenbar kein Ceil() kennt)
Delphi-Quellcode:
LHelper := Trunc(((LEndX-LStartX)/LIterationPixelStep)+1)
         * Trunc(((LEndY-LStartY)/LIterationPixelStep)+1);
(Liefert nun immer exakte Menge an benötigten Elementen)

Super! Danke vielmals!! =)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#7

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 13:07

ich benutze jetzt das Äquivalent: (weil Lazarus offenbar kein Ceil() kennt)
Würde mich allerdings stark wundern! Jedenfalls hat FPC function ceil(x: float) : Integer in unit math (genau wie Delphi).
  Mit Zitat antworten Zitat
asq81

Registriert seit: 21. Jan 2011
4 Beiträge
 
#8

AW: Wie oft wird diese Schleife durchlaufen?

  Alt 17. Feb 2011, 14:13
Stimmt, ist in Math mit drin, wusste ich nicht. Danke! =)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz