/* Este es un ejemplo muy elelemtal de programa C */ /* multiplica dos matrices, utilizando indices */ #include /* Definimos un tipo: matriz cuadrada de 2x2 */ typedef int matriz2x2[2][2]; /* Declaramos las matrices a multiplicar */ matriz2x2 A ; matriz2x2 B ; /* Declaramos e inicializamos la matriz resultado */ matriz2x2 R = {0, 0, 0, 0}; /* Declaramos prototipos de funciones utilizadas en el programa */ void Entra_Mat2x2( matriz2x2 M ); void Mult_Mat2x2( matriz2x2 H, matriz2x2 F, matriz2x2 G); void Visu_Mat2x2( matriz2x2 M ); main() { /* Introducimos valores de las matrices a multiplicar */ Entra_Mat2x2( A ); Entra_Mat2x2( B ); /* Multiplicamos matrices */ Mult_Mat2x2( A, B, R ); /* Visualizamos matriz resultado */ Visu_Mat2x2( R ); } /* Funcion para entrar por teclado los valores de una matriz */ /* Cuadrada de dimension 2 */ void Entra_Mat2x2( matriz2x2 M ) { int i,j; /* Recorremos la matriz para introducir los valores */ /* Fijate en los valores de los indices */ for (i=0; i<2; i++) { printf("\n"); for(j=0; j<2; j++) { printf("(%d,%d) = ",i,j); scanf("%d",&M[i][j]); } } printf("\n\n"); return; } /* Funcion que multiplica dos matrices cuadardas de dimension 2 */ /* A y B son las matrices a multiplicar */ /* En R se deposita el resultado */ void Mult_Mat2x2( matriz2x2 A, matriz2x2 B, matriz2x2 R ) { int i, j, q; /* Bucles anidados para calcular el producto */ /* Fijate en los indices i y j */ for (i=0; i<2; i++) for (j=0; j<2; j++) for (q=0; q<2; q++) R[i][j] += A[i][q]*B[q][j]; return; } /* Esta es una funcion que visualiza el contenido de una matriz */ /* Cuadrada de dimension 2 */ void Visu_Mat2x2( matriz2x2 M ) { int i,j; /* Bucle para recorrer la matriz a visualizar */ for (i=0; i<2; i++) { printf("\n"); for (j=0; j<2; j++) printf("(%d,%d) = %d ",i,j,M[i][j]); } printf("\n\n"); return; }