Autor Beitrag
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.12.04 14:32 
Halli Hallo da bin ich wieder.

Wollte mir eine ganz simple Sortiermaschine coden, es hat aber Probleme.

Wenn ich jetzt einige Sachen eintippe z.B. springt er nicht in die nächste Zeile, beim Stringgrid1 // Button1.click

Ich weiss nicht ob er richtig Sortiert, scheint wohl fehler zu geben.

Könnt Ihr mir bitte helfen?

Viele Grüße

Method Man

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:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label3: TLabel;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x:Integer;
  Help1,Help2:String;
  y:Integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
   form1.color:=Random(999999);
    Stringgrid1.cells[1,0]:='Vorname';
      Stringgrid1.cells[2,0]:='Nachname';     //Überschrift
        Stringgrid1.cells[3,0]:='Vorname';
          Stringgrid1.cells[4,0]:='Nachname';
            Stringgrid1.cells[5,0]:='Vorname';
             Stringgrid1.cells[6,0]:='Nachname';
               Stringgrid1.cells[7,0]:='Vorname';


  repeat
    x:=x+1;
      Stringgrid1.cells[0,x]:=IntToStr(x);    //Reihen Zahl
        Until x=10001;
          end;

<span style="font-weight: bold">procedure TForm1.Button1Click(Sender: TObject);
begin
       y:=1;
        Stringgrid1.Cells[1,y+1]:=Edit1.text;
          Stringgrid1.Cells[2,y+1]:=Edit2.text;
            y:=y+1;   // Er sollte in die nächste Zeile springen
              Edit1.text:='';         
               Edit2.Text:='';
                 end;</span>

procedure TForm1.Button3Click(Sender: TObject);
begin
x:=0;
repeat   // Erstellt Zufallszahlen 
x:=x+1;
stringgrid1.cells[1,x]:=IntToStr(Random(100))+IntToStr(Random(100));
 stringgrid1.cells[2,x]:=IntToStr(Random(100))+IntToStr(Random(100));
   stringgrid1.cells[3,x]:=IntToStr(Random(100))+IntToStr(Random(100));
    stringgrid1.cells[4,x]:=IntToStr(Random(100))+IntToStr(Random(100));
      stringgrid1.cells[5,x]:=IntToStr(Random(100))+IntToStr(Random(100));
        stringgrid1.cells[6,x]:=IntToStr(Random(100))+IntToStr(Random(100));
          stringgrid1.cells[7,x]:=IntToStr(Random(100))+IntToStr(Random(100));
           Until x=10000;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   y:=1// Sortiervorgang(sehr primitiv)
     Repeat If Stringgrid1.cells[1,y]>Stringgrid1.cells[1,y+1]
      then
       help1:=Stringgrid1.cells[1,y];
        Stringgrid1.cells[1,y]:=Stringgrid1.cells[1,y+1];
         Stringgrid1.cells[1,y+1]:=help1;
          y:=y+1;
           Until y=10000;
            end;
             end.



Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Fr 25.11.2005 um 11:09


Zuletzt bearbeitet von Method_Man am Sa 04.12.04 15:37, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 04.12.04 14:58 
Titel: Form
Moin!

Dein Code ist grausam zu lesen. Formatiere das bitte mal neu/sauber und reduziere es auf das notwendige. Was genau ist das Fehlverhalten?

cu
Narses
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Sa 04.12.04 15:46 
Warscheinlich hat das StringGrid nicht genug Zeilen. Probier doch einfach ein StringGrid.RowCount:=y+2 bevor du da was reinschreibst.

_________________
Linux und OpenSource rulez!
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.12.04 16:35 
Doch es hat genug Zeilen, nämlich 10000.

Hier ein Bild davon user defined image
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 04.12.04 17:20 
Titel: Vorschlag
Moin!

Zunächst mal: nennst du das "vernünfig eingerückter Code"?!? :evil:

Hier meine Version basierend auf dem, was ich aus deinem Code so aufgeschnappt habe.

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:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    ProgressBar1: TProgressBar;
    Button4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  global_break: Boolean;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
  var
    i: Integer;
