akwell1
Messages postés47Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention19 juin 2005
-
8 juin 2005 à 19:01
akwell1
Messages postés47Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention19 juin 2005
-
14 juin 2005 à 20:45
salut a tous,
j'ai creer un tableau contenant des mots ( 9 lettres maximum)
je voudrais que lorsque l'utilisateur rentre une sequence de 9 lettre aléatoire, le programme donne tous les mots de ma liste qui pouraient etre formés à partir de ces lettres.(le but etant qu'il affiche les plus longs)
ce programme me semble pas tres complexe, mais n'ayant que des notions de bases, je ne vois pas par ou commencer....
cs_thedestiny
Messages postés56Date d'inscriptionsamedi 3 juillet 2004StatutMembreDernière intervention30 juin 2008 8 juin 2005 à 19:12
Bonjour,
Alors ce n'est pas trop compliqué :)
Tu commences par compter le nombre de lettre saisie par l'utilisateur ( strlen(char*) par exemple )
Après, grace à une liste contenue dans un fichier texte ou autre tu vas faire une simple boucle exemple en vérifiant que les mots de la taille déterminée auparavant contiennent toutes les lettres demandées à l'aide de strstr().
Désolé j'ai pas le temps de te donner un exemple, j'espère que tu y arriveras, sinon dis le je te mettrai le bout de code :)
akwell1
Messages postés47Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention19 juin 2005 8 juin 2005 à 23:27
j'avais penser faire tout les anagrammes possibles avec les 9 lettres (9^9 possibilités) et puis les comparer avec ma liste de mot mais c'est assez long d'execution et pas tres performant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
akwell1
Messages postés47Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention19 juin 2005 9 juin 2005 à 10:08
l'utilisateur rentre tjs 9 lettes
ex:
bnaeaopte ce qui correspond a bateau ( le mot le plus long dans la liste de mots, possible avec cette sequence de lettes)
voila ce que j'ai su faire pour l'instant...
#include
#include <fstream>
using namespace std ;
ifstream fichier("dico.txt") ;
int main (int argc, const char * argv[]){
const int K=200000 ;
string n;
char a,b,c,d,e,f,g,h,i;
string dico[K];
cin >>a>>b>>c>>d>>e>>f>>g>>h>>i;
if(! fichier.is_open()) // si je fichier de données ne se trouve pas dans le repertoire de l'executable
cout<<"Erreur lors de l'ouverture du fichier"<<endl;
int z=0;
while(!fichier.eof()){ //la lecture s'arrete quand toutes les données ont été lues
akwell1
Messages postés47Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention19 juin 2005 9 juin 2005 à 11:34
mais le probleme c'est que je sais pas comment faire pour comparer la sequence de lettres et la liste de mots
car la sequence de lettre est aléatoire
et denerer tout les anagramme a 9lettre (ou moins) et les comparer avec la liste prendrait bcp tro de temps..
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 9 juin 2005 à 13:33
Euh... t'as essayé le pseudo-code que je t'ai passé? T'as un soucis pour l'appliquer à ton cas?
En gros, tu as les lettres saisies par l'utilisateur, tu as un mot tiré
du dico, tu dois juste vérifier si toutes les lettres du mot courant
(tiré du dico) font partie de celles de l'utilisateur...
Buno
----------------------------------------
L'urgent est fait, l'impossible reste à faire. Pour les miracles, prévoir un délai...
akwell1
Messages postés47Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention19 juin 2005 14 juin 2005 à 15:33
lol je connais rien de tout ca
je n'arrive a faire que ca
#include
#include <fstream>
using namespace std ;
ifstream fichier("dico.txt") ;
int main (int argc, const char * argv[]){
const int K=200000 ;
string n;
char a,b,c,d,e,f,g,h,i;
string dico[K];
cin >>a>>b>>c>>d>>e>>f>>g>>h>>i;
if(! fichier.is_open()) // si je fichier de données ne se trouve pas dans le repertoire de l'executable
cout<<"Erreur lors de l'ouverture du fichier"<<endl;
int z=0;
while(!fichier.eof()){ //la lecture s'arrete quand toutes les données ont été lues