Autor Beitrag
110022
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Di 11.12.07 18:48 
bringt mir nix

kann mir das bitte einer erklären?
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 11.12.07 18:52 
Moin!

user profile iconalzaimar hat folgendes geschrieben:
Die Frage hatten wir schon oft, such mal nach 'Permutation' hier im Forum.

user profile icon110022 hat folgendes geschrieben:
bringt mir nix
kann mir das bitte einer erklären?

Klar: Suche in: Delphi-Forum, Delphi-Library PERMUTATION :lol:

cu
Narses

//EDIT: schade, user profile iconelundril war schneller... :|

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

XP SP2
Delphi 7
BeitragVerfasst: Di 11.12.07 18:59 
sorry leute aber ich versteh nix.
geht das nich einfacher?
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 11.12.07 19:02 
ganz einfach:
bei dieser Schleife schiebst du einfach nur die zahlen hin und her.

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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):
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 12.12.07 14:41 
da kommen aber immernoch meldungen von wegen undefinierter bezeichner
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 12.12.07 14:47 
Aha. Wie sehen die Meldungen doch aus (*ausdernasezieh*)

_________________
Na denn, dann. Bis dann, denn.
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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

ausblenden Delphi-Quelltext
1:
Type TCharSet = Set Of Char;					

_________________
Na denn, dann. Bis dann, denn.
110022 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 12.12.07 15:51 
mein großes problem is das mit den 3 procedures
und das mit dem
ausblenden Delphi-Quelltext
1:
Type TCharSet = Set Of Char;					

klappt nich.
da kommt folgende meldung in einer massage box

: erwartet aber = gefunden
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 12.12.07 16:04 
user profile icon110022 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 12.12.07 16:06 
wenn ich den : einfüge kommt diese meldung
einen bezeichner erwartet aber : gefunden
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mi 12.12.07 16:08 
user profile iconjasocul hat folgendes geschrieben:
user profile icon110022 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 287

XP SP2
Delphi 7
BeitragVerfasst: Mi 12.12.07 16:09 
brauch ich nich
der meint der Fehle liegt vor dem =