IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Méthodes toutes faites à introduire


Sujet :

avec Java

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Par défaut Méthodes toutes faites à introduire
    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

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut


    Tous ces "symbol" correspondent à des classes Java standard. C'est qu'il te manque un import de la bibliothèque correspondante : java.io


  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Par défaut
    Citation Envoyé par Drowan Voir le message


    Tous ces "symbol" correspondent à des classes Java standard. C'est qu'il te manque un import de la bibliothèque correspondante : java.io


    Hello !

    Je te remercie, effectivement je n'étais pas près de le deviner

    Et comme je me doutais, il ne suffit pas juste de coller ces morceaux et attendre qu'ils fonctionnent tous seuls... J'ai appelé la fonction donnerTirage sans problème, en revanche je n'arrive pas à appeler la seconde (getDictionnaire) afin de comparer le mot saisi au dictionnaire et voir s'il en fait partie. Encore une fois, si je comprenais ce que faisait exactement ce code je pourrais peut-être savoir comment et à quel moment l'appeler :
    - je pense qu'il faut l'appeler juste après la saisie du mot par l'utilisateur afin de comparer les deux, mais alors comment parcourir le dictionnaire ? Est-ce que la méthode s'en occupe ?
    - j'ai essayé de l'appeler avec mon tableau de char en paramètre mais il me dit que cette méthode ne requiert aucun paramètre...

    Je n'attends pas du code tout cuit, juste si quelqu'un pouvait m'expliquer ce qui est censé se passer et comment je pourrais procéder ce serait vraiment gentil

    Merci encore Drowan, et Joyeux Noël !

  4. #4
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    je pense qu'il faut l'appeler juste après la saisie du mot par l'utilisateur afin de comparer les deux, mais alors comment parcourir le dictionnaire ? Est-ce que la méthode s'en occupe ?
    La définition de la fonction public static char[][] getDictionnaire(){ t'indiques qu'elle ne prend pas de paramètre et te retourne un tableau de tableau de char (autrement dit un tableau de mot).
    Cette fonction te permet donc de récupérer le dictionnaire. C'est à toi de comparer si ton mot s'y trouve (soit en le codant soit en utilisant une autre fonction qui t'est fournit, ça je peux pas le savoir )

    Sinon, pour ta curiosité, la fonction va lire dans un fichier texte (dico_nfa031.txt) un ensemble de mots.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Par défaut
    Citation Envoyé par Drowan Voir le message
    La définition de la fonction public static char[][] getDictionnaire(){ t'indiques qu'elle ne prend pas de paramètre et te retourne un tableau de tableau de char (autrement dit un tableau de mot).
    Cette fonction te permet donc de récupérer le dictionnaire. C'est à toi de comparer si ton mot s'y trouve (soit en le codant soit en utilisant une autre fonction qui t'est fournit, ça je peux pas le savoir )

    Sinon, pour ta curiosité, la fonction va lire dans un fichier texte (dico_nfa031.txt) un ensemble de mots.

    Bonjour

    Merci pour ces explications. N'ayant pas eu d'autres fonctions toutes faites, je vais donc coder cette comparaison.
    Est-ce qu'il existe des méthodes pour comparer un tableau de char à un tableau de tableau de char (et donc parcourir mon dictionnaire) autrement qu'avec les Array ? Oui, ça nous a été interdit...

    Merci encore !

  6. #6
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Je pense pas qu'il existe de fonction standard pour comparer des tableaux. Et quand bien même, je pense que c'est l'objectif de ton exercice de chercher à construire une telle méthode.

    Dans la logique, il faut que tu compare ton mot à chaque mot du dictionnaire jusqu'à ce que tu tombes sur le même mot (ou que tu es atteint la fin du dictionnaire).
    Et pour comparer 2 mots, ils faut comparer les char qui le compose.

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Par défaut
    Citation Envoyé par Drowan Voir le message
    Je pense pas qu'il existe de fonction standard pour comparer des tableaux. Et quand bien même, je pense que c'est l'objectif de ton exercice de chercher à construire une telle méthode.

    Dans la logique, il faut que tu compare ton mot à chaque mot du dictionnaire jusqu'à ce que tu tombes sur le même mot (ou que tu es atteint la fin du dictionnaire).
    Et pour comparer 2 mots, ils faut comparer les char qui le compose.

    L'objectif principal c'était d'afficher les numéros en dessous de chaque lettre du tirage et de les faire correspondre aux lettres du mot tapé par l'utilisateur, du style
    CIROMNTEES > 0123456789
    CROISEE > 0231978
    Et ça j'ai réussi

    Et je suis entièrement d'accord, comme je l'avais dit je ne veux pas de code à appliquer, juste savoir s'il existe une telle fonction (je me disais que peut-être il y avait un moyen plus simple que de parcourir les quelques milliers de mots du dictionnaire un par un...).
    Il me reste donc plus qu'à m'y mettre !

    Merci encore pour ton aide vraiment

    Joyeuses fêtes à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script de mailing list tout fait ?
    Par i_shinji dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 30/05/2007, 10h17
  2. Des boites tout faites en Swing ?
    Par dr23fr dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 04/07/2006, 15h47
  3. Existe t-il des Sites en php prêt à l'emploi...tout fait !!!
    Par Chronax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 09/03/2006, 17h01
  4. Réponses: 3
    Dernier message: 07/12/2004, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo