Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie diesen Algorithmus automatisieren? (https://www.delphipraxis.net/5389-wie-diesen-algorithmus-automatisieren.html)

moritz 4. Jun 2003 14:08


Wie diesen Algorithmus automatisieren?
 
Hi

Ich habe hier einen Algo. geschrieben, der alle möglichen Zeichenketten erzeugt (a,b,c,d,....,aa,ab,ac,ad,ae,...,aaa,aab,aac,....) . Ich habe das array zeichen, das mit a...z, 0..9, "." und "_" gefüllt ist (Insgesamt 41 Inhalte)
Delphi-Quellcode:
    var a,b,c,count,i:Integer;
    add:string;
begin
    for a:=0 to 41 do
    begin
        add:=zeichen[a];
        Memo1.Lines.Add(add);
    end;
    for a:=0 to 41 do
    begin
        for b:=0 to 41 do
        begin
            add:=zeichen[a];
            add:=add+zeichen[b];
            Memo1.Lines.Add(add);
        end;
    end;
    for a:=0 to 41 do
    begin
        for b:=0 to 41 do
        begin
            for c:=0 to 41 do
            begin
                  add:=zeichen[a]+zeichen[b];
                  add:=add+zeichen[c];
                  Memo1.Lines.Add(add);
            end;
        end;
    end;
So, und wie automatisier ich den?

jbg 4. Jun 2003 14:19

Das lässt sich ganz leicht mit einer rekursiven Funktion erledigen.

moritz 4. Jun 2003 14:21

Ich habs schon versucht. Nur entweder bin ich zu dumm oder zu müde....

jbg 4. Jun 2003 14:42

Zitat:

Zitat von Onz
oder zu müde....

Schon am hellen Nachmittag?

Delphi-Quellcode:
procedure MyFunc(Lines: TStrings; const Zeichen: array of Char; const PreZeichen: string = '');
var a: Integer;
begin
  for a := 0 to High(Zeichen) do
    Lines.Add(PreZeichen + Zeichen[a]);
  for a := 0 to High(Zeichen) do
    MyFunc(Lines, Zeichen, PreZeichen + Zeichen[a]);
end;

moritz 4. Jun 2003 14:44

Und wie wende ich das an, wenn ich immer eines nach dem anderen brauch?

jbg 4. Jun 2003 15:07

Zitat:

Zitat von Onz
wenn ich immer eines nach dem anderen brauch?

Wie meinst du das? Die Prozedur wirst du doch wohl mit den passenden Parametern aufrufen können.

moritz 4. Jun 2003 15:10

Jaja...das schon. Hat sich geklärt....


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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