Fonction aleatoire
Fermé
vivelamayo
Messages postés
5
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
13 décembre 2009
-
13 déc. 2009 à 16:30
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 13 déc. 2009 à 19:21
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 13 déc. 2009 à 19:21
A voir également:
- Fonction aleatoire
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Fonction filtre excel n'existe pas - Forum Excel
6 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
13 déc. 2009 à 16:53
13 déc. 2009 à 16:53
Une lettre, c-à-d un caractère (un char) en C++ c'est juste une variable numérique (oui oui, un nombre) qui représente un code ASCII plus ou moins.
tu vas voir la table ascii en lien juste à la ligne au dessus. ensuite tu dois simplement faire une fonction qui utilise rand() pour créer un nombre aléatoire entre tant et tant (Selon si tu veux utiliser les majuscules aussi, certaines lettres, etc...).
un truc du genre :
//fonction qui donne un caractère au hasard entre A, B, C et D :
//quelque part dans ton code il serait bien d'avoir :
const char CODE_A = 'A'; // le code ASCII pour 'A'
char caractereAleatoire() {
return (char) (rand() % 4) + CODE_A;
// ou return (char) ( (rand%4) + 65);
}
pour être honnête j'ai la flemme de tester là maintenant, je ne suis pas tout à fait sûr de mon coup, mais essaye et tu verras bien si ça marche ;)
tu vas voir la table ascii en lien juste à la ligne au dessus. ensuite tu dois simplement faire une fonction qui utilise rand() pour créer un nombre aléatoire entre tant et tant (Selon si tu veux utiliser les majuscules aussi, certaines lettres, etc...).
un truc du genre :
//fonction qui donne un caractère au hasard entre A, B, C et D :
//quelque part dans ton code il serait bien d'avoir :
const char CODE_A = 'A'; // le code ASCII pour 'A'
char caractereAleatoire() {
return (char) (rand() % 4) + CODE_A;
// ou return (char) ( (rand%4) + 65);
}
pour être honnête j'ai la flemme de tester là maintenant, je ne suis pas tout à fait sûr de mon coup, mais essaye et tu verras bien si ça marche ;)
vivelamayo
Messages postés
5
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
13 décembre 2009
13 déc. 2009 à 16:58
13 déc. 2009 à 16:58
ah oui la table ascii !! ^^ je n'y avait pas pensé merci beaucoup =)
vivelamayo
Messages postés
5
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
13 décembre 2009
13 déc. 2009 à 17:00
13 déc. 2009 à 17:00
mais est-il possible de générer une chaine de seulement 4 caractères ?
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
13 déc. 2009 à 17:07
13 déc. 2009 à 17:07
pour un chaine c'est autre chose. mais on peut récupérer le principe :
tu n'as qu'à créer un tableau de char, rajouter le caractère nul ('\ 0' ou la valeur numérique 0) à la fin, et tu as une chaine de caractères style C ;) convertible en String avec un simple "String chaine =ton tableau de char" ou "String chaine = new String(ton tableau de char)" je ne sais plus.
tu n'as qu'à créer un tableau de char, rajouter le caractère nul ('\ 0' ou la valeur numérique 0) à la fin, et tu as une chaine de caractères style C ;) convertible en String avec un simple "String chaine =ton tableau de char" ou "String chaine = new String(ton tableau de char)" je ne sais plus.
vivelamayo
Messages postés
5
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
13 décembre 2009
13 déc. 2009 à 17:57
13 déc. 2009 à 17:57
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vivelamayo
Messages postés
5
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
13 décembre 2009
13 déc. 2009 à 18:36
13 déc. 2009 à 18:36
Pacorabanix, je ne cherche pas tout a fait ça mais merci.
Je voudrais que l'ordi me une série aléatoire de 4 lettres contenant les lettres "R, V, B, J, N, O"
Je voudrais que l'ordi me une série aléatoire de 4 lettres contenant les lettres "R, V, B, J, N, O"
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
13 déc. 2009 à 19:21
13 déc. 2009 à 19:21
Ok. la différence est plutôt grande si le programme peut répéter les mêmes lettres ou non.
Le plus simple, c'est s'il peut les répéter :
tu mets des caractères dans un tableau de char.
Tu as un tableau pour les caractères aléatoires que tu vas choisir
Tu tires un nombre n au hasard entre 0 et 5, et tu places le caractère correspondant ( leTableauDeBase[n] ) dans la première case de ton tableau de caractère aléatoire. Tu répètes ça pour les 3 cases de ton tableau de caractères aléatoires.
Sinon, si tu n'as pas le droit d'utiliser plusieurs fois le même caractère, il faut ruser et faire en sorte de par exemple:
* soit retirer si le caractère est déjà utilisé, et comme tu peux retomber dessus encore, il faut faudra peut-être retirer beaucoup de fois,
* soit de supprimer le caractère déjà utilisé du tableau initial, ce qui implique de recréer le tableau à chaque fois et aussi de faire attention à ne pas tirer un nombre aléatoire entre 0 et 5 pour la deuxième fois, mais entre 0 et 4. Puis entre 0 et 3, etc.. ça demande quelques efforts, et ce serait très grandement facilité si tu as quelques notions des conteneurs standard de la STL (comme vector<> ou list<>).
il y a diverses autres possibilités bien sûr, et il y a surement des bibliothèques de fonctions deja faites pour ça mais personnellement je ne les connais pas.
Le plus simple, c'est s'il peut les répéter :
tu mets des caractères dans un tableau de char.
Tu as un tableau pour les caractères aléatoires que tu vas choisir
Tu tires un nombre n au hasard entre 0 et 5, et tu places le caractère correspondant ( leTableauDeBase[n] ) dans la première case de ton tableau de caractère aléatoire. Tu répètes ça pour les 3 cases de ton tableau de caractères aléatoires.
Sinon, si tu n'as pas le droit d'utiliser plusieurs fois le même caractère, il faut ruser et faire en sorte de par exemple:
* soit retirer si le caractère est déjà utilisé, et comme tu peux retomber dessus encore, il faut faudra peut-être retirer beaucoup de fois,
* soit de supprimer le caractère déjà utilisé du tableau initial, ce qui implique de recréer le tableau à chaque fois et aussi de faire attention à ne pas tirer un nombre aléatoire entre 0 et 5 pour la deuxième fois, mais entre 0 et 4. Puis entre 0 et 3, etc.. ça demande quelques efforts, et ce serait très grandement facilité si tu as quelques notions des conteneurs standard de la STL (comme vector<> ou list<>).
il y a diverses autres possibilités bien sûr, et il y a surement des bibliothèques de fonctions deja faites pour ça mais personnellement je ne les connais pas.