Producto de 2 matrices

Victoria Gracia

/*Este programa calcula el producto de dos matrices */

# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# define DIM 100

void leer_matriz (int, float [DIM][DIM]);
void escribir_matriz (int, float [][DIM]);
void producto_matrices (int, float [][DIM], float [][DIM], float [][DIM]);

int main ()
{
int n;
float x [DIM][DIM], y [DIM][DIM], z [DIM][DIM];

do
{
printf (“Introduce la dimension de la matriz (<=100):”);
scanf (“%d”, &n);
} while ((0>n)||(n>DIM));

printf (“\n Introduce la primera matriz: \n”);
leer_matriz(n,x);
system(“cls”);
printf (“\n Introduce la segunda matriz: \n”);
leer_matriz(n,y);
system(“cls”);

producto_matrices(n,x,y,z);
printf (“\n Producto de las dos matrices: \n”);
escribir_matriz(n,z);

system(“PAUSE”);
return 0;
}

void leer_matriz (int n, float v[][DIM])
{
int i, j;
for (i=0; i<n; i++)
{
printf (“\n Vamos a introducir la fila %d.\n”,i+1);
for (j=0; j<n; j++)
{
printf (“Introduce la componente (%d,%d): “, i+1,j+1);
scanf (“%f”, &v[i][j]);
}
}
}

void escribir_matriz (int n, float v[][DIM])
{
int i, j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf(“%12.2f”,v[i][j]);
}
printf (“\n”);
}
}

void producto_matrices (int n, float v1[][DIM], float v2[][DIM], float v3[][DIM])
{
int i, j, k;

for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
v3[i][j]=0;
for (k=1; k<n; k++)
v3[i][j]=v3[i][j]+v1[i][k]*v2[k][j];
}
}

 

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s