Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Programmazione Generare combinazioni di lettere con delphi

Generare combinazioni di lettere con delphi

E-mail Stampa PDF

Con questa procedura è possibile generare una serie di combinazioni di lettere, comprese nel parametro "vocabolario". Come secondo parametro impostiamo anche la lunghezza della combinazione.

La funzione "usa" è quella che deve essere personalizzata così da poter utilizzare le varie combinazioni a seconda delle proprie esigenze .

procedure GeneraUsa(vocabolario:string;DimOutput:integer);
var
  y:array of integer;
  i,j,max,l:integer;
  procedure usa;
  begin
    //funzione da applicare ad ogni stringa creata
  end;
  procedure add(var a:array of integer;p:integer );
  begin
    if a[p]
    else begin
      a[p]:=1;
      add(a,p-1);
    end;
  end;
  function pot(b,p:integer):integer;
  var t:integer;
  begin
    if p=0 then result:=1
    else begin
      t:=1;
      while p>0 do begin
        t:=t*b;
        dec(p);
      end;
      result:=t;
    end;
  end;
begin
  l:=length(vocabolario);
  setlength(y,DimOutput);
  for i := 0 to high(y) do y[I]:=1;
  max:=pot(l,high(y)+1)-1;
  j:= high(y);
  for I := 1 to max do begin
    usa;
    add(y,j);
  end;
  usa;
end;

Come esempio, se imposto come vocabolario le lettere "agz" e una lunghezza pari a 2 ottengo:

aa - ag -az - ga - gg - gz - za - zg - zz

cioè una serie di combinazioni (32) delle lettere fornite.

 

Ultimo aggiornamento ( Sabato 19 Giugno 2010 20:07 )