éviter les répétitions
Fermé
Dark_another
Messages postés
366
Date d'inscription
mardi 28 juin 2016
Statut
Membre
Dernière intervention
18 mars 2018
-
30 juin 2016 à 13:28
Dark_another Messages postés 366 Date d'inscription mardi 28 juin 2016 Statut Membre Dernière intervention 18 mars 2018 - 11 juil. 2016 à 16:33
Dark_another Messages postés 366 Date d'inscription mardi 28 juin 2016 Statut Membre Dernière intervention 18 mars 2018 - 11 juil. 2016 à 16:33
A voir également:
- éviter les répétitions
- Willemse le piege à éviter à tout prix - Forum Consommation et internet
- Marque ordinateur portable à éviter ✓ - Forum Ordinateur portable
- Liste des sites internet à éviter - Forum Virus / Sécurité
- Comment éviter les tunnels - Forum GPS
- Pour éviter toute utilisation détournée ✓ - Forum Facebook
1 réponse
hopelan
Messages postés
95
Date d'inscription
dimanche 12 juin 2016
Statut
Membre
Dernière intervention
16 janvier 2018
85
1 juil. 2016 à 14:06
1 juil. 2016 à 14:06
Bonjour,
Si j'ai bien comprit, tu tire au hasard un certain nombre de nombres dans un fichier texte. Ce nombre de tirage étant définir par l'utilisateur. Seulement pour trouver une façon d'optimiser ton code, il faudrait peut-être que tu poste un morceau de ton fichier texte contenant les nombres. Comment sont séparés les nombres ? Y a-t-il autre chose que des nombres dans ce fichier ? Comment sont-t-ils encodés ?
Si j'ai bien comprit, tu tire au hasard un certain nombre de nombres dans un fichier texte. Ce nombre de tirage étant définir par l'utilisateur. Seulement pour trouver une façon d'optimiser ton code, il faudrait peut-être que tu poste un morceau de ton fichier texte contenant les nombres. Comment sont séparés les nombres ? Y a-t-il autre chose que des nombres dans ce fichier ? Comment sont-t-ils encodés ?
5 juil. 2016 à 20:51
001
002
003
...
jusqu'a 999
Il n'y a rien d'autre que des nombre
je ne comprends pas quand tu dis "encodé"
désolé je ne pouvais pas répondre car je n'avais pas le wi-fi
Modifié par hopelan le 10/07/2016 à 00:58
Pour l'encodage, je pense que tes chiffres correspondent à des caractères ascii extended, encodés sur 8 bits (soit dans un char). Vu ces nombres sont tapés "manuellement" ou entrés depuis un string si je ne m'abuse. Ils auraient très bien pu être encodés sur 4 bits dans un int et écrits comme tel dans ton fichier.
Pour ton programme, tu devrait dans un premier temps lire le fichier et stocker ces nombres en mémoire via une fonction :
readNumbers(const std::ifstream& file, std::vector<int>& numbers) // file en entrée et numbers en sortie { readNumbers(file, numbers, 3); } readNumbers(const std::ifstream& file, std::vector<int>& numbers, int charsByNumber) // et sa surcharge qui définit le nombre de caractères dans un nombre { char tmp_char; std::string number; int i = 0; // un char peut aussi convenir pour économiser de la mémoire, à modifier également dans les paramètres de la fonction while(file.get(tmp_char)) // tant qu'il reste des caractères { if(i < 3) { number += tmp_char; i++; } else { numbers.push_back(std::stoi(number)); // pour convertir la chaîne en nombre et l'ajouter au vector. i = 0; } } }Après, il suffit de faire une boucle du genre :
// debut du programme vector<int> numbers; readNumbers(file, numbers); // ... do { int number = algoTirageNombreAlea(numbers); // on tire un nombre de manière aléatoire dans le vector // Traitement du nombre // ... } while(fautIlContinuer()); // fin du programme11 juil. 2016 à 16:33