| Autor |
Beitrag |
110022
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Sa 06.10.07 23:28
Wie kann ich einen Genarator programmieren der mir die eingegebenen Zahlen (z.b.12345)
in alle anderen möglichkeiten anzeigt?(54321;32541;23145;14352;15423.....)
bin allerdings noch ein frischer anfänger
wenns geht bitte leicht verständlich erklären
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von 110022 am Mi 12.12.07 19:21, insgesamt 1-mal bearbeitet
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: So 07.10.07 07:56
Die Frage hatten wir schon oft, such mal nach 'Permutation' hier im Forum.
_________________ Na denn, dann. Bis dann, denn.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Di 11.12.07 18:48
bringt mir nix
kann mir das bitte einer erklären?
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 11.12.07 18:51
bitte sehr
soweit ich weiß is da auch ne erklärung dabei.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 11.12.07 18:52
Moin!
alzaimar hat folgendes geschrieben: | | Die Frage hatten wir schon oft, such mal nach 'Permutation' hier im Forum. |
110022 hat folgendes geschrieben: | bringt mir nix
kann mir das bitte einer erklären? |
Klar: PERMUTATION
cu
Narses
//EDIT: schade, elundril war schneller... 
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Di 11.12.07 18:59
sorry leute aber ich versteh nix.
geht das nich einfacher?
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 11.12.07 19:02
ganz einfach:
bei dieser Schleife schiebst du einfach nur die zahlen hin und her.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| For i:=1 to Length(ZahlenString)-1 do begin For J :=i+1 to Length(ZahlenString) do begin Merker:=ZahlenString[i]; ZahlenString[i]:=ZahlenString[J]; ZahlenString[J]:=Merker; end; end; |
probiers mal aus mit dem debugger. vl. wirds dann klarer.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Di 11.12.07 19:07
mein problem sind die Variablen .
Und die ganzen deutschen wörter.
ich hab keine ahnung wie ich die Deutschen wörter behandeln muss ect.
I is ne integer variable
J warscheinlich auch
den rest weiß ich nicht
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Di 11.12.07 19:10
Ach Menno, wat'n los mit Euch? Lies doch bitte den Thread durch. Ich hab das doch erklärt. Soll Ich Dir das noch kopieren?
@elundril: Leider ist deine Lösung unvollständig, denn Du must irgendwie auf n! Möglichkeiten kommen, das geht mit der Schleife nicht.
110022, na gut, da Du keine Geduld hast:
Nimm Dir '12345'. Du suchst nun alle Möglichkeiten, die '12345' darzustellen, also '21345','23145' etc.
Überleg mal, Du kannst das Problem so lösen.
Alle Permutationen von '12345' =
Alle Permutationen von '1234' + die '5' hinten ran gestellt
+ Alle Permutationen von '1235' + die '4' hinten ran gestellt
+ Alle Permutationen von '1245' + die '3' hinten ran gestellt
+ Alle Permutationen von '1345' + die '2' hinten ran gestellt
+ Alle Permutationen von '2345' + die '1' hinten ran gestellt
So, nun rate mal, wie wir 'Alle Permutationen von '1234' löst....
_________________ Na denn, dann. Bis dann, denn.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Di 11.12.07 19:17
muss das so kompliziert sein ???
ihr macht euch ja schon ganz gut mühe aber ich raffs immer noch nich.
ich hab ja alles bis dem letzten eintrag von alzaimar verstanden aber ich hab keine ahnung wie ich das in den quelltext einbringen soll.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Di 11.12.07 20:10
110022: Beim erstem Mal benötigst Du wirklich einen Knoten im Hirn, um das zu kapieren, ging mir nicht anders, es ist nämlich wirklich nicht trivial. Die Lösung des Rätsels steckt in Rekursion. Du hast ja gesehen, wie meine Lösung sich selbst beinhaltet.
Ich weiss nicht, wie lange Du dich schon mit Informatik beschäftigst, aber dieses Permutationsproblem habe ich erst nach einigen Jahren zufriedenstellend in den Griff bekommen.
Hier mein Vorschlag (etwas abgewandelt von meinem Lösungsansatz):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| Procedure Permutations (Const aString : String; aResults : TStrings); Procedure _Permutation(Const aString, aResult : String; anIndex : Integer; aUsedChars : TCharSet); Var i : Integer;
Begin For i:=1 To Length (aString) Do If Not (aString[i] In aUsedChars) Then If anIndex = Length (aString) Then aResults.Add(aResult+aString[i]) Else _Permutation (aString, aResult + aString[i], anIndex + 1, aUsedChars + [aString[i]]); End;
Begin _Permutation (aString, '', 1, []); End; |
_________________ Na denn, dann. Bis dann, denn.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Mi 12.12.07 14:41
da kommen aber immernoch meldungen von wegen undefinierter bezeichner
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 12.12.07 14:47
Aha. Wie sehen die Meldungen doch aus (*ausdernasezieh*)
_________________ Na denn, dann. Bis dann, denn.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Mi 12.12.07 14:50
also erstmal hab ich keine anhung wie ich das in das onclick ereignis vom Button bringe.
und ich hab erst recht keine ahnung wie ich die variablen einbaue.
dann kommen diese Meldungen:
Delphi-Quelltext 1: 2: 3:
| [Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'TCharSet' [Fehler] Unit1.pas(36): Operator ist auf diesen Operandentyp nicht anwendbar [Fehler] Unit1.pas(50): Deklaration erwartet, aber Dateiende gefunden |
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 12.12.07 15:14
Da ist beim Cut & Paste was verloren gegangen...
Du scheinst aber sehr wenig Ahnung von Delphi zu haben, vielleicht solltest Du erstmal einen kleinen Crashkurs besuchen...
www.dsdt.info/tutorials/?cat=1
Über die Procedure muss noch ein
Delphi-Quelltext 1:
| Type TCharSet = Set Of Char; |
_________________ Na denn, dann. Bis dann, denn.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Mi 12.12.07 15:51
mein großes problem is das mit den 3 procedures
und das mit dem
Delphi-Quelltext 1:
| Type TCharSet = Set Of Char; |
klappt nich.
da kommt folgende meldung in einer massage box
: erwartet aber = gefunden
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 12.12.07 16:04
110022 hat folgendes geschrieben: | | : erwartet aber = gefunden |
Ich sags mal in Worten:
Wenn ein Doppelpunkt erwartet wird, wo der Compiler ein Gleichheitszeichen findet, dann sollte man vielleicht das Gleichheitszeichen durch einen Doppelpunkt ersetzen.
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Mi 12.12.07 16:06
wenn ich den : einfüge kommt diese meldung
einen bezeichner erwartet aber : gefunden
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mi 12.12.07 16:08
jasocul hat folgendes geschrieben: | 110022 hat folgendes geschrieben: | | : erwartet aber = gefunden | Ich sags mal in Worten:
Wenn ein Doppelpunkt erwartet wird, wo der Compiler ein Gleichheitszeichen findet, dann sollte man vielleicht das Gleichheitszeichen durch einen Doppelpunkt ersetzen. |
nene das = stimmt schon. Der Fehler muss woanders liegen, poste mal mehr Code.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
110022 
      
Beiträge: 287
XP SP2
Delphi 7
|
Verfasst: Mi 12.12.07 16:09
brauch ich nich
der meint der Fehle liegt vor dem =
|
|