begin process at 2010 02 09 21:34:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

classe matrice


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

classe matrice

samedi 19 janvier 2008 à 18:42:18 | classe matrice

pabreto

bonjour!

je dois écrire le matrice.c d'une classe de matrice à partir d'un matrice.h que l'on me donne et que je n'a pas le droit de modifier.
voici mes fichiers:

Matrice.h:

class Vecteur{

private:

unsigned int n;

double*p;

public:

Vecteur(int _n):n(_n),p(new double[_n])

{

for (int i=0; i<n;++i)

p[i]=0;

}

Vecteur(const Vecteur&);

Vecteur& operator=(const Vecteur&);

double& operator()(int i) {return p[i];}

double operator()(int i) const {return p[i];}

unsigned int size() const {return n;}

~Vecteur(){delete [] p;}

};

extern Vecteur operator+(const Vecteur&, const Vecteur&);

extern Vecteur operator-(const Vecteur&, const Vecteur&);

extern Vecteur operator*(double,const Vecteur&);

inline Vecteur operator*(const Vecteur& x, double alpha)

{return alpha*x;

}

 

class Matrice{

private:

unsigned int nx;

unsigned int ny;

double* p;

public:

Matrice(unsigned int _nx, unsigned int _ny);

Matrice( const Matrice& a);

Matrice& operator=(const Matrice&);

double& operator()(int i, int j) {return p[nx*i+j];}

double operator()(int i, int j) const {return nx;}

~Matrice();

};

extern Matrice operator+(const Matrice&,const Matrice&);

extern Matrice operator-(const Matrice&, const Matrice&);

extern Matrice operator*(double , const Matrice&);

inline Matrice operator*(const Matrice& A, double alpha)

{

return alpha*A;

}

extern Matrice operator*(const Matrice&, const Matrice&);

extern Vecteur operator*(const Matrice&, const Vecteur&);

et Matrice.cc:

#include "matrice.h"

#include <cmath>

#include <iostream>

 

//creation

Matrice::Matrice(unsigned int _nx,unsigned int _ny)

{

nx=_nx;

ny=_ny;

int dim = _nx * _ny;

p=new double[dim];

}

 

//remplissage

Matrice::Matrice(const Matrice& a)

{

nx=a.nx;

ny=a.ny;

int dim=nx*ny;

p=new double[dim];

for(int i=0;i<nx;i++)

for(int j=0;j<ny;j++)

p[nx*i+j]=a(i,j);

}

//effacage

Matrice::~Matrice(){delete p; nx=0;ny=0;}

//operateur de recopie

Matrice& Matrice::operator = (const Matrice& a)

{

delete[] p;

nx=a.nx;

ny=a.ny;

int dim=nx*ny;

p=new double[dim];

for(int i=0;i<nx;i++)

for(int j=0;j<ny;j++)

p[nx*i+j]=a(i,j);

return *this;

}

 

//somme

Matrice operator + (const Matrice& a, const Matrice& b)

{

unsigned int na,ma,nb,mb;

na=a.nb_lines();

ma=a.nb_columns();

nb=b.nb_lines();

mb=b.nb_columns();

Matrice somme(na,mb);

for(int i=0;i<na;i++)

for(int j=0;j<mb;j++)

{

somme(i,j)=a(i,j)+b(i,j);

}

return somme;

}

 

//difference

Matrice operator - (const Matrice& a, const Matrice& b)

{

unsigned int na,ma,nb,mb;

na=a.nb_lines();

ma=a.nb_columns();

nb=b.nb_lines();

mb=b.nb_columns();

Matrice difference(na,ma);

for(int i=0;i<na;i++)

for(int j=0;j<ma;j++)

{

difference(i,j)=a(i,j)-b(i,j);

}

return difference;

}

 

 

//produit matriciel

Matrice operator * (const Matrice& a, const Matrice& b)

{

unsigned int na,ma,nb,mb;

na=a.nb_lines();

ma=a.nb_columns();

nb=b.nb_lines();

mb=b.nb_columns();

Matrice produit(na,mb);

for(int i=0;i<na;i++)

for(int j=0;j<mb;j++)

{

for(int k=0;k<ma;k++)

produit(i,j)+=a(i,k)*b(k,j);

}

return produit;

}

