begin process at 2012 02 14 23:32:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Algorithme

 > 

Divers

 > 

Comment lister des combinaisons ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment lister des combinaisons ???

vendredi 11 août 2006 à 16:52:42 | Comment lister des combinaisons ???

LukeSkywalker67

Bonjour à tous,

Je cherche à établir la liste de toutes les combinaisons possibles d'une table de N élément par

un programme VB.NET.

La taille de ce tableau étant variable je ne peux pas utiliser de For imbriqués.

J'ai essayer d'utiliser une fonction récursive mais je galère à fond.

Quelqu'un à t'il une idée ???

Merci d'avance

 

 


 

vendredi 11 août 2006 à 17:22:23 | Re : Comment lister des combinaisons ???

pymaster

Bonjour Si les for te gène à cause de ton tableau variable alors utilise un While non ? Tu pouras alors placer tes propres conditions plus librement. Aussi c'est pas très clair : Je cherche à établir la liste de toutes les combinaisons possibles d'une table de N élément Parceque même avec un for normalement c'est facile non ? dim tabCombi as List(of string) ' Je suppose que c'est de string dim i as integer dim j as integer dim tabVar() as string code .... i = nbElementTabVar j = nbElementTabVar for i = 0 to nbElementTabVar - 1 for j = 0 to nbElementTabVar - 1 tabCombi.add(tabVar(i) & tabVar(j)) next next Est ce que c'est ce genre de chose que tu veux ? PY
vendredi 11 août 2006 à 17:51:58 | Re : Comment lister des combinaisons ???

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Si la taille de tes tableaux sont variables, il te faut en effet recourir à la récursion (c'est le plus simple !).

Ca te fera deux boucles : Une boucle pour les lignes, et une boucle pour les colonnes de ton tableau.
Cependant, attention aux boucles infinies !

Ca donnerai un truc de ce genre (à tester donc !) :

function combinaison(x, y)
if x = limiteX then exit function
if y = limiteY then exit function
For i = x to limiteX
    For j = y to limiteY
       combinaison(x, y+1)
    next j
next i
end function

samedi 12 août 2006 à 20:30:10 | Re : Comment lister des combinaisons ???

Dolphin Boy

Membre Club

Salut, je ne sais pas si ça te convient mais j'ai retrouvé un de mes bout de code écrit en VB6 avec une form et un commandbutton (mais ça peut surement marcher en vb.net) qui trouve toutes les combinaisons possibles d'un tableau à une dimension et n éléments avec exclusion des valeurs déjà connues (ici, j'ai limité le nombre d'éléments à 3 - en rouge -) :

'déclaration des tableaux utilisés
Dim tablo_origine() As Integer
Dim tablo_test() As Boolean
Dim tablo_resultat() As Integer

Private Sub Command1_Click()
Dim i As Integer, nElements As Integer
  'dimensionnement du tableau d'origine et remplissage
  ReDim tablo_origine(3)
  nElements = UBound(tablo_origine)
  For i = 0 To nElements
    tablo_origine(i) = i
  Next
  'dimensionnement des tableaux test et résultat
  ReDim tablo_test(nElements)
  ReDim tablo_resultat(0)
  'lancement de la procédure récursive
  test 0
End Sub

Sub test(n As Integer)
Dim i As Integer, i1 As Integer
Dim s As String
  For i = 0 To UBound(tablo_origine)
    'si valeur non sélectionnée
    If tablo_test(i) = False Then
      tablo_resultat(n) = tablo_origine(i)
      'si on a parcourru tout le tableau d'origine
      If n = UBound(tablo_origine) Then
        'on construit la chaine d'affichage
        s = ""
        For i1 = 0 To n
          s = s & tablo_resultat(i1)
        Next
        'on affiche la chaine
        MsgBox s
      'sinon, on relance la procédure récursive
      Else
        'on coche la valeur déjà choisie
        tablo_test(i) = True
        'on prépare le tableau résultat
        ReDim Preserve tablo_resultat(n + 1)
        'on relance la procédure
        test UBound(tablo_resultat)
        'on rétablit le tableau résultat d'avant
        ReDim Preserve tablo_resultat(n)
        'on décoche la valeur déjà choisie
        tablo_test(i) = False
      End If
    End If
  Next
End Sub

Si tu as des questions, je reste à l'écoute.

jeudi 17 août 2006 à 16:43:52 | Re : Comment lister des combinaisons ???

zephyrin

Salut

essaie dans ton for de mettre :

 

dim i as interger

for i = 0 to ubound(MonTab)

...

next

et ainsi tu ne t'occupes pas de la taille de tes tableaux.



Zephyrin

vendredi 18 août 2006 à 11:01:49 | Re : Comment lister des combinaisons ???

LukeSkywalker67

Merci à tous de vos réponses,
J'avais mal poser mon problème : en fait cela revient à établir une table de vérité à 2^N combinaisons.
J'ai fait un petit algo tout simple qui marche bien.

A+



Cette discussion est classée dans : utiliser, lister, combinaisons


Répondre à ce message

Sujets en rapport avec ce message

Lister des dossiers [ par ciberrique ] Bonsoirs j'aimerais savoir comment lister les dossiers et sous dossier d'un repertoire sans utiliser de dir list box et sans utiliser de fso.Attention commment utiliser les combinaisons de touches [ par Blackcatthc ] je cherche a utiliser les combinaisons de touches pour deplacer une shape sur un formpour une touche je recupere l'info comme caif keycode = 37 then m commment utiliser les combinaisons de touches [ par Blackcatthc ] je cherche a utiliser les combinaisons de touches pour deplacer une shape sur un formpour une touche je recupere l'info comme caif keycode = 37 then m comment utiliser les combinaisons de touches [ par Blackcatthc ] je cherche a utiliser les combinaisons de touches pour deplacer une shape sur un formpour une touche je recupere l'info comme caif keycode = 37 then m Piloter un programme commercial [ par gi ] Bonjour,J'aimerais piloter un prgramme commercial (remplir des champs et clicker sur des boutons) avec mon appli VB 6.Je pensais utiliser sendkeys mai curseur de souris [ par stipe ] bonjour,pour mon appli VB, je voudrais utiliser le curseur de souris utilisé par IE pour les liens hypertext (la main avec l'index tendu)je sais qu'i Utiliser résultat d'1 requête dans 1 autre requête en VB6 [ par yan35 ] Bonjour,Pour utiliser le résultat d'1 requête dans 1 autre requête, en DAO, je fais actuellement :dim as strSQL as string, qdf as querydef, db as data comment utiliser le "%1" a la fin d'un commande? [ par zelze ] Bonjoir j'ai un problème.J'ai constaté que pour ouvrir, par exemple un txt avec bloc note, il faut ajouter le %1 a la fin de la commande.Pouvez vous m Comment Utiliser la Fonction BeginGradientFill [ par Nosferatu181187 ] Pour créer un dégradé en Flash a l'aide d'action script , on utilise la Fonction BeginGradientFill jusque la ça va, elle n'écessite pas mal de paramèt Comment Utiliser la Fonction BeginGradientFill [ par Nosferatu181187 ] Pour créer un dégradé en Flash a l'aide d'action script , on utilise la Fonction BeginGradientFill jusque la ça va, elle n'écessite pas mal de paramèt


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales