| Autor | Beitrag | 
| seerosengiesser Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Mo 09.01.12 22:06 
 
Hallo,
 ich habe versucht einen Jumpsort zu Programmieren.
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 
 | vari,j,stellemax,ende : integer;
 begin
 ende := 14;
 for I := 0 to ende -1 do
 begin
 stellemax:=0;
 for J := 1 to ende -1 do
 begin
 If (Zahlen.ZfZ[stellemax]<Zahlen.Zfz[j]) then
 begin
 if (stellemax <> j-1) then
 begin
 Zahlen.tausche(stellemax,j-1);
 end;
 stellemax := j;
 end;
 end;
 If(stellemax <> ende)then
 begin
 Zahlen.tausche(stellemax,ende);
 end;
 ende := ende-1;
 end;
 end;
 |  Er bricht immer ab an der Stelle des Tauschens, die Prozedur läuft allerdings bei anderen SOrtieralgorithmen. 
 Findet irgendjemand einen Fehler?
 MfG Frederik Lentjes
Moderiert von  Martok: Delphi-Tags hinzugefügt | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Mo 09.01.12 22:13 
 | 
|  | 
| seerosengiesser  Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Mo 09.01.12 22:31 
 
Doch das Programm lässt sich kompilieren aber es bricht ab wie bei einer Endlosschleife..die beiden werte die an die prozedur tausche sind nur die stellen im array wor sich die zu tauschenden werte befinden..aber sonst hattest du recht. | 
|  | 
| Xion 
          
  Beiträge: 1952
 Erhaltene Danke: 128
 
 Windows XP
 Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse),  C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
 
 | 
Verfasst: Di 10.01.12 21:08 
 
	  |  seerosengiesser hat folgendes geschrieben  : |  	  | aber es bricht ab wie bei einer Endlosschleife.. | 
 Also bricht es garnicht ab?      Meinst du mit bricht ab einen "Freeze", d.h. dass das Programm einfach nichtmehr reagiert?
 In deinem gezeigten Code ist weder eine Endlosschleife noch ein blockierender Aufruf (höchstens in der Unterfunktion tausche), ich kann mir nicht erklären, wie dort ein "Freeze" entstehen kann._________________a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius) | 
|  | 
| ub60 
          Beiträge: 764
 Erhaltene Danke: 127
 
 
 
 
 | 
Verfasst: Di 10.01.12 23:05 
 
Das Array geht von 0 bis ende-1.
In Zeile 21 tauscht Du aber an Stelle ende, hier muss ende-1 hin.
 
 ub60
 | 
|  | 
| seerosengiesser  Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Mi 11.01.12 10:06 
 
Im Projekt Project2.exe ist eine Exception der Klasse EAccessViolation mit der Meldung "Zugriffsverletzung bei Adresse 00465A80 in Modul Project2.exe. lesen von Adresse 00000017 aufgetreten.
 
 dann kann ich abbrechen fortsetzen und hilfe..
 das ist das was ich mit aqbbrechen meine..
 | 
|  | 
| seerosengiesser  Hält's aus hier
 Beiträge: 4
 
 
 
 
 | 
Verfasst: Mi 11.01.12 10:33 
 
Habe den Fehler gefunden..Das Array fängt bei 1 an und geht bis 15 und ich dachte es geht von 0 bis 14..Oh Man     | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Mi 11.01.12 11:40 
 | 
|  |