AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 23:32

Parameter dieser Suchanfrage:

Suche in Thema: Doppel schnell aus Liste löschen.
Suche alle Beiträge, die von "Horst_" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 9 von insges. 9 Treffern
Suche benötigte 0.002s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 11. Dez 2014
    Hallo,

    wie kannst Du Dir so sicher sein?
    Ich weiß nicht, wie bei Dir uFloatPoint.pas aussieht.
    Wahrscheinlich habe ich jetzt eine falsche Version.

    program FloatPointsTest;

    {$IFDEF FPC}
    {$MODE Delphi}
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 10. Dez 2014
    Hallo,

    dann nimm doch 10 Punkte die schon nach x sortiert sind, Aber die Y-Werte gegeneinanderlaufen.

    N := 5;
    for I := 1 to N do
    begin
    FLoatPoints.AddXY(i*cEps/N,i);
    FLoatPoints.AddXY(i*cEps/N,(N-I+1)+0.5*cEps);
    end;
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 10. Dez 2014
    Hallo,

    das ist ja gut.
    Man braucht ein paar wiederholbare Testfälle.Dazu sollte man random eigentlich weglassen.Damit man sieht, dass aus 1000 + 1000 verschobenene eben auch am Ende wieder 1000 werden.
    Sonst wird ein Punkt öfter verschoben, und es belieben dann eben 1100 über.

    Gruß Horst
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 10. Dez 2014
    Hallo,

    der gepostete Schnipsel soll nur das Vorgehen zeigen.
    cEps ist global definiert in uFloatPoint.pas

    In den angehängten Dateien ist es dann funktionstüchtig. ( Man kann sich das auch tatsächlich mal anschauen )
    Es ging doch darum, das Deine Sortierung nicht wirklich aufsteigend sortiert, weil dort
    Result := CompareValue(A.X, B.X, cEps);
    immer eine Umgebung betrachtet wird.
    Ich...
  • Forum: Object-Pascal / Delphi-Language

     
      by Horst_, 10. Dez 2014
    Hallo,

    ich habe endlich den casus cnactus gefunden.
    Deine SortCompareX darf nur mit eps= 0 arbeiten.Ich habe wie blöd gesucht, warum größere x-Werte vor kleineren auftauchten....
    Ich hab jetzt auf einem Kreis mit Radius cEps um Punkt A verglichen.
    RemoveDoublesII behält die Daten in der Ausgangsliste, also muss kein extra Feld angelegt werden.

    procedure TFloatPoints.RemoveDoublesII;
    var...
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 9. Dez 2014
    Hallo,

    da bin ich missverstanden worden...
    Beim Versuch mit kleinem eps

    procedure TFloatPointsTestForm.RemoveDoublesButtonClick(Sender: TObject);
    const
    Eps = 1E-3;
    steigt das Programm sofort aus.
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 9. Dez 2014
    Hallo,

    also wäre es geschickter alle Punkte nach x zu sortieren und anschliessend nur einen Bereich von x_center+-eps zu betrachten und diesen nach y zu sortieren und zu untersuchen.( Sweep-line )
    Anschliessend wandert man um ein eps weiter.
    Das ist viel Sortiererei, aber man kann sich merken, wie x_center+eps nach y sortiert war. Das wird im nächsten Schritt ja x_center-eps.Da bietet sich...
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 8. Dez 2014
    Hallo,

    da wäre eine .Copy Funktion wohl besser.

    j := 0;
    Für i von 1 bis Fcount
    falls Liste <> Liste dann
    kopiere Liste -> Liste
    erhöhe j
    Setze Fcount auf j
  • Forum: Object-Pascal / Delphi-Language

    AW: Doppel schnell aus Lise löschen.

     
      by Horst_, 8. Dez 2014
    Hallo,

    Du sortierst doch zweidimensional.
    Da musst Du doch zuerst x und nur bei gleichem x auf y testen

    Statt
    while (FItems.X <= Pivot.X) and (FItems.Y < Pivot.Y) do
    Inc(I);
    Nun
    while true do


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Horst_&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=183048
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz