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 :

Gestion de Matrice


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 55
    Par défaut Gestion de Matrice
    Bonjour,
    je voudrais créer un type(class) qui s'occupe de gerer des matrices à partir d'un nombre de lignes et de colonnes fourni(qui sont les deux attributs).
    j'ai imaginé presque tous les scénarios que je peux pour faire le constructeur mais aucune idée.
    Pouvez-vous m'apporter quelques indices. Voici un extrait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Matrice {
        private int lignes;
        private int colonnes;
    }

  2. #2
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Amis d'APL bonjour!
    Ce qui est important c'est ce que cette matrice contient: des ints? des doubles? des objets?
    Le nombre de lignes et de colonnes te servira juste à créer un tableau à deux dimensions (et pourquoi pas plus? les matrices à N dimensions c'est rigolo!)

  3. #3
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 55
    Par défaut
    Non simplement une matrice de nombres entiers.
    Et le constructeur aucune idée j'ai même rajouté un attribut de type tableau[][] ça marche pour la création et l'affichage mais pour des méthodes comme additionner deux matrices et retourner une nouvelle matrice je vois que l'idée de l'attribut tableau [][] est une mauvaise idée

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par cirediallo93 Voir le message
    Non simplement une matrice de nombres entiers.
    Et le constructeur aucune idée j'ai même rajouté un attribut de type tableau[][] ça marche pour la création et l'affichage mais pour des méthodes comme additionner deux matrices et retourner une nouvelle matrice je vois que l'idée de l'attribut tableau [][] est une mauvaise idée
    pas du tout pourquoi?
    lqu'est ce qui t'empêche de définir
    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
     
    public classe Matrice {
      private int[][] données;
     
     Matrice addition(Matrice autre) {
      // tu crée une matrice résultat (si tout est ok)
      // tu remplis les données
      // et tu livres
     }
     // etc. etc.
     
     int[][] contenu() {
      return données.clone() ;
     ]
    }

  5. #5
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 55
    Par défaut
    @professeur shadoko en fait c'est le constructeur de l'objet qui me pose problème dès que je sais comment écrire le constructeur le reste sera un peu moins difficile. Toujours en revenant sur l'exemple de l'addition je dois savoir dès le debut si les 2 matrices sont de même taille pour effectuer l'addition si tel n'est pas le cas je ne fais pas l'addition et je dois savoir cela à travers les attributs lignes et colonnes

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par cirediallo93 Voir le message
    @professeur shadoko en fait c'est le constructeur de l'objet qui me pose problème dès que je sais comment écrire le constructeur le reste sera un peu moins difficile.
    Ce travail te pose problème parce que tu n'arrives pas à voir qu'il n'y a aucun travail à faire.

    Une matrice, c'est un tableau de int à deux dimensions, et absolument rien de plus que ça.
    Ce que tu cherches à faire, c'est un constructeur de cette matrice. C'est à dire, le constructeur d'un objet qui n'est absolument rien d'autre qu'un tableau de int à deux dimensions.

    Donc, ton constructeur :
    - doit prendre en paramètre un tableau de int à deux dimension. Et aucun autre paramètre.
    - doit stocker ce tableau dans une variable private int[][]. Et ne rien faire d'autre. La matrice est désormais entièrement construite, il ne lui manque plus rien pour être une matrice.

    Le nombre de lignes et de colonnes se déduit immédiatement de ta variable private int[][]. Il n'y a aucun besoin d'en faire des variables. Tu peux en faire des méthodes getNbLignes() et getNbColonnes() si ça te rassure.

    A la rigueur, tu peux ajouter les contrôles de programmation défensive suivants :
    - S'assurer que les tableaux passés dans le constructeur ont tous la même taille et que cette taille n'est pas zéro, sinon déclencher un IllegalArgumentException.
    - Faire une copie du tableau avec clone() et ne stocker que cette copie en interne, pour être sûr que ce sont bien des données privées qui ne peuvent pas être modifiées.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 111
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    Amis d'APL bonjour!
    Ce qui est important c'est ce que cette matrice contient: des ints? des doubles? des objets?
    Le nombre de lignes et de colonnes te servira juste à créer un tableau à deux dimensions (et pourquoi pas plus? les matrices à N dimensions c'est rigolo!)
    C'est rigolo (moins à manier à la main), mais ça ne s'appelle plus des matrices mais des tenseurs.

Discussions similaires

  1. gestion de matrice d'objet
    Par DrDam dans le forum C++
    Réponses: 2
    Dernier message: 02/06/2008, 19h15
  2. Gestion de matrices
    Par krikri1504 dans le forum Débuter
    Réponses: 16
    Dernier message: 19/05/2008, 19h56
  3. A propos du tutoriel sur la gestion des matrices
    Par Pierre845 dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/04/2008, 13h32
  4. Gestion de matrice
    Par bzd dans le forum C
    Réponses: 4
    Dernier message: 12/08/2002, 18h19

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