Désolé je n'ai pas fait attention au fait que tu programmes en VB Net : c'est du VB 6.0
Je te décortique l'idée du code
- Une chaine String égale à "012"
- une boucle DO LOOP
- car1$ : chaine d'1 caractère ASCII représentant le premier caractère de chaine$ avec le code ASCII augmenté de 1 ( le 0 devient 1)
- car2$ : idem mais pour le second caractère de chaine$ ( le 1 devient 2)
- car3$ : idem pour le 3° caractère de chaine$ ( le 2 devient 3)
- on reforme chaine$ en concaténant car1$, car2$ et car3$ : pour le premier tour "012" devient "123"
- si car1$ = "7" on affiche la chaine et on sort ( c'est le "789" de fin de liste)
- on sauvegarde chaine dans une varible string Temp$
- On fait une boucle FOR NEXT depuis la valeur du chiffre de droite de la chaine jusqu'à 9 ( de 3 à 9 la première fois)
- dans ce FOR NEXT on forme la chaine à afficher à l'écran : les 2 chiffres de gauche de chaine$ et le chiffre de progression du FOR NEXT --> 123,124,125,126,127,128,129 pour la première série
- on affiche dans la liste à chaque fois cette chaine : 123 puis 124 pui etc....
- fin du FOR NEXT
- on récupère notre chaine d'origine sauvegardée dans temp$
- Fin de la boucle DO LOOP
anselmejour
Messages postés28Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention 9 octobre 2006 24 sept. 2006 à 16:10
merci bcp Alain pour ton code et ton temps, mais je ne vois pas bien ton principe de code
si tu as un tableau de x nombre (disons 9) comme suit :
14, 17, 25,26,42,77,89,101,200
il faut les marier par y (ici 3) sans doublons (pas 1,1,2) et toujours differents (1,2,4 mais pas 4,2,1)
mon code marcherait mais il faut a chaque boucle vider le nombre en cours
Private Sub TroisDeNeuf()
Dim neufa As New StringCollection
Dim neufb As New StringCollection
Dim neufc As New StringCollection
For a As Integer = 1 To 9
neufa.Add(a.tostring)
Next
neufb = neufa
neufc = neufa
Dim sb As New StringBuilder
Dim i As Integer = 0
Dim _a, _b, _c As Integer
For a As Integer = 0 To 8
For b As Integer = 0 To 8
For c As Integer = 0 To 8
If a <> b AndAlso a <> c AndAlso b <> c Then
sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(c))
i += 1
End If
Next
Next
'ici il faudrait supprimer a chaque boucle le i=+1
Next
Me.AddLiteral(i.ToString & "<hr />")
Me.AddLiteral(sb.ToString)
End Sub
Salut Anselmejour
Au début j'avais compris que tu travaillais sur les chiffres 1 à 9 alors que tu travailles sur 9 nombres et ces nombres peuvent comporter plusieurs chiffres
Fais un tableau de tes 9 nombres avec les indices de 1 à 9 : Table (1 to 9)
ensuite crée 3 variables : ind1,ind2 et ind3 qui représenteront les indicesAu début pose ind1 0 : ind2 1 et ind3 = 2 ( les indices de début)
Une boucle Do
ind1 = ind1 +1
ind2 =ind2 +1
ind3 =ind3 +1
si ind1 = 7 alors
les 3 éléments sont table(7),table(8) et Table(9)
tu affiches tes trois éléments pour test
On sort de la boucle
Une boucle FOR : Pour i = ind3 to 9
Les 3 éléments sont Table(ind1),table(ind2) et table(i)
Tu affiches les 3 éléments pour test
Fin de la boucle FOR
Fin de la boucle DO
Loop
anselmejour
Messages postés28Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention 9 octobre 2006 24 sept. 2006 à 16:53
non je l'ai pas
Dim neufa As New StringCollection
For x As Integer = 1 To 9
neufa.Add(x.ToString)
Next
Dim a, b, c As Integer
a = -1
b = 0
c = 1
Dim sb As New StringBuilder
Dim i As Integer = 0
Do
a += 1
b += 1
c += 1
If a = 7 Then
Exit Do
Else
For y As Integer = c To 9
i += 1
sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(c))
Next
End If
Loop
Je me suis permis de corriger en VB Net
Vérifie les 4 lignes avec les points d'interrogation car je ne les comprends pas
dim neufa as New StringCollection
For X as Integer = 1 to 9
neufa.Add(x.ToString)
Next
Dim a,b,c as Integer
a=0
b=1
c=2
Dim sb as New StringBuilder
Do
a+ = 1
b+ = 1
c+ =1
if a = 7 then
sb.Appendformat ("{0} {1} {2}
",neufa(a),neufa(b),neufa(c)) ??????
exit do
For y as Integer = c to 9
sb.Appendformat ("{0} {1} {2}
",neufa(a),neufa(b),neufa(y)) ???????
Next
Loop
anselmejour
Messages postés28Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention 9 octobre 2006 24 sept. 2006 à 17:23
ton code :
Dim neufa As New StringCollection
For X As Integer = 1 To 9
neufa.Add(X.ToString)
Next
Dim a, b, c As Integer
a = 0
b = 1
c = 2
Dim sb As New StringBuilder
Dim i As Integer = 0
Do
a += 1
b += 1
c += 1
If a = 7 Then
Exit Do
Else
For y As Integer = c To 9
sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(c))
Next
End If
Loop
Dim neufa As New StringCollection
For X As Integer = 1 To 9
neufa.Add(X.ToString)
Next
Dim a, b, c As Integer
a = 0
b = 1
c = 2
Dim sb As New StringBuilder
Dim i As Integer = 0
Do
a += 1
b += 1
c += 1
If a = 7 Then
sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(c))
i += 1
Exit Do
end if
For y As Integer = c To 9
sb.AppendFormat("{0} {1} {2}
", neufa(a), neufa(b), neufa(y))
i +=1
Next
Loop