ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Simple permutation   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pte Claire Quebec - Canada
de la société MCRG Software
Fiche personnelle


Note des membres
pas de note

Contributions > 20 - Trucs et Astuces

Simple permutation
# 0000000209
ajouté le 07/06/2005 19:57:42 et modifié le 10/06/2005
consulté 4731 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0

Description

Voici un simple exemple de permuation. ex: Montrer toutes les combinaison d'une chaine de caractères.

Code source :
private nn
nn= 0
CLEAR
permute("abc",0)
PROCEDURE permute(cstr,nLev)
      LOCAL nTrylen,i
      nTrylen= LEN(cstr)-nLev
      IF nTryLen = 0
            nn=nn+1
            ?nn,cstr
      ELSE
            FOR i = 1 to nTrylen
                  IF i>1
                        cstr= LEFT(cstr,nlev) + SUBSTR(cstr,nLev+i,1) +;
                              SUBSTR(cstr,nLev+2, i-2)+SUBSTR(cstr,nlev+1,1)+SUBSTR(cstr,nLev+i+1)
                  ENDIF
                  permute(cstr,nlev+1)
            ENDFOR
      ENDIF
RETURN

&& Résultat
 1 abc
 2 acb
 3 bac
 4 bca
 5 cab
 6 cba
Commentaires
Aucun commentaire enregistré ...

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3