AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Listen/ verkettet Listen

Ein Thema von legionen · begonnen am 24. Okt 2007 · letzter Beitrag vom 27. Okt 2007
 
legionen

Registriert seit: 3. Sep 2007
23 Beiträge
 
#17

Re: Probleme mit Listen/ verkettet Listen

  Alt 27. Okt 2007, 15:57
hallo, ich bins leider schon wieder

also grundsätzlich läuft der algorithmus schon ganz gut, nur leider immer noch nicht zufriedenstellend ich habe ihn etwas weiter geändert, leider macht er immer noch fehler.... hier mal, was ich geändert habe in blau und rot zu sehen....

blau: da ich immer zwei aufeinanderfolgende elemente vergleichen will, also auch vorletzten und letzten darf ich nich bis zum letzten springen und dann mir werte aus dem danach holen (kommt zu fehler)

rot: da der dummy leer ist, springe ich schon vor dem ersten mal checken auf das nächste element, das sozusagen das erste element ist.

PROBLEM: solange die beiden letzten elemente so unterschiedlich sind, dass sie nicht zusammengelegt werden müssen ist alles okay, aber sobald die beiden letzten elemente "vereint werden sollen" kommt es zu einem fehler "access violation at adress ...."! Aber dard auch erstmal nicht abbrechen, den das jetzt letzte element könnte ja mit dem vorletzten element wieder vereint werden können..... ABER ich weiss einfach nicht mehr weiter..... ich sehe nicht wo der fehler ist... eigentlich sollte doch die While Do Kriterien einen fehler abbsichern, oder?


While Durchlauf Do
Begin
Element := Dummy;
Durchlauf := False;
gefunden := false;
While (Element^.nd^.nd<> NIL) and (Element^.nd<> NIL) and (not Gefunden) do
Begin
Element:= Element^.nd; //muss hierhin, da im dummy kein wert abgelegt ist, sonst fehler
If (Element^.Nummer < (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 1.2)) and
(Element^.Nummer > (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 0.8 )) and
(Element^.nd^.Nummer < (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 1.2)) and
(Element^.nd^.Nummer > (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 0.8 )) Then
Begin
Element^.Nummer := (Element^.Nummer+Element^.nd^.Nummer) / 2;
tmp := Element^.nd;
Element^.nd := tmp^.nd;
Dispose(tmp);
Durchlauf := true;
gefunden := true;
End;
End;
End;

Delphi-Quellcode:
While Durchlauf Do
   Begin
     Element := Dummy;
     Durchlauf := False;
     gefunden := false;
     While [color=#009fff](Element^.nd^.nd<> NIL) and [/color](Element^.nd<> NIL) and (not Gefunden) do
       Begin
       [color=#ff0000]Element:= Element^.nd; //muss hierhin, da im dummy kein wert abgelegt ist, sonst fehler [/color]
         If (Element^.Nummer < (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 1.2)) and
            (Element^.Nummer > (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 0.8 )) and
            (Element^.nd^.Nummer < (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 1.2)) and
            (Element^.nd^.Nummer > (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 0.8 )) Then
           Begin
             Element^.Nummer := (Element^.Nummer+Element^.nd^.Nummer) / 2;
             tmp := Element^.nd;
             Element^.nd := tmp^.nd;
             Dispose(tmp);
             Durchlauf := true;
             gefunden := true;
           End;
       End;
   End;
Ihr habt mir bisher schon so gut geholfen, dafür nochmals vielen Dank, falls das letzte problem zu beheben wäre, das wäre super!!! wer in köln/umgebung wohnt und noch zusätzlich das problem lösen kann, den werde ich zum dank auf nen drink einladen
  Mit Zitat antworten Zitat
 


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 10:57 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-2025 by Thomas Breitkreuz