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

Java Discussion :

Problème avec remplissage d'une matrice


Sujet :

Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    win dev
    Inscrit en
    Avril 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : win dev
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Problème avec remplissage d'une matrice
    j'ai un petit problème avec une fonction de remplissage d'une matrice
    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
    public class remplir_matrice{
    	public
    	int matrice[][];
    	int insertion=3;
    	int deletion=3;
    	int identique=3;
    	int non_identique=3;
    int remplir_matrice(String seq1,String seq2){
    		int resultat=0;
    		int ident;
    		int a;
    		int b;
    		int ligne=seq1.length();
    		int colonne=seq2.length();
    		matrice[0][0]=0;
    	..................
    aprés l'execution, le programme signale une erreur exactement à la dernière ligne:matrice[0][0]=0
    j'ai utilisé d'autre maniéres de déclaration de la matrice mais le meme probléme
    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    La déclaration est très bien. Il faudrait peut-être juste songer à l'initialiser.

    Genre new matrice[nombreLignes][nombreColonnes];
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Points : 138
    Points
    138
    Par défaut
    Il te manque une initialisation de ta matrice puisque dans ton code t'essaie d'affecter la valeur 0 à un endroit nul de la matrice et donc à forcément t'auras un nullPointerException comme exception.
    Essaie d'initialiser ta matrice en précisant les tailles effectives que tu veux les attribuer à ton objet matrice.
    Cordialement,
    HEL
    __________________
    Tout d'abord le faire fonctionner , Ensuite qu'il soit rapide. Enfin le rendre agréable à utiliser.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par dev_2007 Voir le message
    dans ton code t'essaie d'affecter la valeur 0 à un endroit nul de la matrice et donc à forcément t'auras un nullPointerException comme exception.
    Non, dans ce code il n'y a pas "d'endroit nul de la matrice." C'est la matrice elle-même qui n'existe pas parce qu'elle n'a pas été initialisée, et donc on ne peut pas s'en servir. Ça ne fait pas de NullPointerException, en fait ça ne compile même pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    win dev
    Inscrit en
    Avril 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : win dev
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Non, dans ce code il n'y a pas "d'endroit nul de la matrice." C'est la matrice elle-même qui n'existe pas parce qu'elle n'a pas été initialisée, et donc on ne peut pas s'en servir. Ça ne fait pas de NullPointerException, en fait ça ne compile même pas.
    pourquoi n'a pas été initialisée????
    vois bien le code j'ai ecrit
    int matrice[][];

  6. #6
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Non, dans ce code il n'y a pas "d'endroit nul de la matrice." C'est la matrice elle-même qui n'existe pas parce qu'elle n'a pas été initialisée, et donc on ne peut pas s'en servir. Ça ne fait pas de NullPointerException, en fait ça ne compile même pas.
    C'est une variable de classe donc le compilateur doit pas poser probleme. Par contre, à l'utilisation...

    Pour repondre au probleme, il faut declarer :
    int matrice[][] = new int[X][Y];

    Le compilateur ne pouvant pas deviner la taille du tableau que tu cherches à allouer...

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zimamouche1 Voir le message
    pourquoi n'a pas été initialisée????
    vois bien le code j'ai ecrit
    int matrice[][];
    Parce que ça, c'est une déclaration, pas une initialisation. Une initialisation passe toujours par le symbole égal ( = ) quelque part

  8. #8
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Effectivement, il te manque une allocation de mémoire en utilisant le mot clé new, ca doit donner un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matrice = new [nb_ligne] [nb_colonne];
    Mais il faudrait connaitre la taille de la matrice au préalable (nb_ligne, nb_colonne), sinon, si tu ne connait pas la taille de la matrice au préalable, tu peut utilisé un tableau de tableau dynamique, du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ArrayList <ArrayList <Integer>> matrice = new ArrayList <ArrayList <Integer>> ();
    Donc produire des tableau de type ArrayList <Integer>, et les mettre dans la tableau avec la méthode add de la classe ArrayList.
    get permet de récupéré un élément a l'indice i.

Discussions similaires

  1. Problème de performance avec remplissages d'une StringGrid ?
    Par Night_Wolf1619 dans le forum Débuter
    Réponses: 17
    Dernier message: 06/05/2013, 16h09
  2. FAQ : problème avec création d'une requete en VBA
    Par Oluha dans le forum VBA Access
    Réponses: 14
    Dernier message: 14/02/2006, 12h05
  3. Problème avec RegEx et une Query string
    Par Erakis dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 15h48
  4. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

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