| Autor |
Beitrag |
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 16:04
Habe überlegt und versucht
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:
| var Form1: TForm1; i, j, zahl1, zahl2, differenz:integer; park, zahltext, zahltexteins, zahltextzwei, max, min,s:string; a,b:array[1..4] of string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin zahltext:=edit1.text; for i:=1 to 4 do begin a[i]:=copy(zahltext,i,1); b[i]:=copy(zahltext,i,1); end; for i:=1 to 4 do if a[i]>=a[j] then begin park:=a[i];a[i]:=a[j];a[j]:=park; end; park:=zahltexteins; if b[i]<=b[j] then begin min:=b[i];b[i]:=b[j];b[j]:=min; min:=zahltextzwei; differenz:=zahltexteins-zahltextzwei; edit2.text:=string(a[i]); |
Zuletzt bearbeitet von boxer123 am Do 20.10.11 16:14, insgesamt 1-mal bearbeitet
|
|
Teekeks
      
Beiträge: 211
Erhaltene Danke: 23
|
Verfasst: Do 20.10.11 16:14
Weil du keine Strings voneinander abziehen kannst.
Warum nutzt du keinen Integer?
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 16:16
ich weiß nicht wie ich es wieder zu einem integer verbinden kann
|
|
Teekeks
      
Beiträge: 211
Erhaltene Danke: 23
|
Verfasst: Do 20.10.11 16:20
Suche mal nach inttostr und strtoint.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 16:25
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:
| var Form1: TForm1; i, j, zahl1, zahl2, differenz:integer; park, zahltext, zahltexteins, zahltextzwei, max, min,s:string; a,b:array[1..4] of string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin zahltext:=edit1.text; for i:=1 to 4 do begin a[i]:=copy(zahltext,i,1); b[i]:=copy(zahltext,i,1); end; zahl1:=strtoint(edit1.Text); zahl2:=strtoint(edit2.text); zahl1:=0;zahl2:=0; for i:=1 to 4 do for j:=i+1 to 4 do if a[i]>=a[j] then begin park:=a[i];a[i]:=a[j];a[j]:=park; end; zahltext:=zahltexteins; if b[i]<=b[j] then begin min:=b[i];b[i]:=b[j];b[j]:=min; end; zahltexteins:=zahltextzwei; differenz:=zahl1-zahl2; edit2.text:=inttostr(); |
Edit: bin ich dran ich hoffe es
Zuletzt bearbeitet von boxer123 am Do 20.10.11 16:57, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 16:56
Moin!
boxer123 hat folgendes geschrieben : | | Der ist mit zu komplitziert ich will einen den ich verstehe |
boxer123 hat folgendes geschrieben : | | Habe überlegt und versucht |
Immer langsam mit die jungen Pferde...  Dein Einsatz ist sicher lobenswert, aber du versuchst (schon die ganze Zeit) drei Schritte auf einmal zu machen, weißt aber gar nicht, wohin - um es mal zu umschreiben.  In deinem Quelltext sind mehrere "Probleme" durcheinander, das wird so nix.
Ich hatte dich gebeten das Beispiel nochmal aufzuarbeiten, so dass es deiner Beschreibung des Algorithmus entspricht. Wie sieht´s aus, macht keinen Spaß, ja mag sein, aber du hast konkrete Probleme, genau das umzusetzen. Deshalb halte ich es für notwendig, dass wir da nochmal ansetzen. Wenn du wirklich verstanden hast, was da wann wie passiert, dann kannst du daraus sicher auch den Delphi-Code machen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 17:00
ja, ich weiß wie es sein soll.
7.Schritt: Ich muss es in einer variable speichern also die Zahl aber es funktioniert nicht. z.b. park:=zahl1;
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 17:06
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 17:12
1.Schritt: Man vergleicht die erste Zahl mit der Zweiten.
2.Schritt: Wenn sie größer ist vertauscht man beide.
3.Schritt: Dann vergleicht man die vertauschte zahl mit der dritten Zahl
4.Schritt: Wenn sie kleiner ist passiert nix
5.Schritt: Dann vergleicht man die 1.zahl mit der letzten, wenn sie größer vertauscht man beide und wenn sie kleiner ist passiert nix.
1.Schritt: Jetzt fängt man mit der 2ten an und vergleicht sie mit der dritten.
immer weiter so
1.Schritt: jetzt die dritte mit der 4ten
immer weiter so
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 17:19
Moin!
OK, ich hätte zwar im 4. Schritt geschrieben: "Wenn sie größer ist vertauscht man beide.", damit das gleich zum 2. Schritt ist, aber gut, geht auch so.
Allerdings ist dein Beispiel nicht passend zu dieser Beschreibung.  Deshalb mach bitte mal folgendes:
Quelltext Unterstreiche mal die Ziffern, die in einem Schritt verglichen werden, dann schreibst du darunter die neue Anordnung:
Quelltext Damit man sehen kann, wie die Sortierung zustande kommt.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 17:26
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| 8 9 4 6 - - 9 8 4 6 - 8 - 6 4 8 9 6 4 - 9 - 4 6 9 8 4 6 - - 4689 |
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 17:33
Moin!
OK, danke.
Du hast allerdings noch einen dicken Bock in deinem Ablauf, mal sehen, ob wir den noch "sichbar" machen können.  Bitte mach doch noch mal einen Durchlauf mit dieser Folge:
Quelltext Achte bitte darauf in den Zeilen mit den Unterstreichungen keine Ziffern anzugeben, damit der Vergleich deutlicher wird.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 17:38
8 1 9 4 6
- -
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| 8 1 9 4 6 - - 1 8 9 4 6 - - 1 9 8 4 6 - - 1 4 8 9 6 - - 1 4 6 9 8 - - 1 4 6 8 9 |
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 17:46
Moin!
Super. Allerdings: findest du es nicht etwas "seltsam", dass da so ein Muster raus kommt?
Quelltext 1: 2: 3: 4: 5:
| - - - - - - - - - - | Ich geb dir mal einen Tipp, normalerweise macht man solche Muster, wenn man sortiert: (Bubble-Sort)
Quelltext 1: 2: 3: 4: 5:
| - - - - - - - - - - | oder aber solche: (Min-Sort)
Quelltext 1: 2: 3: 4: 5:
| - - - - - - - - - - | Probier mal deine Beschreibung so anzupassen, dass eins der "Standard-Muster" dabei rauskommt.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 17:48
Wie jetzt quelltext anpassen?
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 17:52
Moin!
boxer123 hat folgendes geschrieben : | | Wie jetzt quelltext anpassen? |
Nein, ich meine diese Beschreibung hier:
boxer123 hat folgendes geschrieben : | 1.Schritt: Man vergleicht die erste Zahl mit der Zweiten.
2.Schritt: Wenn sie größer ist vertauscht man beide.
3.Schritt: Dann vergleicht man die vertauschte zahl mit der dritten Zahl
4.Schritt: Wenn sie kleiner ist passiert nix
5.Schritt: Dann vergleicht man die 1.zahl mit der letzten, wenn sie größer vertauscht man beide und wenn sie kleiner ist passiert nix. |
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 18:02
1.Schritt: Man vergleicht die 1.Zahl mit der 2ten Zahl.
2.Schritt: Wenn die Zweite Zahl größer ist als die erste vertauscht man beide.
3.Schritt: Die erste Zahl vergleicht man auch mit der 3ten und 4ten Zahl.
4.Schritt: Wenn die 1te Zahl größer als beide ist ändert sich garnix.
5.Schritt: Jetzt vergleicht man die 2te mit der dritten wenn die dritte größer ist.
6.Schritt: Vertauscht man beide also die 2te und die dritte.
7.Schritt: Jetzt vergleicht man die 2te mit der 4ten und wenn die 4te Zahl größer ist ändert man nix.
8.Schritt: Jetzt vergleicht man die 3te mit der 4ten wenn die 3te zahl größter ist als die 4te ist. Vertauscht man die beiden zahlen.
Moderiert von Narses: Code-Tags entfernt.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 18:07
Moin!
Sorry, aber deine Vorschrift produziert weder das Bubble- noch das Min-Sort Muster.
Also nochmal: Willst du das Bubble- oder das Min-Sort Muster nehmen? Tipp: versuche dich bei der Beschreibung auf so wenige Zeilen wie möglich zu beschränken, das könnte z.B. ganz gut gehen, wenn du statt der "1. Zahl, 2. Zahl" sagst, die i-te Zahl und dann dazu sagst, wo i startet und wann es stoppt. Wenn dich das verwirrt, dann lass es weg und machs mit direkten Positionsangaben.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
boxer123 
      
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Do 20.10.11 18:14
1.Schritt: Man vergleicht die 1.Zahl mit der 2ten Zahl.
2.Schritt: Wenn die 2.Zahl größer ist als die 1.Zahl; Vertauscht man beide.
3.Schritt: Die 1.Zahl vergleicht man auch mit der 3.Zahl und 4.Zahl.
4.Schritt: Wenn die 1.Zahl größer ist, als beide Zahlen also die 3.Zahl und die 4.Zahl ist,dann ändert sich nix.
5.Schritt: Jetzt vergleicht man die 2.Zahl mit der 3.Zahl wenn die 3.Zahl größer ist als die 2.Zahl
6.Schritt: Vertauscht man beide also die 2.Zahl und die 3.Zahl.
7.Schritt: Jetzt vergleicht man die 2.Zahl mit der 4.Zahl und wenn die 4.Zahl Größer ist, ändert man nix.
8.Schritt: Jetzt vergleicht man die 3.Zahl mit der 4.Zahl wenn die 3.Zahl Größter ist als die 4.Zahl. Vertauscht man die beiden zahlen!
So muss es doch sein?^^
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 20.10.11 18:25
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|