#include <stdio.h>
#include "tadMatriz2.h"

Matriz crearMatriz(int f, int c){
	Matriz m;
	int i;
	m.filas = f;
	m.columnas = c;
	m.elementos = (double **)malloc(sizeof(double)*f*c);
	for(i=0; i<f; i++)
		m.elementos[i] = (double *)malloc(sizeof(double)*c);
	return m;
}

void inicializarMatriz(Matriz *m, double valor){
	int i,j;
	for(i=0; i<m->filas; i++)
		for(j=0; j<m->columnas; j++)
			m->elementos[i][j] = valor;
}


void imprimirMatriz(Matriz m){
	int i,j;
	for(i=0; i<m.filas; i++){
		for(j=0; j<m.columnas; j++)
			printf("%.2lf ", m.elementos[i][j]);
		printf("\n");
	}
}


void llenarMatriz(Matriz *m){
	int i,j;
	for(i=0; i<m->filas; i++){
		for(j=0; j<m->columnas; j++){
			printf("m.elementos[%i][%i] = ", i,j);
			scanf("%lf", &m->elementos[i][j]);
		}
	}
}


Matriz multiplicarMatrices(Matriz a, Matriz b){
	Matriz c;
	int i,j,k;
	if(a.columnas == b.filas){
	   c = crearMatriz(a.filas, b.columnas);
	   for(i=0; i<a.filas; i++)
	      for(j=0; j<b.columnas; j++)
	         for(k=0; k<a.columnas; k++)
	            c.elementos[i][j] = c.elementos[i][j] +
					a.elementos[i][k] *
					b.elementos[k][i];
	}
	return c;
}


/*
void mostrarDiagonal(Matriz){
}
Matriz sumarMatrices(Matriz, Matriz){
}
Matriz invertirMatriz(Matriz){
}
Matriz traspuestaMatriz(Matriz);
double determinanteMatriz(Matriz);
*/
