Autor Beitrag
läpi
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 06.09.06 08:25 
hallo liebe freunde

ich soll in meinem programm zahlen in einer memo ausgeben dies habe ich auch geschafft.
allerdings soll ich jetzt diese zahlen per buttondruck nun sortieren und das alles nicht mit bubblesort oder sowas sondern mit einer selbst programmierten sortierung kann mir da jemand helfen ?


danke
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 06.09.06 08:29 
äh, du sollst ohne sortier-algo sortieren?!
läpi Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 06.09.06 08:35 
joa
aber wenn du einen guten algo kennst der recht einfach ist kannst du mir den schreiben?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8549
Erhaltene Danke: 478

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 06.09.06 08:57 
Einfach sind z.B. Bubblesort, Sortieren durch Auswahl, Sortieren durch Einfügen.

Schwieriger sind Heapsort, Mergesort, Quicksort.

Schwachsinnig ist Bogosort.

Fast alles weitere, was man sich so ausdenken kann, basiert im Wesentlichen auf diesen Algorithmen. Es mag zwar noch ein paar andere Verfahren geben, aber das sind imho die gängigsten.

Zu allen (außer evtl. dem letzten) gibt es hier im Forum Threads und fertigen Quelltext.

_________________
We are, we were and will not be.
läpi Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 06.09.06 09:01 
jo habe aber nochmal nachgefragt wir sollen wirklich ohne algo das machen
sprich mit eigenen variabelen die dann jedes zeile in meiner memo(dort gebe ich die zahlen aus)
miteinander vergleicht und dann die zahlen der reihenfolge nach ausgibt
DaKirsche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187

Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
BeitragVerfasst: Mi 06.09.06 09:03 
Darfst du nun einen Sortieralgorythmus verwenden oder nicht?

Also wenn du einen verwenden darfst, dann mache doch folgendes :

Prüfe, für die Anzahl der Zahlen - 1, ob die folgende Zahl kleiner ist und vertausche die gegebenenfalls.

Nehmen wir an, du tippst in jeder Zeile deines Memos eine Zahl und gibst insgesamt 100 Zahlen ein.
ausblenden 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:
26:
27:
28:
29:
procedure TForm1.SortMemoList();
var
ZahlenArray : array [0..100of Integer;     //Hier werden die Zahlen drin gespeichert
x,y : Integer;      //Das sind Counter für die Schleifen
TempInt : Integer;  //Dies ist die Tauschvariable
Anzahl : Integer;   //Anzahl eingetragener Werte im Memo
begin
//Anzahl der Werte weden bestimmt
Anzahl := Memo1.Lines.Count;
//Jetzt werden die Zahlen aus dem Memo in ein Array eingelesen
 For x := 0 to (Anzahl - 1do begin
   ZahlenArray[x] := StrToInt(Memo1.Lines[x]);
 end;
//Jetzt beginnt die Sortierung
 For x := 0 to (Anzahl - 2do begin
   For y := 0 to (Anzahl - 2do begin
       if ZahlenArray[y] > ZahlenArray[y+1then begin
          TempInt := ZahlenArray[y+1];
          ZahlenArray[y+1] := ZahlenArray[y];
          ZahlenArray[y] := TempInt;
       end;
   end;
 end;
//Und dann fehlt noch die Ausgabe
 For x := 0 to Anzahl -1 do begin
   Memo2.Lines.Add(IntToStr(ZahlenArray[x]));
 end;

end;


Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
läpi Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 06.09.06 09:07 
nein ich darf keinen verwenden ich soll einfach jede zeile mit der folgenden vergleichen wenn also die erste zahl höher ist als die nächste sollen die zahlen getauscht werden
ist die nächste zahle wierder höher muss wieder getauscht werden ist die zahl niedriger soll sie stehen bleiben und die nächste zahl muss überprüft werden


ALSO OHNE ALGO

nur mit einfachen variabeln die sich die zahlen merken
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 06.09.06 09:09 
also,was du erklärst, ist ein algo und (wenn ich jetzt nicht total mitm schädel vor die wand gelaufen bin) is das bubble-sort...
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8549
Erhaltene Danke: 478

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 06.09.06 09:32 
Jep, wenn man um diese Erklärung noch ein "Wiederhole solange, bis in einem Durchlauf keine Vertauschung mehr aufgetreten ist" drumrum packt, dann ist das Bubblesort.

Dass man das direkt auf den Einträgen in der Memo machen soll, wobei man ständig die darin enthaltenen Strings in Zahlen umwandeln muss, ist mir schleierhaft. Ebenso unverständlich ist es, dass man das Verfahren so streng an die Ausgabe koppeln soll.

Da wird mal wieder schlechter Programmierstil gelehrt...

_________________
We are, we were and will not be.
DaKirsche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187

Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
BeitragVerfasst: Mi 06.09.06 09:39 
und wenn du es so kompliziert machen sollst, dann löse doch einfach die Schleife auf....

dann hast du nur einen langen Quelltext, der dasselbe macht, wie der kurze mit Algo.