Bonsoir,

Je reviens vers vous cette fois pour un autre problème concernant mon programme : on nous a donné deux morceaux de code à introduire au tout début du code, et je cite "vous n'avez pas besoin de le comprendre pour l'utiliser, il fonctionnera."
Le problème ? Il ne fonctionne pas et DRJava me met le message suivant :

6 errors found:
File: C:\Users\ameli\Desktop\Am\JAVA\Exo.java [line: 50]
Error: cannot find symbol
symbol: class FileReader
location: class Exo

File: C:\Users\ameli\Desktop\Am\JAVA\Exo.java [line: 50]
Error: cannot find symbol
symbol: class FileReader
location: class Exo

File: C:\Users\ameli\Desktop\Am\JAVA\Exo.java [line: 51]
Error: cannot find symbol
symbol: class BufferedReader
location: class Exo

File: C:\Users\ameli\Desktop\Am\JAVA\Exo.java [line: 51]
Error: cannot find symbol
symbol: class BufferedReader
location: class Exo

File: C:\Users\ameli\Desktop\Am\JAVA\Exo.java [line: 60]
Error: cannot find symbol
symbol: class FileNotFoundException
location: class Exo

File: C:\Users\ameli\Desktop\Am\JAVA\Exo.java [line: 64]
Error: cannot find symbol
symbol: class IOException
location: class Exo


Je vous mets le morceau de code qui correspond déjà parce qu'en tant que débutante, effectivement je ne comprends pas exactement ce que ça fait. Je ne risque donc pas de voir s'il y a une quelconque erreur.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
public static char[] donnerTirage(){
      double[] frequences = {
        0.084641116045612,
        0.097550346533667,
        0.134264256131715,
        0.175931501299866,
        0.339787563705305,
        0.352412789645191,
        0.366356662429924,
        0.37898710353533,
        0.454338255487703,
        0.458247915903501,
        0.461526843221907,
        0.517821090574744,
        0.547529673593674,
        0.620002807215,
        0.677444355180383,
        0.70566493929644,
        0.71299279223788,
        0.781799811286431,
        0.855650833407438,
        0.922800098125308,
        0.974199670376239,
        0.986838818540602,
        0.98881203071521,
        0.993095137557963,
        0.998288765757996,
        1};
 
      char[] res=new char[10];
      for (int i=0; i<res.length; i++){    
        double ausort = Math.random();   
        int j=0;    
        while(frequences[j]<ausort)
          j++;
        res[i] = (char)('A'+j);
      }
      java.util.Arrays.sort(res);
      return res;
    }
 
 
    public static char[][] getDictionnaire(){
      char[][] res;
      char[][] temp = new char[500000][];
      int nbMots = 0;
      try {
        FileReader fr = new FileReader("dico_nfa031.txt");
        BufferedReader br = new BufferedReader(fr);
        String ligne = br.readLine();
        while(ligne != null){
          temp[nbMots] = ligne.trim().toCharArray();
          nbMots++;
          ligne = br.readLine();
        }
        br.close();
      }
      catch(FileNotFoundException e){
        String str = "Fichier dico_nfa031.txt non trouvé";
        throw new RuntimeException(str);
      }
      catch(IOException e){
        String str = "Problème à la lecture du fichier";
        throw new RuntimeException(str);
      }
      res = new char[nbMots][];
      for (int i=0; i<nbMots; i=i+1){
        res[i]=temp[i];
      }
      return res;
    }
Je vais quand même parler un peu du programme : il doit tirer une série de lettres au sort, la ranger dans un tableau puis l'afficher, demander à l'utilisateur de faire un mot avec ces lettres, le stocker dans un 2e tableau puis l'afficher, vérifier que le mot se trouve dans le dictionnaire, vérifier que chacune des lettres du tirage n'est utilisée qu'une seule fois, compter le nombre de lettres du mot saisi au clavier et enfin demander à l'utilisateur s'il veut rejouer.

Pour m'entrainer avant d'introduire ces bouts de code que je ne comprenais pas, j'ai fait mon propre programme avec au lieu d'un tirage au sort et d'un dictionnaire juste une demande de saisie de lettres par l'utilisateur. Tout fonctionne très bien (je ne vous mets pas le code, ce message est déjà bien assez long), mais lorsque je remplace cette demande de saisie de lettres par les méthodes ci-dessus ben plus rien.

On ne nous l'a pas précisé mais je suppose que je suis censée appeler ces méthodes pour avoir le fameux tirage, puis à un moment donné appeler getDictionnaire pour vérifier si le mot en fait partie ? Voilà on nous a jeté ça comme ça en nous disant qu'on avait pas besoin d'en savoir plus, et lorsqu'une autre personne a essayé de demander des détails elle a juste eu répétition du même message...Mais je n'aime pas trop l'idée de travailler à l'aveugle, je trouve pas vraiment que ça nous aide à apprendre.

Est-ce que quelqu'un ici saurait de quoi il s'agit ? Pourquoi y a t-il autant d'erreurs ? Qu'est-ce que ces méthodes font exactement ?

Vraiment désolée pour le long message, je préfère en dire trop que pas assez si je veux de l'aide ^^

Joyeuses Fêtes à tous et merci