Entwickler-Ecke
Sonstiges (Delphi) - Idee für ein Buchstabensalat-Programm
jul14n - Di 31.05.05 18:30
Titel: Idee für ein Buchstabensalat-Programm
hi ihr,
bin grad auf der suche nach einem Programm, dass aus einem Buchstabensalat ein lesbares Wort macht, indem es alle Möglichkeiten auflistet.
z.B.: HLIDEP --> .../ LPIHDE / DELPHI / IELHDP /...
Man gibt den Buchstabensalat in ein Edit ein, klickt auf einen Button und alle Möglichkeiten werden in einer listbox angezeigt.
hat jmd. eine idee, wie man das realisiren könnte?
gruß julian
alzaimar - Di 31.05.05 18:45
Du benötigst ein Programm, das sog. 'Permutationen' erstellt.
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:
| program Permutation; {$APPTYPE CONSOLE}
uses SysUtils;
var R, Slen: Integer;
procedure P(var A: string; B: string); var J: Word; C, D: string; begin if Length(B) = SLen - R then begin Write(' {' + A + '} '); end else for J := 1 to Length(B) do begin C := B; D := A + C[J]; Delete(C, J, 1); P(D, C); end; end;
begin P('DELPHI',5); end. |
jul14n - Di 31.05.05 18:54
oohh..
ich glaub ich verstehe dein programm nicht ganz, kannst du mir kurz sagen, was es macht?
ich kenn mich noch nicht soo gut aus.
thx
julian
alzaimar - Di 31.05.05 19:48
Ist doch klar: Das Programm erzeugt Syntaxfehler und totale Konfusion... :oops:
Ich habe geschlampt, sorry:
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:
| program Project2; {$APPTYPE CONSOLE}
uses SysUtils;
Procedure P (X : String); Var D : String;
procedure _P(var A: string; B: string); var J: Word; C, D: string; begin if Length(B) = 0 then begin Write(' {' + A + '} '); end else for J := 1 to Length(B) do begin C := B; D := A + C[J]; Delete(C, J, 1); _P(D, C); end; end;
Begin D:=''; _P (D,X); End;
begin P('DELPHI'); end. |
Ich habe es von
http://www.swissdelphicenter.ch und dann kurz modifiziert, ohne es zu testen.
Jetzt gehts: Das Programm erzeugt einfach alle Permutationen eines vorgegebenen Strings.
jul14n - Mi 01.06.05 14:35
:D ok, thx very much
julian
alzaimar - Mi 01.06.05 19:58
Nur so, aus Spass: Dieser Algorithmus verwendet Graycodes, um iterativ alle Permutationen eines beliebigen Strings zu erzeugen:
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:
| Procedure Permutations (aString : String); Var d : Array Of Integer; g, j, i, n, v : Integer; p,c : String;
Begin n := Length (aString); setlength (d,n+1); d[1] := 1; For i := 2 to n do d[i] := i * d[i-1]; For i := 0 to d[n]-1 do begin c := aString; p := ''; v := i; for j:=n-1 downto 1 do begin g := j - (v div d[j]) + 1; p := p + c[g]; delete (c, g, 1); v := v mod d[j]; End; p := p + c; memo1.lines.Add (p); End; End; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!