Bonjour à tous,
J'aurais besoin de votre aide car je n'arrive pas à faire une incrémentation d'une chaine de caractères.
Voilà le problème :
On doit retrouver (obligatoirement avec 8 threads) un mot (de 5 caractères) contenu dans un fichier texte.
On donne au départ un alphabet de 10 lettres qui sont utilisées dans le mot et chaque thread doit tester une partie des combinaisons possibles.
Comme on a un alphabet de 10 lettres et que le mot en fait 5, il y a 10^5 possibilités.
Admettons que le mot recherché soit "clair".
Le programme doit tester toutes les combinaisons possibles et retrouver le mot.
Donc il commence par "aaaaa", puis "aaaab", etc.., jusqu'à "claiq", puis "clair".
Voilà le code auquel on a pensé :
Est-ce qu'on est sur la bonne voie?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 //Variables globales// int nb_lettres_alphabet; char combinaison[int nb_lettres_alphabet]; int taille_mdp; int nb_threads; //Fonctions// char thread1 (char combinaison[]) { mdp = fopen (mdp.txt, 'r'); const char val_debut = "aaaaa"; const char val_fin = "ccccc"; char i; for (i = val_debut ; i < val_fin ; i++) //Le problème est au niveau des conditions de la boucle "for" { if (mdp == combinaison[i]) { pthread_cancel (thread2); pthread_cancel (thread3); pthread_cancel (thread4); pthread_cancel (thread5); pthread_cancel (thread6); pthread_cancel (thread7); pthread_cancel (thread8); printf ("Le mot recherché est: "); printf (combinaison[i]); } } return(combinaison[i]); }
Merci à tous pour votre aide![]()
Partager