1 van 1

Matrices vermenigvuldigen c++

Geplaatst: di 09 feb 2010, 16:33
door kilon
Ik zit met een paar problemen die ik niet kan verklaren.

Ik moet, indien mogelijk, twee matrices met elkaar vermenigvuldigen. Hiervoor moet ik 3 functies gebruiken.

Maar wat is er fout? Waarom doet hij het niet?

Mijn code:

Code: Selecteer alles

#include <iostream>

using namespace std;

//Definieren van de grootte van de matrices	  VERPLICHT

#define MAX_SIZE 10

typedef float matrix[MAX_SIZE][MAX_SIZE];	 //VERPLICHT

//Functie prototypes

void lees_matrix(matrix a[MAX_SIZE][MAX_SIZE], int m, int n);

void vermenigvuldig(matrix a[MAX_SIZE][MAX_SIZE],matrix b[MAX_SIZE][MAX_SIZE],matrix c[MAX_SIZE][MAX_SIZE], int m, int n, int p);

void print_matrix(matrix c[MAX_SIZE][MAX_SIZE], int m,int p);

int main()

{

matrix a, b, c;

int rij_a, kolom_a, rij_b, kolom_b;

int z(0);

cout << "Voer het aantal rijen en kolommen voer matrix a in." << endl;	 //Dimensies matrix a aanduiden

cin >> rij_a >> kolom_a;

cout << "Voer het aantal rijen en kolommen voer matrix a in." << endl;	 //Dimensies matrix b aanduiden

cin >> rij_b >> kolom_b;

if(rij_b != kolom_a)		//Voorwaarde voor het vermenigvuldigen van de matrices

{

cout << "De dimensies van de matrices zijn niet geschikt voor vermenigvuldiging" << endl;

exit(1);

}

cout << "Matrix a:" << endl;

  //Matrix a tonen

cout << lees_matrix(a, rij_a, kolom_a) << endl;

cout << "Matrix b:" << endl;

  //Matrix b tonen

cout <<lees_matrix(b, rij_b, kolom_b) << endl;

 

vermenigvuldig(a, b, c, rij_a, kolom_a, kolom_b);

  //Uitvoeren van de vermenigvuldiging

cout << "Het product van deze matrices is: " << endl;		  //Het product matrix c tonen

cout << print_matrix << endl;

 

system("PAUSE");

return 0;	   //Einde hoofdprogramma

}

/*------------------------------------------------------------*/

//Function lezen matrix

void lees_matrix(matrix a[MAX_SIZE][MAX_SIZE], int m, int n,int z)

{

int rij, kolom;

for (rij=0; rij<m; rij++)

{

cout << "Voer de data in voor rij "<< rij+1 << endl;

for(kolom=0; kolom<n; kolom++)

{

cin >> a[rij][kolom];

}

z=z+1;

}

for(rij=0; rij<m; rij++)

{

for(kolom=0; kolom<n; kolom++)

{

cout << a[rij][kolom] << " " << endl;

cout << " " << endl;

}

}

return;

}

/*------------------------------------------------------------*/

//Functie voor het vermenigvuldigen van de matrix

void vermenigvuldig(matrix a[MAX_SIZE][MAX_SIZE],matrix b[MAX_SIZE][MAX_SIZE],matrix c[MAX_SIZE][MAX_SIZE], int m, int n, int p)

{

//Declacratie

int i, j, k;

for(i=0; i<m; i++)

{

for(j=0; j<p; j++)

{

c[i][j]=0;

for(k=0; k<n; k++)

{

c[i][j] += a[i][k]*b[k][j];

}

}

}

return;

}

/*------------------------------------------------------------*/

//Functie voor het printen van een matrix

void print_matrix(matrix c[MAX_SIZE][MAX_SIZE], int m,int p)

{

int rij, kolom;

for(rij=0; rij<m; rij++)

{

for(kolom=0; kolom<m; kolom++)

{

cout << c[rij][kolom] << " ";

}

}

return;  

}