Autor Beitrag
King_Crasher
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: Mo 06.11.06 13:37 
Hallo zusammen...

Ich hab ein Prob: Und zwar hab ich ein Programm geschrieben welches Daten von von Sportlern aufnimmt. Unteranderem Name , nachname und Klasse. Dann noch drei Datenwerte(Weitsprung, Rennen und Kugelstoßen). Aus diesen Daten wird eine Zahl berechnet und mit den anderen Daten in eine StringGrid geschrieben.

Jetzt möchte ich diese Zahl gerne in der Liste sortieren können.

Könnt ihr mir helfen???

Mfg
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 06.11.06 13:49 
Moin!

Schau mal hier, vielleicht kommst du damit weiter. ;) Geht da um Sortieren im Stringgrid.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
King_Crasher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: Mo 13.11.06 13:15 
Also da komm ich nicht weiter...
Gibt es nicht einfach ein Befehl der einem weiterhelfen kann???
Oder noch andere Ideen??? hab mir auch gedacht das ich die Zeile und die Spalte des zu sortierenden stringgrids eingeben muss???


Mfg
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 13.11.06 13:26 
Moin!

user profile iconKing_Crasher hat folgendes geschrieben:
Also da komm ich nicht weiter...
Gibt es nicht einfach ein Befehl der einem weiterhelfen kann???

Nein, ein StringGrid musst du schon selbst sortieren... :?

Wo genau kommst du denn nicht weiter? Hast du schon entsprechenden Code? Dann zeig doch schonmal, was du hast und wo der Fehler ist. Oder hängst du beim Ansatz?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
King_Crasher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: Mo 13.11.06 13:32 
Also das prog an sich steht schon...
Er trägt in die Stringgrid ein und rechnet auch alles...

Ich hab bloß die aufgabe die gesamt punktzahl zu sortieren(natürlcih mit name klasse usw.)
Nur hab ich noch nie etwas sortiert...

Mir fehlt also, wie du schon gesagt hast der Ansatz...
Hab kein plan was ich wie machen muss...

MFG
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 13.11.06 13:35 
Moin!

In dem Thread oben, auf den der Link zeigt, erläutere ich doch ausführlich BubbleSort. Da schonmal reingesehen (weiter am Ende des Threads)?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
King_Crasher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: Mo 13.11.06 13:54 
das prinzip von bubblesort hab ich...
Aber dann muss ich ja jede Zahl mit jeder Zahl vergleichen, oder???
Dann wird die größte immer eine "Stufe" höher eingetragen???


Aber der rest von dem Thread wir immer undurchsichtiger...
ich denk mal ihr seid mir beide ein paar schritte voraus
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 13.11.06 14:04 
Moin!

user profile iconKing_Crasher hat folgendes geschrieben:
Aber dann muss ich ja jede Zahl mit jeder Zahl vergleichen, oder???
Dann wird die größte immer eine "Stufe" höher eingetragen???

So in etwa ist das, ja. ;)

user profile iconKing_Crasher hat folgendes geschrieben:
Aber der rest von dem Thread wir immer undurchsichtiger...
ich denk mal ihr seid mir beide ein paar schritte voraus

Konkret die letzten beiden Beiträge sind eigentlich nur interessant. Da wird der BubbleSort entwickelt.

Aber zeig doch einfach mal, was du bisher so an BubbleSort-Versuchen geschafft hast. Vielleicht hilft es ja auch, wenn du überhaupt erstmal irgendwas sortierst, z.B. eine Listbox mit Zahlen oder Namen oder sowas. Wenn du das erfolgreich geschafft hast, dann kannste dich ja immer noch an das StringGrid wagen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
King_Crasher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: Mo 13.11.06 14:10 
hab gerade gesehn das es bei listbox auch den eintrag sort gibt...
Was macht der den???
King_Crasher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: Mo 13.11.06 14:32 
so hab jetzt deinen Post gelesen und mir deinen Code mal vorgenommen...
alles in einer listbox...
der algorithmus hat keine fehler...


wie bekomm ich die ausgabe auf eine listbox??
muss das array bestimmt in einen string umwandeln ne???
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 13.11.06 14:40 
Du willst doch jetzt wohl nicht etwa das in eine Listbox und zurück bringen anstatt mal zu versuchen es mit dem StringGrid zu programmieren? In einer ListBox sehen Spalten ziemlich Sch** aus...
Warum versuchst du es nicht einfach mal? Wenn du dann bei konkretem Code nicht weiterkommst, helfen wir dir, keine Frage.
Kleiner Tipp: Programmiere erstmal eine Methode, die dir zwei Einträge des Grids gegeneinander austauscht. Dann kannst du das "einfach" im Sortieralgorithmus verwenden. Das einfach setze ich mal in Anführungsstriche, damit es nicht überheblich klingt, aber einfach ist es eigentlich in der Tat, da der Algorithmus ja da ist.

Fang doch erstmal an, was zu schreiben, wenn du die Methode zum Austauschen zweier Elemente hast, ist es doch wie in einer ListBox...
King_Crasher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37

WIN XP
Delphi 2003
BeitragVerfasst: So 10.12.06 13:36 
ok hab hier was. Aber erst mal kurz zur Stringgrid. Sie hat 8 spalten und die 8. soll auch sortiert werden. die erste zeile soll nicht sortiert werden.

Hier der Quelltext:

ausblenden volle Höhe 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:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
var     x,j,n,z,y,sportzahl :integer;
        Temp: TStrings;
        zahlen: array[-1..1000] of integer;

begin
 n :=stringgrid1.rowcount-1;             
       begin
        zahlen[i]:=StrToInt(stringgrid1.Cells[8,i]);
       end;
           begin
              for i:= 1 to n do
              begin
               for j:= n downto i do
               begin
                if ( zahlen[j-1] < zahlen[j] ) then
                begin
                    Temp:=TStringList.Create;
                        try
                         Temp.Assign(stringgrid1.Rows[j]);            
                         stringgrid1.Rows[j].Assign(stringgrid1.Rows[j-1]);
                         stringgrid1.Rows[j-1].Assign(Temp);
                         finally
                           Temp.Free;
                          end;
                  x:=zahlen[j-1];
                 zahlen[j-1]:=zahlen[j];
                 zahlen[j]:=x;

                 end;
               end;
              end;
            end;

       for i:=1 to n do
       begin
       stringgrid1.cells[8,i]:=IntToStr(zahlen[i]);
        end;

        z:=1;                                        
        Y:=1;
        for i:=1 to filesize(f) do begin
        stringgrid1.cells[0,y]:=inttostr(z);
        y:=y+1;
          Z:=z+1;
         end;
         x:=0;
          for i:=1 to n do begin
                                                     
X:=x+1;
          end;


end;


er sagt immer: '' is not a valid interger value.

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt