Comparer deux chaines et affichage

claude477 Messages postés 2 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 9 avril 2014 - 9 avril 2014 à 16:56
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 10 avril 2014 à 07:41
Bonjour,

Je suis nouveau ici.
Je voudrais créer un code VB qui stocke en mémoire 8 nombres (de 1 à 10 séparés par une virgule) ex: 1,3,10,4,10,7,9,9
et génère en mémoire des alea de 9 (un de plus) nombres du même type en boucle.
Quand les 8 premiers nombres générés sont exactement identiques aux 8 premiers nombres stockés, le code affiche la suite de 9 nombres trouvés en messagebox, (ex ici 1,3,10,4,10,7,9,9 et le 9ème nombre)

Comment dois-je faire?

merci

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 avril 2014 à 17:40
Bonjour,
1) Sous quoi développes-tu ?
Tu as ouvert cette discussion dans le forum général de Visual Basic, si bien que l'on ne sait pas si tu développes sous VB6, VBA, VB.Net ou VBS ...
2) essaye d'être plus précis sur ce que tu veux faire exactement et d'isoler ta difficulté (une seule par discussion)
3) montre-nous le code au moins tenté pour parvenir à tes fins
0
jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 344
9 avril 2014 à 17:45
Bonjour,

Déjà.. tu postes dans la partie Visual Basic du forum... Oui... mais lequel ?? ... VB.NET / VB6 / VBA ??

Ensuite:

Je ne suis pas sur d'avoir tout compris à ta question......

un code VB qui stocke en mémoire 8 nombres (de 1 à 10 séparés par une virgule) ex: 1,3,10,4,10,7,9,9

Qui proviennent d'où ? Ou du moins... que tu choisis comment ?

génère en mémoire des alea de 9 (un de plus) nombres du même type en boucle
Tu veux dire : Faire 9 random dans une boucle ) ?

Et lorsque tes 8 random ( +1 ) donnent la même série de nombres.. que ceux stockés en mémoire .. tu affiches alors le neuvième ?

Donc :
il te faut une boucle
http://msdn.microsoft.com/fr-fr/library/zh1f56zs.aspx

Il te faut du RANDOM
http://msdn.microsoft.com/fr-fr/library/f7s023d2%28v=vs.90%29.aspx

Il te faut faire la comparaison :
http://msdn.microsoft.com/fr-fr/library/cey92b0t.aspx

0
claude477 Messages postés 2 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 9 avril 2014
9 avril 2014 à 18:09
Bonjour,

Je développe sous vba étant intégré à Office. Je n'ai pas d'autre licence.


Déjà.. tu postes dans la partie Visual Basic du forum... Oui... mais lequel ?? ... VB.NET / VB6 / VBA ?? =====> VBA

Ensuite:

Je ne suis pas sur d'avoir tout compris à ta question......

un code VB qui stocke en mémoire 8 nombres (de 1 à 10 séparés par une virgule) ex: 1,3,10,4,10,7,9,9


Qui proviennent d'où ? ==> je les choisis comme constante à inscrire en dur dans le code

génère en mémoire des alea de 9 (un de plus) nombres du même type en boucle

Tu veux dire : Faire 9 random dans une boucle ) ? => des boucles jusqu'à ce que les 8 premiers nombres stockés correspondent un à un aux 8 random

Et lorsque tes 8 random ( +1 ) donnent la même série de nombres.. que ceux stockés en mémoire .. tu affiches alors le neuvième ? ===OUI

merci
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 656
9 avril 2014 à 18:20
Bonjour, déplacé en VBA.

pour citer un texte, merci d'utiliser les balises <block >texte à citer</block> (sans l'espace qui ne sert qu'à te montrer la balise)

Voir cet exemple
Je développe sous vba étant intégré à Office. Je n'ai pas d'autre licence.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 9/04/2014 à 21:14
 je les choisis comme constante à inscrire en dur dans le code 
1) commence par montrer cette déclaration de "constante"
2) tu ne précises rien quant à l'ordre de ces valeurs.
Doit-il correspondre ?
si oui : quelle est selon toi la probabilité de "tirer" aléatoirement 8 chiffes de 1 à 10 dans le même ordre ? (ta "boucle" risque de tourner longtemps ... , voire de ne jamais "tomber" sur cet ordre)).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 10/04/2014 à 08:16
Alors :
1) Compte tenu de ton exemple (où l'on voit des chiffres de 1 à 10 pouvant être répétés). ===>>> c'est exactement la même chose que des combinaisons de chiffres de 0 à 9 où les chiffres peuvent être répétés ===>> et donc : la combinaison la plus petite est 0,0,0,0,0,0,0,0 et la plus grande : 9,9,9,9,9,9,9,9 ===>> ce qui veut dire que tu as 99 999 999 + 1 = 1 000 000 000 (un milliard) de combinaisons de l'espèce possibles.
2) ce que tu as écrit ici :
de 1 à 10 séparés par une virgule) ex: 1,3,10,4,10,7,9,9
donne à penser qu'il s'agit d'un exercice et que tu n'en as pas compris l'énoncé (tu semples ignorer la différence entre une chaîne de caractères et un array)
Nous n'allons pas t'écrire le code de ce qui parait être un exercice.
Je vais ici me contenter de te dire ce à quoi du dois t'intéresser :
a) Fonction Format
ta fonction format devra utiliser un caractère de séparation autre que "," et/ou ". "
b) si tu veux traiter une simple chaîne de caractères (séparation des chiffres par une virgule), il te faudra utiliser la fonction Replace (pour remplacer par le caractère "," le caractère utilisé pour la séparation en a), puis à nouveau Replace pour remplacer les "0" par des "10"
c) si c'est au contraire un array, que tu veux, il te faudra utiliser la fonction Split. après avoir remplacé (fonction Replace) les "0" par des "10".
Voilà : tu as maintenant tout pour t'y mettre. A lire, bien évidemment, dans ton aide VBA : toutes les rubriques correspondant aux mots que j'ai soulignés plus haut.

Ensuite : tu as dit plus haut vouloir tirer aléatoirement tes combinaisons en boucle : ==>> cela veut dire :
a) que tu as, à chaque tirage, une chance sur un milliard de "tomber" sur la combinaison recherchée
b) "une chance sur un milliard" ne veut pas du tout dire que si l'on "tire" un milliard de fois, on tombe forcément sur la combinaison, hein ... Tu peux aussi bien tomber dessus dès le 1er tirage que ... jamais ...

Travaille bien.

EDIT : ah oui : pour ce qui est de tirer aléatoirement : ouvre ton aide sur les mots Rnd et Randomize

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Rejoignez-nous