![]() |
Probleme mit Mergesort
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe bei folgendem Quellcode ein Problem (im Attachement)
Code entfernt, da wohl im Anhang. Das Problem liegt bei dem Mergesort Algorithmus. Es wird nicht nichts ausgegeben, das heißt, ich weiss nicht mal ob der Algorithmus funzt. Eigentlich sollte er funktionieren, es gibt keine Fehlermeldungen. Es gibt keine Fehlermeldungen. Es soll ein Array sortiert werden (statischer Array). Dieser sollte dann eigentlich in einer ListBox ausgegeben werden. Es wird aber nicht sortiert ausgegeben, das heisst, wie man es eingibt so wird es ausgegeben. Die Der Array ist vom Typ extended. Ich sitze jetzt schon 2 Wochen daran und komme absolut nicht weiter. Wer kann mir helfen? Ich wäre sehr dankbar, wenn mir jemand helfen würde. PS : Im Attachement ist der komplette Code, der bisher fertig ist. MfG walker [edit=Luckie]Code entfernt. Mfg, Luckie[/edit] |
Re: Wer kann mir helfen?
Herzlich Willkommen in der DP. :hi:
Ändert bitte den Titel deines Thread. "Wer kann mir helfen" ist nicht sehr aussagekräftig. Desweiteren poste bitte beim nächsten Mal nur den relevanten Codeteil und gibt genau an, was nicht klappt bzw. was es eigentlich tun sollte aber nicht tut und eventuell Fehlermeldung. |
Re: Wer kann mir helfen?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo walker,
ich habe dein Programm gerade getestet. Der MergeSort-Algorithmus scheint bestens zu funktionieren(siehe Anhang). Tschüß Markus |
Re: Probleme mit Mergesort
Ja, nur wo liegt in dem Quellcode das Problem, weil die Ausgabe nicht funktioniert?
Du darfst nicht erst Selectionsort durchführen, weil dann der Array inhalt von Selectionsort kopiert wird. Klicke zuerst auf Mergesort. Dann funktioniert es nicht mehr MfG walker |
Re: Probleme mit Mergesort
Hi Walker,
habe mir so eben dein Programm nochmal angeschaut. Als erstes etwas zu MergeSort. Wenn ich auf den Button MergeSort drücke, wird nur folgender Code ausgeführt:
Delphi-Quellcode:
Es werden dabei nur die Zahlen in der Reihenfolge ausgegeben, wie sie in der ListBox1 stehen, sprich sie sind noch unsortiert.
procedure mischsortiere (links, rechts : integer);
var mitte : integer; begin if feld[links] < feld[rechts] then begin mitte := (links + rechts) div 2; mischsortiere (links, mitte); mischsortiere (mitte + 1, rechts); end; end; begin mischsortiere(1, count); begin for i := 1 to count do ListBox3.Items.Add(FloatToStr(feld[i])); end; end; Die Prozedur mische wird bei Drücken des Button nicht mit aufgerufen. Ich würde vorschlagen(wegen besserer Übersicht), dass du die einzelnen Prozeduren in private bzw public deklarierst und sie nicht alle in einer Prozedur vereinbarst. Desweiteren würde ich vorschlagen, das du dem Edit1 die OnKeyPress Methode zuweist und nicht der gesamten Form. Die Prozedur Fenster_leeren würde ich ebenfalls unter private/public deklarieren. z.B:
Delphi-Quellcode:
Tschüß Markus
private
{ Private-Deklarationen } procedure fenster_leeren (var n : integer); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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