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 37 38 39 40 41 42 43 44 45 46 47
| procedure TForm1.Remplissage(elements : string ; n_tot,n_tmp : integer) ;
var
element1,element2,liste : string ;
i,j,k : integer ;
resu : string ;
n_loc : integer ;
index : integer ;
begin
if NbElementsListePointVirgule(elements)>2 then begin
for i:=0 to NbElementsListePointVirgule(elements)-2 do begin
liste := '' ;
element1 := RecupererElementListePointVirgule(elements,1) ;
element2 := RecupererElementListePointVirgule(elements,i+2) ;
for j:= 2 to NbElementsListePointVirgule(elements) do begin
if j<>(i+2) then begin
liste := liste + RecupererElementListePointVirgule(elements,j) + ';' ;
end ;
end ;
system.Delete(liste, length(liste), 1);
n_loc := NbElementsListePointVirgule(liste) ;
index := donne_rang(n_loc) ;
if i<>0 then begin
n_tmp := n_tmp + index ;
end ;
Remplissage(liste,n_tot,n_tmp) ;
for k:= 1 to index do begin
tableau[n_tmp+k-1] := element1+';'+ element2 + ';' + tableau[n_tmp+k-1] ;
end ;
indic2 := indic2 + 1 ;
end ;
end else begin
tableau[indic] := elements ;
indic := indic + 1 ;
end ;
end ;
function TForm1.donne_rang(n_loc : integer) : integer ;
var
i,j : integer ;
begin
result:=1 ;
i:=1 ;
while (n_loc-i)>0 do begin
result := result * (n_loc-i) ;
i := i+2 ;
end ;
end ; |
Partager