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 :

affichage matrice et valeur réelles


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Points : 53
    Points
    53
    Par défaut affichage matrice et valeur réelles
    Bonjour,

    Bon le titre n'est pas très évocateur et j'en suis désolé...
    En fait, j'ai un problème quelque peu étrange (du vrai X-Files ).
    J'ai une matrice qui contient des lettres (p, m, M, D, d ...)or l'affichage ne correspond pas toujours aux valeurs dans le tableau. Je met une capture d'écran pour être plus clair .

    Sur cette capture, on peut voir qu'aux coordonées {1,9}, la lettre est un "m" et dans la partie des variables, la lettre est "P" .
    Je mets également le code de remplissage et d'affichage de la matrice:
    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
     
    /**
             * Cette méthode initialise la matrice en numérotant lignes et colonnes et en remplissant chaque cellule par un "."
             */
    	private void initialiserMatrice(){
    		matrice[0][0] = " ";
    		for (int i=1; i<largeur; i++){
    			matrice[i][0] = Integer.toString(i);
    			for (int j=1; j<longueur; j++){
    				matrice[0][j] = Integer.toString(j);
    				matrice[i][j] = ".";
    			}
    		}
     
    	}
    remplissage:
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    private void peuplementVille(){
    		/*
    		 * Boucle for permettant d'instancier tous les Citoyens dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i=0; i<nbCitoyens;i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerCitoyen(posLongueur, posLargeur, "P");
    			matrice[posLargeur][posLongueur] = "P";
    		}
    		/*
    		 * Boucle for permettant d'instancier tous les Citoyens malades dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i=0; i<nbMalades-nbMaladesDiff;i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerMalade(posLongueur, posLargeur, "m");
    			matrice[posLargeur][posLongueur] = "m";
    		}
    		/*
    		 * Boucle for permettant d'instancier tous les Citoyens malades difficiles dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i=0;i<nbMaladesDiff;i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerMalade(posLongueur, posLargeur, "M");
    			matrice[posLargeur][posLongueur] = "M";
    		}
    		/*
    		 * Boucle for permettant d'instancier tous les médecins dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i =0; i<nbMedecins; i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerMedecin(posLongueur, posLargeur, "D", stockVMedecins);
    			matrice[posLargeur][posLongueur] = "D";
    		}
     
    		/*
    		 * Boucle for permettant d'instancier tous les hopitaux dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i=0; i<nbHopitaux;i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerHopital(posLongueur, posLargeur, "H");
    			matrice[posLargeur][posLongueur] = "H";
    		}
     
    		/*
    		 * Boucle for permettant d'instancier toutes les cliniques dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i=0;i<nbCliniques;i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerClinique(posLongueur, posLargeur, "C", stockVCliniques);
    			matrice[posLargeur][posLongueur] = "C";
    		}
     
    		/*
    		 * Boucle for permettant d'instancier tous les centres de vaccination dont le nombre est passé en paramètre
    		 * 
    		 * La boucle "do...while" génère les positions dans la matrice tant que la position n'est pas libre 
    		 */
    		for (int i=0;i<nbCentreVac;i++){
    			int posLongueur, posLargeur;
    			do {
    				posLongueur = genererPosition(longueur);
    				posLargeur = genererPosition(largeur);
    			}
    			while (!matrice[posLargeur][posLongueur].equals("."));
    			ElementVille.creerCentreVacc(posLongueur, posLargeur, "V", stockVCentreVacc);
    			matrice[posLargeur][posLongueur] = "V";
    		}
    	}
    et affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void afficheVille(){
    		for (int i=0;i<largeur;i++){
    			for (int j=0;j<longueur;j++){
    				System.out.print(matrice[i][j]+"\t");
    			}
    			System.out.println("\n");
    		}
    	}
    Désolé pour la longueur du post
    Si quelqu'un a une idée ...
    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
    Je soupçonnerais que la valeur change après l'affichage du tableau.

    Si ce n'est pas censé arriver (genre le tableau est rempli une seule fois et ne doit plus changer ensuite,) je soupçonnerais que ça arrive quand même. Bien que là comme ça, je vois pas comment.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    Merci de la réponse.
    Malheureusement, j'avais également pensé à cela mais je commence par un appel au constructeur qui lui appelle initialiseMatrice puis peuplementVille puis afficheVille.

    Je ne modifie la matrice que dans peuplementVille où chaque "lettre" est créée

  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
    Oui, ça c'est le principe, mais il ne peut pas s'être glissé quelque chose accidentellement ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    ben voilà je confirme je suis un vrai

    A force de tester mon applic j'avais pas vu que c'était à un autre moment que le problème apparaissait. Donc modification de la matrice mais pas de nouvel affichage !!!!!


    Mon applic fonctionne donc sans problème.
    Désolé de vous avoir imposer cette lecture

    Et merci pour les réponse on ne peut plus logiques!!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/10/2009, 09h48
  2. forcer l'affichage d'une valeur null
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 09h52
  3. Valeur réelle
    Par Safaritn dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 29/09/2005, 08h36
  4. [JDBC] Affichage d'une valeur de type CloB
    Par Jihed Amine Maaref dans le forum JDBC
    Réponses: 3
    Dernier message: 07/04/2005, 15h03
  5. Réponses: 13
    Dernier message: 24/02/2005, 16h45

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