begin process at 2008 07 20 12:33:48
1 213 223 membres
140 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE MATRICE


Information sur la source

Catégorie :Maths & Algorithmes Niveau : Débutant Date de création : 30/01/2004 Vu / téléchargé: 12 213 / 2 517

Note :
7,17 / 10 - par 6 personnes
7,17 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

une petite classe qui regroupe toutes les principales opérations sur les matrices, notamment les opérateurs : +, +=, -, -=, *, *=, /, /=, ainsi que des fonction comme pour calculer le determinant, la trace, la comatrice, l'inverse, la dimension, le nombre de colones/lignes ....

gestion des erreurs avec les exceptions...

contenu du .zip :

matrice.cpp
matrice.h
erreur.cpp
erreur.h
main.cpp
makefile

Source

  • //voici la classe Matrice :
  • class Matrice
  • {
  • private:
  • typedef double *ligne;
  • ligne *lignes;
  • unsigned int n; // Nombre de lignes (1er paramètre)
  • unsigned int m; // Nombre de colonnes (2ème paramètre)
  • void echange(double &a, double &b) const;
  • Matrice supligne(const Matrice &mat, unsigned int lig, unsigned int col) const;
  • double det(const Matrice &mat) const;
  • float expo(unsigned int n) const;
  • public:
  • //les constructeurs/destructeur
  • Matrice();
  • Matrice(unsigned int nl, unsigned int nc);
  • Matrice(unsigned int nl, unsigned int nc, double valeur);
  • Matrice(const Matrice &source);
  • ~Matrice(void);
  • //les operateurs
  • Matrice &operator=(const Matrice &mat);
  • double &operator()(unsigned int i, unsigned int j);
  • Matrice operator+(const Matrice &mat) const;
  • Matrice operator-(const Matrice &mat) const;
  • Matrice operator*(const Matrice &mat) const;
  • Matrice operator*(const double nb) const;
  • friend Matrice operator*(const double nb,const Matrice &mat);
  • Matrice & operator*=(const Matrice &mat);
  • Matrice & operator*=(const double nb);
  • Matrice & operator+=(const Matrice &mat);
  • Matrice & operator-=(const Matrice &mat);
  • Matrice & operator/=(const double);
  • Matrice operator/(const double) const;
  • //accesseur et manipulations
  • Matrice t();
  • double trace() const;
  • double det() const;
  • Matrice co() const;
  • Matrice inverse() const;
  • int dim() const;
  • unsigned int nb_colones() const;
  • unsigned int nb_lignes() const;
  • friend ostream & operator<<(ostream &os,const Matrice &mat);
  • };
//voici la classe Matrice : 

class Matrice
{
   private:
      typedef double *ligne;
      ligne *lignes;
      unsigned int n; // Nombre de lignes (1er paramètre)
      unsigned int m; // Nombre de colonnes (2ème paramètre)
      void echange(double &a, double &b) const;
      Matrice supligne(const Matrice &mat, unsigned int lig, unsigned int col) const;
      double det(const Matrice &mat) const;
      float expo(unsigned int n) const;
   
   public:
      //les constructeurs/destructeur
      Matrice();
      Matrice(unsigned int nl, unsigned int nc);
      Matrice(unsigned int nl, unsigned int nc, double valeur);
      Matrice(const Matrice &source);
      ~Matrice(void);
      //les operateurs
      Matrice &operator=(const Matrice &mat);
      double &operator()(unsigned int i, unsigned int j);
      Matrice operator+(const Matrice &mat) const;
      Matrice operator-(const Matrice &mat) const;
      Matrice operator*(const Matrice &mat) const;
      Matrice operator*(const double nb) const;
      friend Matrice operator*(const double nb,const Matrice &mat);
      Matrice & operator*=(const Matrice &mat);
      Matrice & operator*=(const double nb);
      Matrice & operator+=(const Matrice &mat);
      Matrice & operator-=(const Matrice &mat);
      Matrice & operator/=(const double);
      Matrice  operator/(const double) const;
      //accesseur et manipulations
      Matrice t();
      double trace() const;
      double det() const;
      Matrice co() const;
      Matrice inverse() const;
      int dim() const;
      unsigned int nb_colones() const;
      unsigned int nb_lignes() const;
      friend ostream & operator<<(ostream &os,const Matrice &mat);
      
};
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de PiX3L le 31/01/2004 11:06:18

    Tu aurais pu proposer faire un programme concret avec cette classe pour nous montrer...

  • signaler à un administrateur
    Commentaire de Cyber_steph le 30/07/2004 10:55:23

    bonjour,

    ta classe est très interessante.

    Mais je n'arrive pas à la compiler avec visual.

    Je ne sait pas bien me servir des exceptions en C++ et aparrament l'erreur vient de la.

    (19): error C2039: 'exp' : n'est pas membre de 'Erreur'

    entre autre ;)

    Mais c surement moi qui l'utilise mal ;)

  • signaler à un administrateur
    Commentaire de sdryk le 22/06/2005 09:56:07

    Merci, c'est smpa de partager ton travail.

  • signaler à un administrateur
    Commentaire de neo2486 le 03/02/2006 16:11:12

    Merci à toi pour cette aide précieuse ;-)

  • signaler à un administrateur
    Commentaire de ArgusAzure le 21/08/2006 18:11:32

    pas mal! suis arrivé à faire ma pseudo inverse avec ton source :)
    J'ai juste du modifier l'attribut "string ext" en "char * ext" de la classe erreur.
    Et transforme "Matrice t();"  en "Matrice t() const;"  car je me suis fait avoir en croyant que la transposition était appliqué à l'objet.

  • signaler à un administrateur
    Commentaire de koko028 le 13/01/2008 14:46:33 9/10

    C'est vraiment pas mal, merci beaucoup à toi d'avoir partager ce travail!

    Cependant il faut faire attention (ceux qui reprendraient ton code également), le code pour l'inversion de matrice ne prend pas en compte le cas où la matrice est de déterminant nul... ca engendre une division par '0' et donc une erreur pas gentille! (le compilateur n'est pas Chuck Norris tristement ^^). Il suffit juste de tester ce cas pour palier au problème je pense.

    En tout cas merci beaucoup!

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS