UNIVERSIDAD TECNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION CARRERA DE DOCENCIA EN INFORMATICA
Programaci贸n II Aracelly Silva Tercer Semestre Ing. Wilma Gavil谩nes
0
Multiplicación Producto de Hilera por Columna Antes de describir la multiplicación de matrices, es necesario definir una operación preliminar: El producto interno, que corresponde a un valor escalar. El producto interno es la suma del producto de los elementos de una hilera por los elementos de una columna. Para multiplicar una hilera por una columna es necesario que el número de columnas en la hilera corresponda al número de hileras en la columna. El producto de hilera por columna es un escalar. Por ejemplo, la multiplicación de A por B, denotado AB, es:
1
La multiplicaciĂłn de Matrices Para multiplicar dos matrices, es necesario que el nĂşmero de hileras de la primera matriz Q corresponda al nĂşmero de columnas de la segunda matriz W. Los elementos del producto P= QW corresponden al producto de hileras por columnas, como se menciona arriba:
En este ejemplo, el elemento (2,3)= 5 corresponde al producto de la hilera dos de Q y columna tres de W. En general, no es lo mismo AB que BA.
2
Diseñe un programa que me permita realizar el producto algebraico de matrices.
Análisis Cremos una función con el borde Void borde Ingresamos las matrices con 2 condiciones for en una misma función Vamos a la función proceso donde dentro de 2 condiciones for vamos a crear otra condición for para que nos ayude como auxiliar para nuestro resultado for(a=1;a<=lim;a++) { matriz2[i][j]=(matriz2[i][j] +(matriz[i][a]*matriz1[a][j])); } Finalmente imprimimos la matriz resultante.
Codificación #include<conio.h> Librerias principales #include<stdio.h> int matriz2[10][10],i,j,matriz[10][10],a,limite,col,fila,matriz1[10][10],op; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/"); } Función Borde for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void ingreso(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { Funcion Ingreso gotoxy(10,9);printf("Matriz "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5; } fila++;
3
col=10; } fila=10; col=30; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) Ingreso matriz 2 { gotoxy(30,9);printf("Matriz "); gotoxy(col,fila);scanf("%d",&matriz1[i][j]); col=col+5; } fila++; col=30; } } void proceso(int lim) { for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { Funci贸n de proceso de matriz2[i][j]=0; multiplicacion de matrices for(a=1;a<=lim;a++) { matriz2[i][j]=(matriz2[i][j] +(matriz[i][a]*matriz1[a][j])); } } } } void imp(int lim) { fila=10; col=50; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) Funci贸n para imprimir { gotoxy(col,fila);printf("%d",matriz2[i][j]); col=col+5; } fila++; col=50;
4
} } void main() { do{ clrscr(); borde(); gotoxy(25,2);printf("Producto de dos matrices"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); Programa ingreso(limite); proceso(limite); Principal imp(limite); gotoxy(10,22);printf("Presione 1 para continar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }
5