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

Langage Java Discussion :

[débutant] opérations sur matrices


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut [débutant] opérations sur matrices
    Bonjour,
    Je suis débutant sous java, je voulais faire un pgmme qui réalise des opération élementaires sur des matrices carrées : somme, produit par un nombre, affichage.
    J'ai fais ce bout de code mais ca ne donne pas le résultat souhaité, je suis sur qu'il est bourré d'erreurs, j'attends vos réctifs, merci.

    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
    public class Matrice{
     
    private int[][] mat1;
     
    public void Matrice(int[][] mat1){
     this.mat1 = mat1;
    }
     
    private static int [][] multiplie(int m[ ][ ],int nombre)
    {
    int temp [][] = new int[m.length][m.length];
     for(int i=0; i < m.length; i++){
     for(int j=0; j < m.length; j++)
     temp [i][j] = nombre * m[i][j];
    }
     return temp ;
     }
     
    public static int [] [] somme(int m1[] [],int m2[] []){
    int mat1[] [] = new int[2][2];
    	for(int i=0;i<2;i++)
    	for(int j=0;j<2;j++)
    	{
    	mat1[i][j]=m1[i][j]+m2[i][j];
    	}
    return mat1;
    }
     
    public static void afficher( int[][] t){ 
    for (int i = 0 ; i < t.length ; i = i + 1 ) 
    for (int j = 0 ; j < t.length ; j++ ) 
    System.out.println(t[i][j]) ;
        }
    }

  2. #2
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    mais ca ne donne pas le résultat souhaité
    Ca veut dire quoi?

    A+

  3. #3
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    Citation Envoyé par bendamen
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static void afficher( int[][] t){ 
    for (int i = 0 ; i < t.length ; i = i + 1 ) 
    for (int j = 0 ; j < t.length ; j++ ) 
    System.out.println(t[i][j]) ;
        }
    }
    j'aurais plutot fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public static void afficher( int[][] t){ 
      for (int i = 0 ; i < t.length ; i = i + 1 ) 
        for (int j = 0 ; j < t.length ; j++ ){ 
          System.out.print(t[i][j] + " ") ;
        }
        System.out.println("");
      }
    }
    Sinon le reste parrait pas trop mauvais, mise a part que tu pourrais les matrices qui ne sont pas carré

  4. #4
    Invité de passage
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1
    Par défaut
    public void Matrice(int[][] mat1){
    this.mat1 = mat1;
    }

    Hum, tu vois la nuance entre types primitifs et objets ??

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut
    Avec en test avec la méthode main , ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static void main(String [] args){
    int mat1[] [] = {{3,4},{5,6}};
     
    int mat2[] [] = {{7,7},{7,7}};
    afficher(mat1);
    multiplie(mat1,3);
    afficher(mat1);
    System.out.println(somme(mat1,mat2));
    System.out.println(produit(mat1,mat2));
    }
    }
    J'ai un résultat de la sorte :
    3
    4
    5
    6
    3
    4
    5
    6
    [[I@10b62c9
    [[I@82ba41

    !!!!

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    le resultat est tout à fait cohérent avec ton code

    essaie le test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static void main(String [] args){
    int mat1[] [] = {{3,4},{5,6}};   
    int mat2[] [] = {{7,7},{7,7}}; 
    afficher(mat1); 
    afficher(multiplie(mat1,3)); 
    afficher(somme(mat1,mat2)); 
    afficher(produit(mat1,mat2)); 
    }

  7. #7
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Effectivement, ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [[I@10b62c9
    [[I@82ba41
    C'est bien l'affichage classique de 2 tableaux d'entiers à 2 dimensions.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Par défaut
    Merci LittleBean,
    Y aurait il moyen d'afficher une matrice comme elle est habituellement présentée en math :
    (0 1)
    (2 3)
    au lieu d'afficher ligne par ligne chaque valeur des élements.

  9. #9
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void afficher( int[][] t){ 
      for (int i = 0 ; i < t.length ; i = i + 1 ) 
        System.out.print("( ");
        for (int j = 0 ; j < t.length ; j++ ){ 
          System.out.print(t[i][j] + " ") ;
        }
        System.out.println(")");
      }
    }
    Ou quelque chose du genre je pense...

    A+

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

Discussions similaires

  1. Débutant - Opérations sur des fichiers
    Par Pgs dans le forum Windows
    Réponses: 4
    Dernier message: 23/08/2010, 09h23
  2. opération sur matrice
    Par shirya dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 02/03/2008, 17h27
  3. [Débutant] Fonction sur matrices
    Par scraven dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/04/2007, 10h03
  4. [débutant] Opération sur un fichier XML
    Par espadon1 dans le forum Modules
    Réponses: 5
    Dernier message: 31/05/2006, 12h38

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