producto
DESCRIPTION
producto de matricesTRANSCRIPT
0
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
1
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:
2
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.
3
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++;
4
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;
5
}
}
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();
}