//produit par un scalaire

Matrice operator * (double r,const Matrice& a)

{

unsigned int na,ma;

na=a.nb_lines();

ma=a.nb_columns();

Matrice produit(na,ma);

for(int i=0;i<na;i++)

for(int j=0;j<ma;j++)

{

produit(i,j)=r*a(i,j);

}

return produit;

}

 

//produit matrice/vecteur

Vecteur operator * (const Matrice& a, const Vecteur& v)

{

unsigned int na,ma;

na=a.nb_lines();

ma=a.nb_columns();

Vecteur produit(ma);

for(int i=0;i<na;i++)

for(int k=0;k<ma;k++)

{

produit(i)+=a(i,k)*v(k);

}

return produit;

}

mais j'ai un problème à la compilation, il me dit que dans toutes mes surdéfinitions d'opérateurs, " 'const class Matrice' has no member named 'nb_lines' " et la même chose pour le nombre de collonnes.


Quelqu'un peut-il m'aider?


Merci!

PA
samedi 19 janvier 2008 à 19:08:17 | Re : classe matrice

luhtor

Elle existe pas la fonction nb_lines, donc pourquoi tu l'appelles ?
samedi 19 janvier 2008 à 20:16:02 | Re : classe matrice

nickydaquick

Membre Club
Salut,
Elle existe vraiment pas ta fonction mon cher
la premiere fois qu'on l'a voit c dans le fichier Matrice.cc a l'implementation de la fonction

Matrice operator + (const Matrice& a, const Matrice& b)

je suis heureux de faire partie d'une grande famille ...!
samedi 19 janvier 2008 à 20:30:29 | Re : classe matrice

pabreto

merci!
ça marche maintenant (forcément, sans la définir, c'était +dur)


PA
samedi 12 avril 2008 à 19:36:31 | Re : classe matrice

maymouna2008

cvous pouvez me donner u_ne solution a ce probleme
constructeur d une matrice declare avec un tableau dynamique pointés sur des rééls?
et merci

amouna


Cette discussion est classée dans : int, const, nb, matrice, operator


Répondre à ce message

Sujets en rapport avec ce message

Créer un classe de matrice [ par kazeton ] Bonjour à tous,Je débute en c++ et je voudrais réaliser un classe de matrice.On m'a donné le .h et on m'a demandé de réaliser un .cc afin de définir t surcharges des operators [ par leroiloup ] salut a tout j'ais un probleme d'implementer les deux operator (operator+, operator*) et comment l'etuliser dans main() #include #include using names VC++ 6 /recompilé sur VC++ 2005 [ par lui88 ] Bonjour , j'essai de recompilé mon programme sur VC++ 2005 , mais plein d'erreur s'affiche :s. j'en est reglé une grande partie mais là je n'y arrive delete matrice c++ [ par olfamzoughi ] bonjour Je suis débutante en c/c++. j essaye de supprimer une matrice de taille 2*Nb_pt par le code suivant: //////////////////////////////////////// class matrice [ par flaky ] Slt à tousJ'utilise une classe "matrice" (celle de nicolas aunai, téléchargée sur le site) qui fonctionne très bien. Mais j'ai du mal à manipuler l'ob Multiplication d'une matrice par un scalaire [ par skrime ] Bonjour, j'ai un exercice à faire qui consiste à multiplier une matrice par un scalaire en C (la prof ne veut pas qu'on se serve des boucles FOR), je jeu le serpent [ par Horfee ] bon je suis tout nouveau en C et j'ai un petit probleme :j'ai codé le jeu du serpent, assez rapidement mais j'ai un probleme : dès que j'appuie sur un ArrayList (C#) vers int ** [ par typhoonx ] Bonjour, je voudrai réaliser une conversion d'un ArrayList contenant un ArrayList pour chaque case du premier ArrayList en int ** dans le but d'appele Prob de modulo ou de code ? [ par NeoZ ] Salut, je voudrais stocker un nombre dans un tableau, ou tout du moins, stocker chaque chiffre dans une variable, et j'ai fait ce bout de code, mais i Fonction qui retourne un tableau [ par Kurul1 ] Bonjour à tous   J'ai une classe contenant un tableau a deux dimensions comme variable private  Ce que je voudrais c'est une fonction ayant pour param


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales