⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrice.cpp

📁 Algorithme de multiplication de matrices traditionnel
💻 CPP
字号:
////////////////////////////////////////////////////////////////////////////////
///
/// @file matrice.cpp
///
/// @author Marwan et Mehdi
///
////////////////////////////////////////////////////////////////////////////////#include <fstream>#include <iostream>#include "matrice.h"using namespace std;////////////////////////////////////////////////////////////////////////////////
/// 
/// Constructeur de la matrice
///
/// @param[in] Size La taille de la matrice a creer
///
////////////////////////////////////////////////////////////////////////////////matrice::matrice( unsigned int Size ):size(Size){  // allocation espace non contigue  allocate(size);}////////////////////////////////////////////////////////////////////////////////
/// 
/// Constructeur copie de la matrice
///
/// @param[in] C La matrice qui doit etre copiee
///
////////////////////////////////////////////////////////////////////////////////matrice::matrice( const matrice &C ):size(C.size){  allocate(size);  for( unsigned int i=0; i<size; ++i )    for( unsigned int j=0; j<size; ++j )  	mat[i][j]=C.mat[i][j];}////////////////////////////////////////////////////////////////////////////////
/// 
/// Destructeur de la matrice
///
////////////////////////////////////////////////////////////////////////////////matrice::~matrice( void ){  if( size == 0 )    return;  for( unsigned int i=0; i<size; ++i )    delete []mat[i];  delete []mat;}////////////////////////////////////////////////////////////////////////////////
///
/// M閠hode qui permet de charger une matrice a partir d'un fichier
///
/// @param[in] filename Le nom du fichier a lire.
///
////////////////////////////////////////////////////////////////////////////////matrice::matrice( string filename ):size(0){  // Chargement du fichier  ifstream in( filename.c_str() );  if( in.fail() )  {    cerr << "Fichier inconnu: " << filename << endl;    in.close();    return;  }  // Lecture de la taille  string num;  in >> num;  size = strtoul(num.c_str(), NULL, 10);  size = 1 << size;  // Allocation de l'espace    allocate(size);  // Remplissage du tableau    for( unsigned int i=0; i<size; ++i )    for( unsigned int j=0; j<size; ++j )    {      in >> num;      mat[i][j] = strtoul(num.c_str(), NULL, 10);    }  in.close();}////////////////////////////////////////////////////////////////////////////////
///
/// M閠hode qui alloue de l'espace pour pouvoir creer une matrice
///
/// @param[in] Size La taille de la matrice.
//
////////////////////////////////////////////////////////////////////////////////void matrice::allocate( unsigned int n ){  mat = new int*[size];  for( unsigned int i=0; i<size; ++i )    	mat[i]= new int[size];}////////////////////////////////////////////////////////////////////////////////
///
/// Methode qui permet d'afficher la matrice a l'ecran
///
////////////////////////////////////////////////////////////////////////////////void matrice::imprimer( ostream& o )const{  for( unsigned int i=0; i<size; ++i )  {    for( unsigned int j=0; j<size; ++j )      o << mat[i][j] <<'\t';    o << endl;  }}////////////////////////////////////////////////////////////////////////////////
///
/// Surcharge de l'op閞ateur d'addition.
///
/// @param[in] rop La matrice a faire additionner de la matrice courante
///
/// @return La matrice courante apr鑣 la addition.
///
////////////////////////////////////////////////////////////////////////////////matrice matrice::operator+(const matrice& rop)const{  matrice result(size);  for( unsigned int i=0; i<size; ++i )    for( unsigned int j=0; j<size; ++j )      result.mat[i][j] = mat[i][j] + rop.mat[i][j];  return result;}////////////////////////////////////////////////////////////////////////////////
///
/// Surcharge de l'op閞ateur de soustraction.
///
/// @param[in] rop La matrice a faire soustraire de la matrice courante
///
/// @return La matrice courante apr鑣 la soustraction.
///
////////////////////////////////////////////////////////////////////////////////matrice matrice::operator-(const matrice& rop)const{  matrice result(size);  for( unsigned int i=0; i<size; ++i )    for( unsigned int j=0; j<size; ++j )      result.mat[i][j] = mat[i][j] - rop.mat[i][j];  return result;}////////////////////////////////////////////////////////////////////////////////
///
/// Surcharge de l'op閞ateur d'affectation.
///
/// @param[in] rop La matrice 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -