Incrementation & Decrementation dans la meme boucle

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ganagyre
Messages : 67
Inscription : jeu. 09/nov./2006 13:41
Localisation : PACA

Incrementation & Decrementation dans la meme boucle

Message 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.
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Incrementation & Decrementation dans la meme boucle

Message 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
Avatar de l’utilisateur
Ganagyre
Messages : 67
Inscription : jeu. 09/nov./2006 13:41
Localisation : PACA

Re: Incrementation & Decrementation dans la meme boucle

Message 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
+
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Incrementation & Decrementation dans la meme boucle

Message 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


Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Incrementation & Decrementation dans la meme boucle

Message 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
Avatar de l’utilisateur
Ganagyre
Messages : 67
Inscription : jeu. 09/nov./2006 13:41
Localisation : PACA

Re: Incrementation & Decrementation dans la meme boucle

Message 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
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Incrementation & Decrementation dans la meme boucle

Message par kernadec »

@ Ganagyre excuse moi, pour le code précèdent :oops: 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
Dernière modification par kernadec le ven. 05/mars/2010 17:16, modifié 2 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Incrementation & Decrementation dans la meme boucle

Message 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 :D
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
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Incrementation & Decrementation dans la meme boucle

Message par cederavic »

Okkkkk j'ai pigé! Et ça va beaucoup mieux maintenant que j'ai compris :P

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
Dernière modification par cederavic le ven. 05/mars/2010 20:54, modifié 1 fois.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Incrementation & Decrementation dans la meme boucle

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Incrementation & Decrementation dans la meme boucle

Message par Backup »

ce qui est marrant c'est de voir que pour résoudre un probleme
chacun a son propre cheminement :)
Avatar de l’utilisateur
Ganagyre
Messages : 67
Inscription : jeu. 09/nov./2006 13:41
Localisation : PACA

Re: Incrementation & Decrementation dans la meme boucle

Message par Ganagyre »

Bonjour.

Grand merci cederavic, Dobro , kernadec pour votre aide et vos solutions.

+
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Incrementation & Decrementation dans la meme boucle

Message 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

Code : Tout sélectionner

y.l:y.l
Ici ça n'a pas d'importance, mais c'est une bonne habitude à prendre.

Bye.
Répondre