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 :

2ème matrice qui ne s'affiche pas


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut 2ème matrice qui ne s'affiche pas
    bonjour
    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
     
    public class MatrixMultiply 
    {
     public static void main(String[]args)
     {
    	 int array[][]={{5,6,7},{4,8,9}};
    	 int array1[][]={{6,4},{5,7},{1,1}};
    	 int array2[][]=new int[3][3];
    	 int x=array.length;
    	 System.out.println("Matrix 1:");
    	 for(int i=0;i<x;i++)
    	 {
    		 for(int j=0;j<=x;j++)
    		 {
    			 System.out.print(""+array[i][j]);
    		 }
    		 System.out.println();
    	 }
    	 int y=array1.length;
    	 System.out.print("Matrix 2:");
    	 for(int i=0;i<y;i++)
    	 {
    		 for(int j=0;j<=y-1;j++)
    		 {
    			 System.out.print(""+array2[i][j]); 
    		 }
    		 System.out.println();
     }
     for(int i=0;i<x;i++)
     {
    	 for(int j=0;j<y-1;j++)
    	 {
    		 for(int k=0;k<y;k++)
    		 {
    			 array2[i][j]+=array[i][k]*array1[k][j];
    		 }
    	 }
     }
     System.out.println("Multiply of both matrix:");
     for(int i=0;i<x;i++)
     {
    	 for(int j=0;j<y-1;j++)
    	 {
    		 System.out.print(""+array2[i][j]); 
    	 }
    	 System.out.println();
     }
     }}
    resultat de ce programm est suivante:
    Matrix 1:
    567
    489
    Matrix 2:000
    000
    000

    Multiply of both matrix:
    6769
    7381
    vous voyez la deuxième matrice s'affiche pas
    aidez moi pourquoi s'affiche pas?

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    C'est une blague?

    Il faut que tu lises un peu le code que tu veux utiliser,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.print(""+array2[i][j]);
    sa affiche le tableau qui contiendra ton résultat alors que tu veux afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.print(""+array1[i][j]);
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    en corrigeant ainsi que j'avais déjà fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     System.out.print("Matrix 2:");
    	 for(int i=0;i<y;i++)
    	 {
    		 for(int j=0;j<=y-1;j++)
    		 {
    			 System.out.print(""+array1[i][j]); 
    		 }
    		 System.out.println();
     }
    j'ai résultat suivant
    Matrix 1:
    567
    489
    Matrix 2:64Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at MatrixMultiply.main(MatrixMultiply.java:25)

    la ligne 25 est:
    System.out.print(""+array1[i][j]);

  4. #4
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Oui sa c'est autre chose, mais tu es dans la logique alors c'est que ton indice qui parcourt le tableau n'est pas bien fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     for(int j=0;j<=y-1;j++)
    		 {
    			 System.out.print(""+array2[i][j]); 
    		 }
    		 System.out.println();
    1/ y est initialiser à 3 taille du tableau.
    2/ Tu faisyY-1 donc 2
    3/ donc ta boucle fais 0 1 et 2 alors que tes lignes sont de taille 2 donc il faut faire j<=1 ou <2
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     System.out.print("Matrix 2:");
    	 for(int i=0;i<y;i++)
    	 {
    		 //for(int j=1;j<=y-1;j++)
    		  for(int j=0;j<=y-1;j++)
    		 {
    			 System.out.print(""+array2[i][j]); 
    		 }
    		 System.out.println();
     }
    toujours même résultat:
    Matrix 1:
    567
    489
    Matrix 2:000
    000
    000

    Multiply of both matrix:
    6769
    7381

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    j'ai essayé comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    System.out.print("Matrix 2:");
    	 for(int i=0;i<y;i++)
    	 {
    		 //for(int j=1;j<=y-1;j++)
    		  for(int j=0;j<=y;j++)
    		 {
    			 //System.out.print(""+array2[i][j]); 
    			 System.out.print(""+array2[i][j]); 
    		 }
    		 System.out.println();
     }
    j'ai erreur suivante:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at MatrixMultiply.main(MatrixMultiply.java:27)
    Matrix 1:
    567
    489
    Matrix 2:000

  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 domxaline Voir le message
    toujours même résultat:
    Citation Envoyé par domxaline Voir le message
    j'ai erreur suivante:
    Lisez les commentaires que l'on vous donne s'il vous plait. On vous dit que vous allez trop loin dans le tableau, mais vous ocntinuez à aller toujours aussi loin. On vous dit que vous affichez le mauvais tableau (array2) mais vous continuez à essayer de l'afficher.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    ok,j'ai corrigé,prg marche merci beaucoup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for(int i=0;i<y;i++) 
    	 {
    		  for(int j=0;j<=1;j++)
    		 {
    			 System.out.print(""+array1[i][j]); 
    		 }
    		 System.out.println();
     }

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

Discussions similaires

  1. [HTML]Image qui ne s'affiche pas sous firefox...
    Par OrangeBud dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/10/2004, 13h42
  2. pages qui ne s'affichent pas
    Par luck dans le forum ASP
    Réponses: 4
    Dernier message: 19/07/2004, 11h35
  3. [Applet] BorderLayout qui ne s'affiche pas
    Par Invité(e) dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 29/04/2004, 11h39
  4. [debutant][Tomcat]Images qui ne s'affichent pas
    Par omega dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/04/2004, 09h44
  5. [MFC] Ces fenêtres qui ne s'affichent pas..
    Par Davide dans le forum MFC
    Réponses: 3
    Dernier message: 19/11/2003, 11h30

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