Page 1 sur 1
Incrementation & Decrementation dans la meme boucle
Publié : jeu. 04/mars/2010 17:02
par Ganagyre
Bonjour.
J'ai ces 2 boucles pour Incrémenter et Décrémenter .
Code : Tout sélectionner
a.l:b.l
y.l:y.l
max.l = 100
;
; INCREMENTATION 1-2 // 99-100
;
For x = 1 To max - 1
For y = x+1 To max
Debug " Boucle Incrementation = "+Str(x)+" "+Str(y)
Next y
Next x
;
Debug"====================================="
Debug"====================================="
;
; DECREMENTATION_OKI 99-100 à 1-2
;
For a = max-1 To 1 Step -1
For b = max To a+1 Step-1
Debug " Boucle Décrémentation = "+Str(a)+" "+Str(b)
Next b
Next a
Comment réduire ou transformer les boucles, pour obtenir les résultats d'incrémentation et décrémentation se suivant.
Code : Tout sélectionner
;
Debug " Boucle Incrementation = "+Str(x)+" "+Str(y)
Debug " Boucle Decrementation = "+Str(a)+" "+Str(b)
;
Voila, merci de toute astuce.
Re: Incrementation & Decrementation dans la meme boucle
Publié : jeu. 04/mars/2010 17:28
par cederavic
Je ne suis pas sur d'avoir compris ce que tu voulais mais... ?
Code : Tout sélectionner
a.l:b.l
y.l:y.l
max.l = 10
;
; INCREMENTATION 1-2 // 99-100
;
For x = 1 To max - 1
For y = x+1 To max
a = max - x
b = max - y
Debug " Boucle Incrementation = "+Str(x)+" "+Str(y)
Debug " Boucle Décrémentation = "+Str(a)+" "+Str(b)
Next y
Next x
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 12:05
par Ganagyre
Merci cederavic pour le code.
Je cherche bien à faire en "un passage" une incrémentation et décrémentation, sur le premier code aucun problème en 2 boucles.
Il est plus délicat que je ne pensais de le faire en un "seul passage".
Cela décrémente bien, mais pas dans bon ordonement.
On devrait trouver dans la décrémentation pour un max = 10 :
9-10
8-10
8-9
7-10
7-9
7-8
Un réglage à affiner pour décrémenter, la c'est presque bon...
Code : Tout sélectionner
a.l:b.l
y.l:y.l
max.l = 10
c.l:d.l
c=max+1
d=max+1
;
; INCREMENTATION 1-2 // 99-100
;
For x = 1 To max - 1
For y = x+1 To max
a = max - x
b = max - y
Debug " Boucle Incrementation__ = "+Str(x)+" "+Str(y) ; origine
Debug " Boucle Décrémentation 1 = "+Str(a)+" "+Str(b) ; cederavic
Debug " Boucle Décrémentation 2 = "+Str(c-y)+" "+Str(d-x) ;
Debug "=========================="
Next y
Next x
+
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 12:42
par kernadec
bonjour
ta boucle part de 1
donc c'est le zéro qui te gêne dans la décrémentation peut être..
Cordialement
Code : Tout sélectionner
a.l:b.l
y.l:y.l
max.l = 10
c.l:d.l
c=max+1
d=max+1
;
; INCREMENTATION 1-2 // 99-100
;
For x = 1 To max - 1
For y = x+1 To max
a = max+1 - x
b = max+1 - y
Debug " Boucle Incrementation__ = "+Str(x)+" "+Str(y) ; origine
Debug " Boucle Décrémentation 1 = "+Str(a)+" "+Str(b) ; cederavic
Debug " Boucle Décrémentation 2 = "+Str(c-y)+" "+Str(d-x) ;
Debug "=========================="
Next y
Next x
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 13:06
par cederavic
Je ne suis toujours pas sur d'avoir compris... Peut-tu ecrire la liste inc et dec a la main de 0 à 5 stp?
D'apres ce que tu m'a donner :
Code : Tout sélectionner
max = 10
For it = 1 To max * max - max
ix = (it / max)
iy = (it % max)
If iy = max - 1
it + ix + 2
EndIf
x = ix + 1
y = iy + 1
Debug " Boucle Incrementation = "+Str(x)+" "+Str(y)
dx = max - iy
dy = max - ix
Debug " Boucle Décrémentation 1 = "+Str(dx)+" "+Str(dy)
Next
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 14:54
par Ganagyre
Merci cederavic et kernadec de votre aide.
En prenant comme référence le premier code (en 2 boucles distinctes), en ayant 5 comme valeur max, on obtient pour l'incrémentation une boucle qui "tourne 10 fois" donnant :
INC
1-2
1-3
1-4
1-5
2-3
2-4
2-5
3-4
3-5
4-5
Pour la décrémentation on obtient (10 passages):
DEC
4-5
3-5
3-4
2-5
2-4
2-3
1-5
1-4
1-3
1-2
A noter que l'on ne passe jamais par 0, pour INC ou DEC.
La difficulté réside à rester dans le meme ordre pour INC comme pour DEC.
Le Résultat devrait donner (avec max = 5):
01_INC=1-2__DEC=4-5
02_INC=1-3__DEC=3-5
03_INC=1-4__DEC=3-4
04_INC=1-5__DEC=2-5
05_INC=2-3__DEC=2-4
06_INC=2-4__DEC=2-3
07_INC=2-5__DEC=1-5
08_INC=3-4__DEC=1-4
09_INC=3-5__DEC=1-3
10_INC=4-5__DEC=1-2
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 17:12
par kernadec
@ Ganagyre excuse moi, pour le code précèdent

j'ai repris ce que tu avais mis.
regarde celui la, ll ressemble à ce que tu demande.
je viens de voir à l'instant le post suivant de Dobro. excellent
Cordialement
Code : Tout sélectionner
For x=1 To 9
For y=x+1 To 9
Debug Str(x)+"-"+Str(y)+" "+Str(10-x)+"-"+Str(10-y)
Next y
Next x
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 17:12
par Backup
bah ! facile
Code : Tout sélectionner
max=5
NewList tableau.s()
NewList tableau2.s()
For ext=1 To max-1
For int1=ext+1 To max
compteur=compteur+1
AddElement(tableau())
tableau()= Str(ext)+"-"+Str(int1)
AddElement(tableau2())
tableau2()= Str(ext)+"-"+Str(int1)
Next int1
Next ext
; affiche résultat
ResetList(tableau())
LastElement(tableau2())
compteur=0
While NextElement(tableau())
compteur=compteur+1
Debug Str(compteur)+"_INC="+tableau()+"_DEC="+tableau2()
PreviousElement(tableau2())
Wend
et voila
1_INC=1-2_DEC=4-5
2_INC=1-3_DEC=3-5
3_INC=1-4_DEC=3-4
4_INC=1-5_DEC=2-5
5_INC=2-3_DEC=2-4
6_INC=2-4_DEC=2-3
7_INC=2-5_DEC=1-5
8_INC=3-4_DEC=1-4
9_INC=3-5_DEC=1-3
10_INC=4-5_DEC=1-2
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 18:00
par cederavic
Okkkkk j'ai pigé! Et ça va beaucoup mieux maintenant que j'ai compris
Code : Tout sélectionner
max = 5
xINC = 1
yINC = 1
it = 0
itMax = 1
For a = 1 To (max * (max - 1)) / 2
; INC
yINC + 1
If yINC = max + 1
xINC + 1
yINC = xINC + 1
EndIf
; DEC
it + 1
If it > itMax
it = 1
itMax + 1
EndIf
xDEC = max - itMax
yDEC = max - it + 1
Debug RSet(Str(a), 2, "0") + "_INC="+Str(xINC)+"-"+Str(yINC)+"__DEC="+Str(xDEC)+"-"+Str(yDEC)
Next
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 20:27
par kernadec
bonjour Cederavic
merci pour ce code je le met de coté, car ça m'as pris la tête ce truc ..
et je commençais à tourner en rond....
Cordialement
Re: Incrementation & Decrementation dans la meme boucle
Publié : ven. 05/mars/2010 20:33
par Backup
ce qui est marrant c'est de voir que pour résoudre un probleme
chacun a son propre cheminement

Re: Incrementation & Decrementation dans la meme boucle
Publié : sam. 06/mars/2010 8:18
par Ganagyre
Bonjour.
Grand merci cederavic, Dobro , kernadec pour votre aide et vos solutions.
+
Re: Incrementation & Decrementation dans la meme boucle
Publié : sam. 06/mars/2010 20:44
par Geo Trouvpatou
Salut.
C'est là que je me dis que le "EnableExplicit" à son intérêt, parce qu'au bout d'un moment on s'aperçoit de l'erreur de la ligne 2
Ici ça n'a pas d'importance, mais c'est une bonne habitude à prendre.
Bye.