Classe matrice

Soyez le premier à donner votre avis sur cette source.

Vue 25 903 fois - Téléchargée 3 522 fois

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 / Exemple :


//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);
      
};

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
16 janvier 2010

bonjour
stp j veux compiler ton programmme sous dev.c++ j ss une débutante en programtion et je trouve tjrs des erreurs les compilateur ne connais ni la bilbliotheque matrice ni erreur pour lui ils ne son pa définit s.v.p
aider moi et merci d'avance
Messages postés
1
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
13 janvier 2008

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!
Messages postés
1
Date d'inscription
jeudi 17 août 2006
Statut
Membre
Dernière intervention
21 août 2006

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.
Messages postés
1
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
3 février 2006

Merci à toi pour cette aide précieuse ;-)
Messages postés
5
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
12 février 2006

Merci, c'est smpa de partager ton travail.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.