Tom's Guide > Forum > Programmation > Petit jeux ludique d'unstruction VB

Petit jeux ludique d'unstruction VB

Forum Programmation : Petit jeux ludique d'unstruction VB

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Dans une fenêtre d'exécution je voudrais un petit jeu d'instruction simple avec 3 variables (1, 2 et 3) pour générer toute les combinaisons d'association possible ex : (111. 112. 113. 121. 131 ...jusqu'à 333) soit je pense 31 combinaison possible dans l'ordre croissant.
Et générer le tout dans un fichier texte nommé « test » je pense qu'il faudra déterminer le chemin d'accès.

 

J'aimerais pouvoir rajouter une virgule accompagné d'un espace après chaque valeur de variable (111, 112, 113, ...).

 

Afin de peaufiner mes connaissances j'aimerais que l'on m'aide à écrire le code en VB6 s'il vous plaît.

 

Je ne sais pas vraiment si sa parait difficile, quand pensez-vous ?

 

Merci,
Marcus.
*****@yahoo.fr

 

petit


Message édité par OmaR le 05-09-2007 à 18:09:41
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Bonjour,

J'ai enlevé votre email, vous risquez de vous faire spammer.

Pour faire ça, vous avez besoin de faire 3 boucles; de 1 à 3 à chaque fois, et mettre dans une variable la concaténation du résultat des 3 boucles à chaque boucle; et de mettre cette variable dans un fichier.

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Merçi pour ta réponse omar,
Pour les boucle je vois le genre d'unstruction mais comment faire et mettre dans une variable la concaténation du résultat des 3 boucles à chaque boucle ? C'est compliqué. nom ?
Apparament c'est vous qui géré ce forum là ? Merçi d'avoir retiré mon maile ...j'avais hésité de le mettre...
@+

Répondre à maxdor

FileName = app.path & "test.txt"
Open FileName For Append As #1

For Un to 3
For Deux to 3
For Trois to 3
Chiffre = Un & Deux & Trois
Print #1, Chiffre & ", "
Next
Next
Next

Close #1

Voila.

EDIT: Voila une petite explication au cas ou le code est incomprehensible.
On entre dans la premiere bocle, puis dans la deuxieme, puis dans la troisieme. Puis on ajoute ( pas comme en math ) les nombres ce qui donne 111 la premiere fois, puis comme on est a l'interieur de la troisieme boucle et que Trois < 3, Trois est incrémenté de 1 donc on obtien 112. Et ainsi de suite.


Message édité par Hrusdik le 09-09-2007 à 00:55:58
------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

Salut,
Merci pour ton aide hrusdik, c gentil.
(j'ai pas pu me connecter depuis 1 semaine à cause de mon PC. J'utilise maintenant celui d'un ami)

Ton code est vraiment intérressant...je but un peut sur (#1, Chiffre & ", " ) mais je pense bientôt tout comprendre !


Merci encore @+


Message édité par maxdor le 16-09-2007 à 23:21:32
Répondre à maxdor

FileName = app.path & "test.txt"
Open FileName For Append As #1 ' On ouvre le fichier "text.txt" qui se trouve dans le meme repertoire que l'executable

For Un to 3
For Deux to 3
For Trois to 3
Chiffre = Un & Deux & Trois
Print #1, Chiffre & ", " ' premiere boucle : Chiffre = "111" on rajoute ", " ca donne "111, " puis a la deuxieme boucle Chiffre = "112" on ajoute ", " ca donne "112, " on place ca dans le flux d'entrée du fichier dans le quel on a deja "111, " donc ca fait "111, 112, " etc ... mais le seul hic c'est qu'en arrivant a 333 on aura "333, " mais c'est facilement resolé avec un if Chiffre = "333" then Print #1, Chiffre : Close #1
Next
Next
Next

Close #1


Message édité par Hrusdik le 16-09-2007 à 23:26:40
------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

C encore moi!
Si je voudrais rajouter à toute ces valeur une autre chaine Ex: A111, A112
alors je pense faire comme sa:

Print #1, & "A" ,Chiffre & ", "

Est-ce qu'il y aurait des erreur là ?
Merci


Message édité par maxdor le 16-09-2007 à 23:27:08
Répondre à maxdor

Oula mauvaise syntaxe :)

Ca sera : Print #1, "A" & Chiffre & ", "

Le caractere A est ajoutée a chiffre puis ", " leur est ajoutée.

------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

merci
J'essais un autre truc,
@+

Répondre à maxdor

Je voulais dire que pour les valeur numérique c'est facile à comprendre et je t'en remérci;
Mais plus dure pour des chaine

Par example pour faire une contaténation de boucle imbriqué avec 4 chaine (A, B, C, D) mais affiché seulement par trois caractère maximum; Ex:
AAA AAB AAC AAD ABA ...DDD

Voici mon idée:


Je ne sais pas comment limiter .

@+

Répondre à maxdor

Eh bien tu n'a qu'a utiliser leur valeurs ASCII :

A = 97 je crois, B = 98 etc ...

Et tu utilise la fonction Chr(le_code_de_la_lettre_ici) pour "convertir" ton code ASCII en Symbole lui correspondant.

Donc tes For tu les fais comme ca :

For PremiereLettre = 97 to 100 ' jusqu'a D

------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

merci hrusdik,

Je vais voire sa,
Merci@+

ps: à chaque fois le temps est trop juste.

Répondre à maxdor

For A=97 To 100 For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(97) & Chr(98) & Chr(99) & Chr(100)
Print #1, Résultat & " "
Next
Next
Next
Next
End
__________________________
Vérsion Boite MSgbox:


For A=97 To 100
For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(97) & Chr(98) & Chr(99) & Chr(100)
Print MSgbox, Résultat & " "
Next A
Next B
Next C
Next D
End
__________________________________
La bonne version je pense (en MSgbox):



For A=97 To 100
For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
Print MSgbox, Résultat & " "
Next A
Next B
Next C
Next D
End


Note: J'ésite entre les deux ;
Print MSgbox, Résultat & " " Ou:
Debug.Print Résultat & " " (exécution seulement)


Voilà, j'espert ne pas mettre gourré.
@+

Voil

Répondre à maxdor

Salut hrusdik,
Est-ce que tu peus m'aider pour ce code ?

Merci et bon weekend @+

marc ;)

Répondre à maxdor

For A=97 To 100
For B=97 To 100
For C=97 To 100
For D=97 To 100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
MSgbox Résultat & ", "
Next A
Next B
Next C
Next D

---------------------------------------------------------


For A=97 To 100
For B=97 To 100
For C=97 To 100
For D=97 To 100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
Print #1, Résultat & ", "
Next A
Next B
Next C
Next D



Voila

------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

Merci,
Finalement je comprend mieux maintenant.

Merci par tes bonne éxplications Hrusdik



marc @+

Répondre à maxdor

#l
Salut Hrusdik,
Pour mon dérnier postage sur ce sujet là, je voudrais résoudre cette derniére si elle est juste :

1) Faire la même chose mais Avec une variable tableau "a"
Voiçi mon code:


Sub test()
Dim a As string 'ou plutôt a(2) ?
a(0)= A, a(1)= B, a(2)= C
Dim i As integer

For i = 0 To 2
For j = 0 To 2
For k = 0 To 2
Résultat = (a(i) & a(j) & a(k))
Print #1, Résultat & ", "
Next k
Next j
Next i
End


2) remplacer 0 To 2 par une variable:

Sub test()
Dim Chiffre1, Chiffre2, As integer
Chiffre1 = 0
Chiffre2 = 2
Dim a As string
a(0)= A, a(1)= B, a(2)= C
For i = Chiffre1 To Chiffre2
For j = Chiffre1 To Chiffre2
For k = Chiffre1 To Chiffre2
Résultat = (a(i) & a(j) & a(k))
Print #1, Résultat & ", "
Next k
Next j
Next i
End

Voilà voilou ;)
merci bien, @+

marc


Message édité par maxdor le 14-10-2007 à 23:16:50
Répondre à maxdor

Salut,

En attendant une réponse utile, je vous souhaite un bon weekend à tous.

marc

Répondre à maxdor

Finalement je me suis trompé pour la 1) .
Le code était plutôt :

Sub test()
Dim a As string 'ou plutôt a(2) ?
a(0)= A, a(1)= B, a(2)= C
Dim i As integer

For i = a(0,1,2)
For j = a(0,1,2)
For k = a(0,1,2)
Résultat = a(i) & a(j) & a(k)
Print #1, Résultat & ", "
Next k
Next j
Next i
End

Voilà, je pense que tout est juste.
@+

marc

Répondre à maxdor

peux tu reexpliquer ton probleme stp ?

PS: Tes declaration de table sont faux :)
Dim a(taille) as type_de_variable

apres je comprends pas ce que tu voeux faire ^^
la syntaxe est trop incorrecte.

------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

En faite c'est une variable tableau a()
@+
je reviend poster (jai un prob)
merci

Répondre à maxdor

Salut.

Je voudrais faire comme au début.
génerer des concaténationS avec pour i = A à B
Donc utiliser une vaiable tableau a(0)= A ; a(1)=B ; a(2)= C
puis faire comme avec "i = 0 to 2 " mais avec des chaines et une variable tableau à la place de 0 à 2.
A la fin sa doit générer AAA , AAB , AAC , ... CCC .
Voilà, j'ésper avoir répondu clairement .

peut étre une éreur aussi à l'utilisation de "#"

A+

marc

Répondre à maxdor

Salut Hrusdik,

la syntaxe que je veus désigner est:
(mais pour "As string" je me suis peut être surement trompé)

Dim a(0) As string
Dim a(1) As string
Dim a(2) As string
a(0)= A
a(1)= B
a(2)= C

Je voudrais ensuite faire comme sa :

For i = a(0,1,2) équivaut à For i = a(0) To a(2) ; soit i = A To C

Normalement on peut utiliser des variables tableau pour faire des boucles imbriqué avec des chaines comme pour des chiffres.
Ma syntaxe "For i = a(0,1,2)" comme tu le dis est fausse alors peut être que c'est :

For i = a(2)
For i = a(2)
For i = a2)

Peut être que cette fois çi c'est juste :)

Marc , merci

Répondre à maxdor

Bonjour,
Je n'est pas pu tester ce code, mais àprés avoir fait le tours de la question "à propos de la syntaxe", je crois quelle est peut être juste, mais sa réste à être testé.

Voilà, salut @+

Répondre à maxdor

Un tableau est declaré comme suit : Dim a() as String
Pour affecter les valeur : a(1) = "B" , a(2) = "C" etc ...

Pour extraire c'est pareil.

Je te laisse reflechir.

( dsl je suis pressé )

------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

Salut,

 

Je n%u2019est pas puvenir plus tôt car je n%u2019avais plus accés à internet.
Pour revenire sur la façon pour extraire je pense que c%u2019est la même chose , sauf pour affecter on choisi « string » et on ajoute les guillemets.

 

Code :

 

Dim a As string 'ou plutôt a(2) ?
a(1)= %u201CA%u201D , a(2)= %u201CB%u201D , a(3)= %u201CC%u201D
Dim i , j , k As string

For i = a(1,2,3)
For j = a(1,2,3)
For k = a(1,2,3)
Résultat = a(i) & a(j) & a(k)
Print , Résultat & ", "
Next k
Next j
Next i
End

 

Voila, je crois que cette fois-ci c%u2019est peut être juste.
Merci
A+ , marc

 

PS : sinon on peut aussi peut être écrire i = a(1) To a(3)


Message édité par maxdor le 11-10-2007 à 22:33:15
Répondre à maxdor

For i = a(1,2,3)
c'est faux

Dim a() as String
a(1)= “A”
a(2)= “B”
a(3)= “C”

For 1 to 3
For 1 to 3
For 1 to 3
Résultat = a(i) & a(j) & a(k)
Print , Résultat & ", "
Next k
Next j
Next i

Voila.


Message édité par Hrusdik le 11-10-2007 à 22:36:40
------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

Dans le meme genre t'a http://googleforidiots.com ;)
Mais bon ca n'a rien avoir avec le sujet ;)


Message édité par Hrusdik le 11-10-2007 à 22:45:36
------------------------------ Codialement, Hrusdik.
Répondre à Hrusdik

C le site que j'avais posté sa!

ok je vois bien maintenant le fonctionnement.

merci
A+

Répondre à maxdor

Salut,
Juste pour dire qu'au début de mon post sur les variables tableau j'avais trés bien écrit la boucle. (message= #1)
Elle était juste mais c'était juste au niveau des déclaration de variable qu'il y avait une faute,
c'était les guillemet qu'il manquait a(1)= "A" et non a(1) = A
sinon le réste du code était juste.

Donc pour le lien je pense qu'il est en trop.

A+

Marc


Message édité par maxdor le 14-10-2007 à 23:19:37
Répondre à maxdor
Tom's Guide > Forum > Programmation > Petit jeux ludique d'unstruction VB
Aller à :

Il y a 1382 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens