Boucles for imbriquées

CrisseTof Messages postés 57 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 2 juillet 2005 - 31 août 2004 à 10:30
safarijr Messages postés 23 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 30 mai 2005 - 31 août 2004 à 14:33
Bonjour,

J'ai un vecteur n = (n(0), n(1),...,n(d)), où les n(i) et d varient.
J'aimerais imbriquer des boucles for les unes dans les autres de cette façon :

for i(0) = 0 to n(0)
for i(1) = 0 to n(1)
for i(2) = 0 to n(2)
......
for i(d) = 0 to n(d)

next i(d)
.....
next i(2)
next i(1)
next i(0)

Est-ce que quelqu'un saurait comment je peux faire ça ?

Merci bien.

CrisseTof

12 réponses

bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
31 août 2004 à 10:40
Bonjour,

C comme tu l'a ecrit...

Merci :approve) et @ Plus ;)

BIL@Loch
:)
0
CrisseTof Messages postés 57 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 2 juillet 2005 1
31 août 2004 à 11:15
Le problème c'est que d est une variable, donc le nombre d'imbriquations n'est pas fixe...
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
31 août 2004 à 11:58
Bonjour,

Est ce que ta teste et que ca marche pa ?

Merci :approve) et @ Plus ;)

BIL@Loch
:)
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
31 août 2004 à 12:30
tu veux calculer koi au juste..
donnes unexemple clair

It@li@
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
31 août 2004 à 13:37
utilises la récursivité...

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
0
safarijr Messages postés 23 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 30 mai 2005
31 août 2004 à 13:44
Bonjour,

Une solution pourrait être d'utiliser une variable supplémentaire : j

Puis ecrire :


        For j = 0 To d
            For i(j) = 0 To n(j)
            ...
            Next
        Next



Est-ce que ça résouds ton pb ?
0
CrisseTof Messages postés 57 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 2 juillet 2005 1
31 août 2004 à 13:54
en fait j'ai un tableau de dimension d que je veux transformer en dimension d-1. Les coefficients du tableau renvoyé devant être la somme des coefficients du tableau de départ sur la dernière dimension.
Pour être plus clair :

dim tableau1(5, 8, 3 , 7)

doit me renovoyer tableau2(5, 8, 3) tels que

tableau2(i, j, k) = somme (tableau1(i, j, k, l), l=0 to 7)

soit quelque chose de la forme

for i = 0 to 5
for j = 0 to 8
for k = 0 to 3
for l = 0 to 7

tableau2(i, j ,k) = tableau2(i, j ,k) + tableau1(i, j ,k ,l)

next i
next j
next k
next l

Et je voudrais faire ça dans le cas où la dimension du tableau varie, donc quand le nombre d'imbriquations est variable.
0
safarijr Messages postés 23 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 30 mai 2005
31 août 2004 à 13:58
Je cherches... Il doit y avoir une soluce...
0
safarijr Messages postés 23 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 30 mai 2005
31 août 2004 à 14:08
Pour l'imbrication, je pense qu'il peut y avoir une solution via un appel récursif d'une sub, mais alors la où ça se corse, c'est le code pour faire cette somme puisqu'il y a un nombre variable de dimension aux tableaux que tu veux utiliser...
0
CrisseTof Messages postés 57 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 2 juillet 2005 1
31 août 2004 à 14:18
OK, c'est bien vu pour les imbriquations.... ca parrait simple comme ça, mais je l'aurais pas trouvé.... Merci bien

En fait j'ai une fonction qui me permet de connaitre la dimension de mon tableau (merci CannisLupus).

Le seul problème c'est que je ne sais écrire :

tableau2(i, j ,k) = tableau2(i, j ,k) + tableau1(i, j ,k ,l)

vu que que le la dimension varie, donc le nombre d'indices dans la parenthèse est variable.... faudrait écrire quelque chose de la forme :

tableau2(i(0), i(1),... i(d-1)) =
tableau2(i(0), i(1),... i(d-1)) + tableau(i(0), i(1),... i(d-1), i(d))

Mais je suis pas sûr que VB comprenne "...." veut dire
0
safarijr Messages postés 23 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 30 mai 2005
31 août 2004 à 14:29
C'est exactement ce que je voulais dire...

Désolé, mais pour ça j'ai pas la solution miracle.
0
safarijr Messages postés 23 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 30 mai 2005
31 août 2004 à 14:33
... à moins peut-être de générer le code source du calcul par programme puis de l'executer, mais je sais pas si ça peut fonctionner

@+
0
Rejoignez-nous