begin process at 2012 02 11 02:08:10
  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: //////////////////////////////////////// operator[] [ par lovo ] Salut, je créer une classe matrice en ce moment avec comme data member un double**. Je n'arrive pas a faire l'opérateur d'acces à ma matrice [code=cp 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,248 sec (4)

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