/************************************************
* Fonaments de la programació. Llenguatge C/C++ *
* Curs 2004/2005                                *
*                                               *
* Departament d'informàtica UV                  *
*************************************************/

// Exercici 2: Què fa aquest programa ?



#include <iostream>
#include <stdlib.h>

using namespace std;
const int MAX_FILES=10;
const int MAX_COLUMNES=10;

typedef double vector[MAX_FILES][MAX_COLUMNES];

int main(){
    vector a;
    vector b;
    vector r={0};
    int fa, ca;      //files i columnes d'A
    int fb, cb;      //files i columnes d'B
    int fr, cr;      //files i columnes d'R

    int i,j,k;
    cout << "\nIntrodiu el nombre de files de la matriu A:";
    cin >>fa ;

    cout << "\nIntroduiu el nombre de columnes d'A:";
    cin >> ca ; 

    fb=ca; //el nombre de files de B=columnes d’A 

	cout <<"\nLa matriu B tindr… "<< ca <<" files\n" ;

    cout << "\nIntrodu‹u el nombre de columnes de B:";
    cin >> cb ;

    //introducció dels elements d’A

    for (i=0;i<fa;i++){
        for(j=0;j<ca;j++){
            cout<<"\na["<<i<<","<<j<<"]=";
            cin>>a[i][j];
        }
    }
	//introducció dels elements d’B

    for (i=0;i<fb;i++){
        for(j=0;j<cb;j++){
            cout << "\nb[" << i << "," << j << "]= ";
            cin >> b[i][j];
        }
    }
	//càlcul de l'operació a esbrinar

    fr=fa;cr=cb;     //càlcul de les dimensions de r

    for(i=0;i<fr;i++){
        for(j=0;j<cr;j++){
             for(k=0;k<fb;k++){
                 r[i][j]=r[i][j]+a[i][k]*b[k][j];
             }
        }
    }

    // resultat 

    for (i=0;i<fr;i++){
        for(j=0;j<cr;j++){
            cout << "\nr[" << i << "," << j << "]= " << r[i][j] << "\n\n";
                    }
    }

system("pause");
return 0;
}

