AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein "ABCD" in allen möglichen Kombinationen
Thema durchsuchen
Ansicht
Themen-Optionen

"ABCD" in allen möglichen Kombinationen

Ein Thema von -lx- · begonnen am 4. Okt 2006 · letzter Beitrag vom 9. Okt 2006
 
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: "ABCD" in allen möglichen Kombinationen

  Alt 7. Okt 2006, 01:13
Das hat mir jetzt keine Ruhe gelassen

Hier mein Quellcode:

Delphi-Quellcode:
function TForm1.Factorial(const x: Byte): Word;
begin
  if x > 1 then
    result := x * Factorial(x - 1)
  else
    result := x;
end;

procedure TForm1.CalcNextS(var s: string; const Initial: string);
var
  l: Byte; // Position linker Austauschpartner
  r: Byte; // Position rechter Austauschpartner
  i: Byte; // Laufvariable
  Done: Boolean; // für Bubblesort
  Temp: Char;
begin

  // linken Austauschpartner finden
  l := Length(s);
  repeat
    Dec(l);
  until Pos(s[l], Initial) < Pos(s[l+1], Initial);

  // rechten Austauschpartner finden
  r := l + 1;
  for i := l to Length(s) do
    if (Pos(s[i], Initial) > Pos(s[l], Initial)) and
      (Pos(s[i], Initial) < Pos(s[r], Initial)) then
        r := i;

  // austauschen
  Temp := s[l];
  s[l] := s[r];
  s[r] := Temp;

  // rechts von l der Größe nach sortieren
  if l <> Length(s) - 1 then
    repeat
      Done := True;
      for i := l+1 to Length(s) - 1 do
        if Pos(s[i], Initial) > Pos(s[i+1], Initial) then
        begin
          Temp := s[i];
          s[i] := s[i+1];
          s[i+1] := Temp;
          Done := False;
        end;
    until Done;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  ListBox1.Clear;
  s := Edit1.Text;
  ListBox1.Items.Add(s);
  for i := 2 to Factorial(Length(s)) do
  begin
    CalcNextS(s, Edit1.Text);
    ListBox1.Items.Add(s);
  end;
end;
Das Wort kann aus bis zu 255 Zeichen bestehen. Ich hab allerdings noch nicht berücksichtigt, dass Buchstaben auch mehrfach vorkommen können.

Die .exe ist im Anhang
Angehängte Dateien
Dateityp: exe project1_122.exe (413,0 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz