termine a função lerMatrizArquivo. A função em questão deve
receber o nome de um arquivo que contenha uma matriz, por exemplo "matrizA.dat", e dois
parâmetos que sejam referências para inteiros que irão armazenar as dimensões (quantidade de
linhas e quantidade de colunas) da matriz lida do arquivo. Após ler as dimensões da matriz
armazenada no arquivo, a função deve alocar dinamicamente uma matriz do tamanho exato
registrado no arquivo e armazenar os dados do arquivo na matriz alocada, além de atualizar as
referências m e n para conterem as dimensões da matriz lida. A matriz lida deve ser retornada ao final da funçao
#include <stdio.h>
#include <stdlib.h>
float **lerMatrizArquivo(char *nomeArquivo, int *m, int *n){
//Q1: Le o arquivo cujo nome eh passado no primeiro parametro (nomeArquivo), retorna a matriz que esta armazenada no arquivo lido e atualiza os parametros m e n com as dimensoes da matriz lida.
}
float **produtoMatrizes(float **A, int mA, int nA, float **B, int mB, int nB){
//Q2: Calcula o produto de matrizes A * B. Retorna o resultado do produto.
}
void imprimeMatriz(float **A, int m, int n){
//Q3: Imprime na tela a matriz passada como parametro.
}
int main(){
float **A, **B, **R;
int mA, nA, mB, nB;
A = lerMatrizArquivo( "matrizA.dat", &mA, &nA);
B = lerMatrizArquivo( "matrizB.dat", &mB, &nB);
if(nA == mB){
R = produtoMatrizes(A, mA, nA, B, mB, nB);
printf(" A = ");
imprimeMatriz(A, mA, nA);
printf("\n B = ");
imprimeMatriz(B, mB, nB);
printf("\n A * B = ");
imprimeMatriz(R, mA, nB);
return 0;
} else {
printf("As dimensoes das matrizes nao permitem o calculo do produto entre elas na ordem pedida\n");
return 1;
}
}