begin
  Randomize;
  // Beschriftung horizontal
  StringGrid1.Cells[1,0] := 'Vorname';
  StringGrid1.Cells[2,0] := 'Nachname';
  StringGrid1.Cells[3,0] := 'Vorname';
  StringGrid1.Cells[4,0] := 'Nachname';
  StringGrid1.Cells[5,0] := 'Vorname';
  StringGrid1.Cells[6,0] := 'Nachname';
  StringGrid1.Cells[7,0] := 'Vorname';
  // Beschriftung vertikal
  for i := 1 to StringGrid1.RowCount-1 do
    StringGrid1.Cells[0,i] := IntToStr(i);
end;

// Texte aus den Editfeldern in die Tabelle eintragen und den Cursor
// eine Zeile tiefer stellen
procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.Cells[1,StringGrid1.Row] := Edit1.Text;
  StringGrid1.Cells[2,StringGrid1.Row] := Edit2.Text;
  if (StringGrid1.Row < StringGrid1.RowCount -1then
    StringGrid1.Row := StringGrid1.Row +1;
  Edit1.Clear;
  Edit2.Clear;
end;

// Tabelle mit BubbleSort sortieren (naja...)
procedure TForm1.Button2Click(Sender: TObject);
  var
    i,j,
    k: Integer;
    StrBuf: TStringList;
begin
  StrBuf := TStringList.Create;
  ProgressBar1.Max := StringGrid1.RowCount;
  ProgressBar1.Step := 1;
  ProgressBar1.Position := 0;
  global_break := FALSE;
  Button4.Enabled := TRUE;
  for i := StringGrid1.RowCount-2 downto 1 do begin
    for j := 1 to i do
      if (StringGrid1.Cells[1,j] > StringGrid1.Cells[1,j+1]) then begin
        // Dreieckstausch
        StrBuf.Clear;
        // Zeile j sichern und mit j+1 überschreiben
        for k := 1 to 7 do begin
          StrBuf.Add(StringGrid1.Cells[k,j]);
          StringGrid1.Cells[k,j] := StringGrid1.Cells[k,j+1];
        end;
        // gesicherte Zeile nach j+1 zurückschreiben
        for k := 1 to 7 do
          StringGrid1.Cells[k,j+1] := StrBuf.Strings[k-1];
      end;
    ProgressBar1.StepIt;
    Application.ProcessMessages;
    if (global_break) then
      exit;
  end;
  Button4.Enabled := FALSE;
  StrBuf.Free;
end;

// Tabelle mit Zufallszahlen füllen
procedure TForm1.Button3Click(Sender: TObject);
  var
    i,j: Integer;
begin
  for i := 1 to StringGrid1.RowCount-1 do
    for j := 1 to 7 do
      StringGrid1.Cells[j,i] := IntToStr(Random(100))+IntToStr(Random(100));
end;

// Abbruch des Sortiervorgangs vermerken
procedure TForm1.Button4Click(Sender: TObject);
begin
  global_break := TRUE;
  ShowMessage('Abbruch des Sortiervorgangs!');
end;

end.

Du hast min. einen krassen Fehler in deinem Code: dein Dreieckstausch ist nicht mit BEGIN-END gekapselt, deshalb wird von dem IF nur der erste Befehl beachtet. Das dürfte die Sortierfehler hervorrufen.
Dann sollte dir natürlich klar sein, dass du bei den "String-Zahlen" natürlich keine aufsteigende Folge erhalten wirst, sondern eben das Ergebnis eines Textvergleichs...

Wesentliche (strukturelle) Modifikationen an deinem Code von mir: ProgressBar und Abbruch-Button dazugenommen. Beim BubbleSort von 10.000 Zeilen in einem StringGrid war ich dann das Warten leid... :? Ich habe natürlich auch die Anzahl der Zeilen im StringGrid mal auf die Eigenschaft desselben umgestellt, anstatt eine entsprechende Zeilenanzahl anzunehmen...

Ansonsten ist das Verhalten beim Eintragen der Werte aus den Editfeldern so modifiziert, dass die Werte in die aktuelle Cursorzeile geschrieben werden und, wenn möglich, der Cursor eine Zeile tiefer rutscht.

Mir scheint, du programmierst noch nicht sehr lange; deshalb habe ich mal deinen Code "aufgearbeitet". Ich möchte aber anmerken, dass das hier (im Forum) nicht üblich ist!

cu
Narses
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.12.04 19:24 
@Narses möchte dir sehr danken, dass du dir die Zeit genommen hast und es verbessert hast.

Also ich habe grad in der Schule Delphi als Grundkurs, seit 3-4 Monaten 3 Stunden die Woche und du weisst ja wie langsam es in der Schule geht.

Wie waren grad bei der Variablen Boolean, deshalb ist zwar alles sehr gut was du aufgeschrieben hast, aber so richtig nichts für mich, weil ich nicht viel kapiere.

Es soll so primitiv sein wie es nur geht.

Bei meinem Programm soll er 9999 Mal überprüfen bei 10000 Zahlen bis er es richtig sortiert hat.

Und wenn es geht bei jedem Mal, wenn einer richtig sortiert ist oder schon war nicht noch ein mal von vorne anfangen sondern berücksichtigen.

Danke dir nochmals.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 04.12.04 20:12 
Moin!

@Method_Man: Gerne, kein Problem. Sofern es was nutzt? :wink:

Zitat:
in der Schule Delphi als Grundkurs
Bei meinem Programm


Sag mal, was du da programmierst, ist das für die Schule?

cu
Narses
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.12.04 20:45 
In der Schule habe ich es richtig programmiert, so dass er sortiert usw.

Am Mittwoch war ich nicht in der Schule und konnte mir den Code deshalb nicht aufschreiben. Ich schreibe am Montag eine Klausur, deshalb habe ich versucht alles wieder zuhause neu zu coden, damit ich es dann in der Klausur auch kann, nur klappt das irgendwie nicht so. :oops:

Wenn ich z.B. einfach nur Buchstaben sortieren möchte, so dass es A,B,C usw. ist, wie müsste ich am leichtesten und primitivsten programmieren?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 04.12.04 21:45 
Titel: Sortieren
Moin!

OK, hört sich erstmal nicht nach "Hausaufgaben" an, ich denke, dann kann ich dir helfen. :wink:

Method_Man hat folgendes geschrieben:
Wenn ich z.B. einfach nur Buchstaben sortieren möchte, so dass es A,B,C usw. ist, wie müsste ich am leichtesten und primitivsten programmieren?


Es gibt viele Sortier-Algorithmen; das was du in deinem Code aufgegriffen hattest, sah mir auf den ersten Blick nach Bubble-Sort aus, deshalb habe ich in meinem Code auch diesen Algorithmus verwendet. Also, zunächst mal Bubble-Sort.

Es spielt übrigens beim Sortieren keine Rolle, WAS du da sortierst, solange die Elemente alle vom gleichen Typ sind. Deshalb ist es egal, ob es sich um Buchstaben oder Zahlen handelt. Gut, nehmen wir also Buchstaben.

Beispiel-Folge:

D C B A

Die prinzipielle Funktionsweise von BubbleSort könnte man (ganz ganz simpel) folgendermaßen beschreiben:

Wenn "n" die Anzahl der Elemente einer Folge ist, dann mache "n-1"-mal: vergleiche von "links" nach "rechts" nebeneinander liegende Elemente und tausche diese aus, wenn das Linke größer ist, als das Rechte. (Hier steckt noch eine Optimierungsmöglichkeit drin, aber die zeigt sich gleich ganz von alleine)

für unsere Beispiel-Folge:

ausblenden 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:
1. Lauf
vorher:  D C B A
         v-v
         C D B A
           v-v
         C B D A
             v-v
nachher: C B A D

2. Lauf
vorher:  C B A D
         v-v
         B C A D
           v-v
         B A C D
             v-v
nachher: B A C D

3. Lauf
vorher:  B A C D
         v-v
         A B C D
           v-v
         A B C D
             v-v
nachher: A B C D


Die "v"s stellen die Vergleiche dar. Soweit verstanden? Die Redundanz schon entdeckt? (wenn du antwortest und noch Bock hast, können wir auch weiter machen [ähm, und wenn meine Frau mich noch läßt... :wink: ])

cu
Narses
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 19:56 
Ich bräuchte beim Sortierung nur noch Hilfe.

Wenn ich das so eintippe, sortiert er nicht richtig.
Ich will das er mir die Buchstaben richtig sortiert.

Könnte mir jemand behilflich sein?

Ganz simpel bitte.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button2Click(Sender: TObject);
begin
Repeat If Stringgrid1.cells[1,y]>Stringgrid1.cells[1,y+1]
then
help1:=Stringgrid1.cells[1,y];
Stringgrid1.cells[1,y]:=Stringgrid1.cells[1,y+1];
Stringgrid1.cells[1,y+1]:=help1;
y:=y+1;
Until y=1001;
end;
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 05.12.04 20:17 
Titel: Angebot
Moin!

Ich versuchte dir mit dem letzten Beitrag zu helfen. Willste dir den nochmal ansehen, dann können wir den Vorgang, wie man (einfach) sortiert, entwickeln.

Oder bist du nur daran interessiert, dass dir jemand deinen Code flickt?

cu
Narses
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 20:32 
@ Narses natürlich würde ich gerne ganz herausfinden wie es funktioniert, aber ich bin erkältet, habe Kopfschmerzen, sonst würde ich es irgendwie schon rausbekommen.

Könntest du mir bitte, wenn es geht mein Code fürs Sortieren flicken, ich meine ganz einfach wie ich angefangen habe, ohne Boolean oder sonstiges.

Danke dir sehr

Gruss Method Man
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 05.12.04 20:55 
Titel: Angebot...
Moin!

Method_Man hat folgendes geschrieben:
natürlich würde ich gerne ganz herausfinden wie es funktioniert

Dann sollten wir das auch tun! :wink:
Method_Man hat folgendes geschrieben:
aber ich bin erkältet, habe Kopfschmerzen,

Das ist schade, aber das kann ich auch nicht ändern. :cry:
Method_Man hat folgendes geschrieben:
sonst würde ich es irgendwie schon rausbekommen.

Dann solltest du das auch versuchen!
Method_Man hat folgendes geschrieben:
Könntest du mir bitte, wenn es geht mein Code fürs Sortieren flicken, ich meine ganz einfach wie ich angefangen habe, ohne Boolean oder sonstiges.

Hm, ich bin jetzt etwas verwundert. Auf der einen Seite machst du mir nicht den Eindruck, Code abgreifen zu wollen, auf der anderen schon. Das Problem dabei ist, ich habe dir bereits angeboten, den Algorithmus zu entwickeln, was für eine Klausur sicherlich besser ist (wenn man was verstanden hat), als ein Code-Schnipsel "auswendig" zu lernen, den man (möglicherweise) nicht (ganz) verstanden hat.

Das wirklich kuriose ist, ich habe dir in meinem Programm bereits den BubbleSort-Algo codiert, ich habe im Text darunter den Grund für das Fehlverhalten deines Programms erklärt und in dem Code, den du als letzten geschrieben hast, ist der gleiche Fehler wieder drin... :?

Und noch ganz nebenbei: Das ganze (BubbleSort) hat nix mit Booleans zu tun... :wink:

Auf den Punkt: Ich entwickle den Algorithmus gerne mit dir, aber ich werde den Code nicht anfassen (zumal ich das weiter oben bereits getan habe).

cu
Narses
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 21:16 
Hi Narses wie schon gesagt so simpel wie es geht, sollte es sein. Natürlich hast du mir den richtigen Code schon oben geschrieben, den ich in meinem Programm eingebaut habe auch problemlos funzt.

Nur das Problem ist, du hast es zu gut programmiert, wir in der Schule haben ganz primitive Sortiervorgänge gehabt.

Wie z.B." Kopiere das zu help, dann tausch das, danach kopiere zurück usw."

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:
procedure TForm1.Button2Click(Sender: TObject);  
  var  
    i,j,  
    k: Integer;  
    StrBuf: TStringList;  
begin  
  StrBuf := TStringList.Create;  
  ProgressBar1.Max := StringGrid1.RowCount;  
  ProgressBar1.Step := 1;  
  ProgressBar1.Position := 0;  
  global_break := FALSE;  
  Button4.Enabled := TRUE;  
  for i := StringGrid1.RowCount-2 downto 1 do begin  
    for j := 1 to i do  
      if (StringGrid1.Cells[1,j] > StringGrid1.Cells[1,j+1]) then begin  
        // Dreieckstausch  
        StrBuf.Clear;  
        // Zeile j sichern und mit j+1 überschreiben  
        for k := 1 to 7 do begin  
          StrBuf.Add(StringGrid1.Cells[k,j]);  
          StringGrid1.Cells[k,j] := StringGrid1.Cells[k,j+1];  
        end;  
        // gesicherte Zeile nach j+1 zurückschreiben  
        for k := 1 to 7 do  
          StringGrid1.Cells[k,j+1] := StrBuf.Strings[k-1];  
      end;  
    ProgressBar1.StepIt;  
    Application.ProcessMessages;  
    if (global_break) then  
      exit;  
  end;  
  Button4.Enabled := FALSE;  
  StrBuf.Free;  
end;
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 05.12.04 21:23 
Tach!

Also, ich will ehrlich sein: Ich glaube, du versuchst dir von mir die Hausaufgaben machen zu lassen. Warum solltest du sonst an Code interessiert sein, der auch als deiner durchgehen soll...

Letztes Angebot: Wir entwickeln den Sortieralgorithmus von Grund auf und du lernst den Code selbst richtig zu schreiben (das können wir gerne jetzt und hier tun, ich hab noch Zeit). Ich versichere dir, es wird "so einfach, wie möglich sein".

Andernfalls mußt du dir jemand anderen suchen, der deine Hausaufgaben macht.

cu
Narses
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 21:31 
@Narses eigentlich hat das nichs mit Hausaufgaben zu tun, weil wir keine Hausaufgaben aufbekommen. :cry:

Aber ich nehme dein Angebot gerne entgegen.

Also soweit ich das verstanden habe:

Wenn Stringgrid1.cells[1,y] größer ist als Stringgrid1.cells[1,y+1]

Dann= wird help1(Variable) zu Stringgrid1.cells[1,y];
Danach= Wird Stringgrid1.cells[1,y] zu Stringgrid1.cells[1,y+1];
Am Ende Wird dann Stringgrid1.cells[1,y] zu help1.

bei jedem Versuch wird die Variable y um 1 erhöht, damit man alle Reihen durch hat, bis
der gewünschte Wert erreicht ist.

Genau an dem Tag wo wir das besprochen haben, war ich ganz wo anders, verliebt im 3. Himmel, also nicht aufgepasst und schon probleme. :lol: :(
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 05.12.04 21:39 
Titel: Bubble-Sort-Entwicklung, die 2.
Moin!

Zitat:
eigentlich hat das nichs mit Hausaufgaben zu tun, weil wir keine Hausaufgaben aufbekommen

Aha, spannend, wo schreibst du denn deine Klausur?

Zitat:
Aber ich nehme dein Angebot gerne entgegen

OK, dann möchte ich dich bitten, meine 1. Erklärungsmail nochmal zu lesen und die Frage(n) zu beantworten. Du bist schon mehrere Schritte weiter, so wird das nix.

Es geht mir besonders darum, dass du den dargestellten Ablauf und die als Text "codierte", prinzipielle Funktionsweise genau anschaust.

Nun?
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 21:48 
Wir arbeiten immer zusammen in der Schule, er gibt uns Aufgaben, die wir dann in der Stunde mit seiner Hilfe lösen. Es ist ein Grundkurs mit Anfängern, also mehr kann man da nicht erwarten.

< Bin in der 11. eines Gymnasiums. >

Es ist grad unsere 1. Klausur, von 15 Leuten schreiben nur 4 Leute Klausuren.

Bubble Sort

-1. und 2. vergleichen
----> falsch --> tauschen
-2. und 3. vergleichen
----> falsch --> tauschen

immer weiter bis alles richtig ist.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 05.12.04 21:54 
OK. Ich nehme mal an, du hast das dargestellte Code-Beispiel verstanden (hoffe ich).

Frage 1: Wie oft wird bei 4 zu sortierenden Buchstaben verglichen und gegebenenfalls getauscht? (wenn man es so macht, wie dargestellt)

Frage 2: Sind in dem Beispiel überflüssige Schritte (Vergleiche) enthalten?

Frage 3: Wenn ja, welche? Wenn nein, warum sind alle Schritte nötig?

Bis gleich :wink:

Zitat:
Es ist ein Grundkurs mit Anfängern, also mehr kann man da nicht erwarten.

Ich erwarte ja auch nicht mehr. Ist doch OK. Sag bescheid, wenn du hier in der Erklärung nicht mehr mitkommst oder was unklar ist!

Zitat:
Bin in der 11. eines Gymnasiums

Hatte ich mir schon gedacht, vom Stoff her. :)
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 05.12.04 22:15 
Bei 4 Buchstaben geht er 4 Mal durch, beim 2. Durchlauf braucht er nur 3 Mal durch zu gehen und beim 3. Durchlauf nur 2 Mal, vorrausgesetzt alle 4 Buchstaben stehen falsch.

Und mit Boolean wo man zwei Werte definieren kann: true or false, geht es noch schneller mit dem Sortieren, weil er dann weiss wenn sie richtig stehen, dann nicht mehr sortiert.