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 :

compilation avec une methode de tableaux en parametre


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut compilation avec une methode de tableaux en parametre
    Bonsoir,

    J'ai 3fois la meme erreur que je ne trouve pas :

    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
     
     
    class exo83 {
        static boolean estegal (int[] a1, int[] a2, int[] a3, int[] a4) {
         boolean res = false;
    	 int i;
    	 if ( a1[i]==a2[i]){
    	 if ( (a1[i]!=a3[i]) || ( a1[i]!=a4[i])){
    	    res = true;}
    	  }else{ 
    	    res = false; 
    		}
    		return res;
    	 }
     
      public static void main (String [] args) {
    	int [] t1 = {4,5,6} ;
    	int [] t2 = {4,5,6} ;
    	int [] t3 = {4,5} ;
    	int [] t4 = {6,5,4} ;
    	Terminal.ecrireStringln(" voici le resultat de comparaison de t1 = t2" + estegal(t1,t2));
    	Terminal.ecrireStringln(" voici le resultat de comparaison de t1 = t3" + estegal(t1,t3));
    	Terminal.ecrireStringln(" voici le resultat de comparaison de  "  + t1 + " et de " + t4 + estegal(t1,t4));
    }
    }
    Le compilateur m'indique 3 fois la meme erreur : c'est à dire

    C:\Documents and Settings\rohmer>javac "C:\Documents and Settings\rohmer\exo83.j
    ava"
    C:\Documents and Settings\rohmer\exo83.java:19: estegal(int[],int[],int[],int[])
    in exo83 cannot be applied to (int[],int[])
    Terminal.ecrireStringln(" voici le resultat de comparaison de t1 = t2" +
    estegal(t1,t2));

    ^
    C:\Documents and Settings\rohmer\exo83.java:20: estegal(int[],int[],int[],int[])
    in exo83 cannot be applied to (int[],int[])
    Terminal.ecrireStringln(" voici le resultat de comparaison de t1 = t3" +
    estegal(t1,t3));

    ^
    C:\Documents and Settings\rohmer\exo83.java:21: estegal(int[],int[],int[],int[])
    in exo83 cannot be applied to (int[],int[])
    Terminal.ecrireStringln(" voici le resultat de comparaison de " + t1 +
    " et de " + t4 + estegal(t1,t4));

    ^
    3 errors

    ??????

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Bah, tu définis une fonction qui demande 4 paramètres et ensuite tu essaies de l'appeler en lui donnant 2 paramètres seulement... ça ne risque pas de marcher.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut
    D'accord, il faut bien 4 parametres puisqu'il compare 4 tableaux; et lors de l'appel de methode il y a comparaison de 2 tableaux a la suite, donc comment l'écrire le code ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Je dirais que :
    - soit tu écris une méthode qui compare 2 tableaux, et tu l'appelles avec 2 paramètres
    - soit tu écris une méthode qui compare 4 tableaux, et tu l'appelles avec 4 paramètres

    (remarque : tu peux aussi définir à la fois une méthode estegal(int[],int[]) et une méthode estegal(int[],int[],int[],int[]) grâce à la surcharge)

    C'est toi qui sais quel traitement tu veux effectuer dans ton code. Si le but est de comparer les tableaux 2 à 2, pourquoi avoir défini une méthode prenant en paramètre 4 tableaux ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut
    Le programme compile maintenant, mais au lancement il m'indique :

    C:\Documents and Settings\rohmer>java exo83
    Exception in thread "main" java.lang.NullPointerException
    at exo83.estegal(exo83.java:6)
    at exo83.main(exo83.java:19)

    ??

  6. #6
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par stephcast Voir le message
    Le programme compile maintenant, mais au lancement il m'indique :

    C:\Documents and Settings\rohmer>java exo83
    Exception in thread "main" java.lang.NullPointerException
    at exo83.estegal(exo83.java:6)
    at exo83.main(exo83.java:19)

    ??
    Pouvons nous voir le code? tu essaies d'utilier une classe non encore instanciée.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 40
    Points : 19
    Points
    19
    Par défaut
    Voici le code :

    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
     
     
    class exo83 {
        static boolean estegal (int[] a1, int[] a2) {
         boolean res = false;
    	 int i = 0, a3[] = null, a4[] = null;
    	 if ( a1[i]==a2[i]){
    	 if ( (a1[i]!=a3[i]) || ( a1[i]!=a4[i])){
    	    res = true;}
    	  }else{ 
    	    res = false; 
    		}
    		return res;
    	 }
     
      public static void main (String [] args) {
    	int [] t1 = {4,5,6} ;
    	int [] t2 = {4,5,6} ;
    	int [] t3 = {4,5} ;
    	int [] t4 = {6,5,4} ;
    	Terminal.ecrireStringln(" voici le resultat de comparaison de t1 = t2" + estegal(t1,t2));
    	Terminal.ecrireStringln(" voici le resultat de comparaison de t1 = t3" + estegal(t1,t3));
    	Terminal.ecrireStringln(" voici le resultat de comparaison de  "  + t1 + " et de " + t4 + estegal(t1,t4));
    }
    }

  8. #8
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int i = 0, a3[] = null, a4[] = null;
    	 if ( a1[i]==a2[i]){
    	 if ( (a1[i]!=a3[i]) || ( a1[i]!=a4[i])){
    tu cree deux tableau a3 et a4 que tu initialise à null, et un peu loin tu fais a3[i] et a4[i]. Selon toi, que contient a3 et a4?
    a3 et a4 sont tous null, voila la source de l'erreur.

Discussions similaires

  1. probleme avec une methode static dans le body d'une jsp
    Par amadou.deme dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 19/02/2007, 08h47
  2. Compilation avec une lib partagée
    Par GLDavid dans le forum Linux
    Réponses: 3
    Dernier message: 26/07/2006, 15h13
  3. Réponses: 5
    Dernier message: 18/06/2006, 12h48
  4. [POO] Prob avec une méthode de classe
    Par Ludo75 dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2006, 22h37

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