Está en la página 1de 36

Proyecto 2: Calculadora de matrices

Nombre: Juan Manuel Vazquez Gomez


Matricula: 361711275
Grado y Grupo: 3° “A”
Materia: Programación
Maestro: Rubén López
Fecha: 10/07/2020
Introducción

Qué es una matriz


Una matriz es un conjunto de números reales, que están dispuestos en «m» filas y en «n» columnas:

A los números que forman la matriz se les llama elementos.

Tipos de matrices
Matriz rectangular
Es aquella que tiene distinto número de filas que de columnas (m≠n):

Matriz fila
Es toda matriz rectangular que tiene una sola fila (m = 1).

Matriz columna
Es toda matriz rectangular con una columna (n = 1).

Matriz opuesta
La matriz opuesta a otra matriz es la que tiene todos los elementos de signo contrario a la matriz original. Por
ejemplo, si tenemos la matriz A:
Su matriz opuesta sería:

La matriz opuesta a A se designa como -A, donde que todos los elementos son de signo contrario a los elementos
de la matriz A.

Matriz traspuesta
Se llama matriz traspuesta de una matriz cualquiera de dimensión m x n a la matriz que se obtiene al convertir las
filas en columnas. Se representa con el superíndice «t»y su dimensión es por tanto n x m.

Por ejemplo, tenemos la siguiente matriz A, de dimensión 2 x 3 (2 filas y 3 columnas):


Diagramas de Flujo
Suma de Matrices

Inicio

Inserte dato:

Matriz A (i,j);

Matriz B (i,j);

C[i,j]=A[i,j]+B[i,j]
Imprimir Matriz C (i,j);

Resta de matrices
Inicio

Inserte datos:

MatrizA (i,j);

Matriz B (i,j);

C[i,j]=A[i,j]-B[i,j]

Imprimir Matriz C (i,j);

Fin
Matriz Transpuesta

Inicio

Inserte datos:

Dimension A (i,j);

Dimension Transpuesta (j,i);

DimA[i,j] ->Dim-Transpuesta[j,i]

Imprimir
Matriz Transpuesta (j,i);
Fin

Matriz Determinante

Inicio

Insertar Datos Matriz[i,j]

NO SI

¿Es
cuadrada?

Error
a=(mat[1][1]*((mat[2][2]*mat[3][3])-(mat[2][3]*mat[3][2])));
b=(mat[1][2]*((mat[2][1]*mat[3][3])-(mat[2][3]*mat[3][1])));
c=(mat[1][3]*((mat[2][1]*mat[3][2])-(mat[2][2]*mat[3][1])));
Imprimir determinante

Multiplicación de Matrices

Inicio

Leer datos Matriz A, B

matMul= Matc +MaA*MatB

matMul[i][j]=matMul[i][j]+matA[i][k]*matB[k][j]
Imprimir: resultado matMul[i][j]

Fin
Diagrama menú

Error, vuelve a
inicio
intentarlo

¿operación con 1 o 2 no
matrices?
¿Es 2?

no si

¿Es 1?
Valores matA y matB

si

Valores matA

Seleccionar

S-suma

R-resta
Seleccionar
D-determinante M-multiplicacion
1-selección de
ecuaciones lineales.

T- transpuesta

Realizar operación Mostrar los valores


seleccionada resultantes
Pseudocódigo
#include <stdio.h>

int rep, op, i, j, k, mat[3][3], a, b, c, det, t[3][3], matA[3][3], matB[3][3], matSu[3][3], matRe[3]
[3], matMul[3][3], x, y , z ;

int main(){
do{
printf("Realizar operaciones de 1 o 2 matrices?:
");
scanf("%d", &op);

//¿Qué tipo de matriz elegir?


if(op==1){

//Recibir datos en matriz


printf("Ingrese datos de matriz A\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("Ingrese el valor de [%d]
[%d]: ", i,j);
scanf("%d", &mat[i][j]);
}
}
//Intercalar mat a t
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
t[i][j]=mat[j][i];
}
}
//imprimir matriz original
printf("\n\n Matriz ingresada \n\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("%d\t", mat[i][j]);
}
printf("\n");
}

printf("\n\n Que operacion desea


realizar?\n\n");
printf("Determinante (1)\n");
printf("Solucion de ecuaciones (2)\n");
printf("Matriz Transpuesta (3)\n");
printf("\n Opcion seleccionada: ");
scanf("%d", &op);
switch(op){
case 1:
//Resolver la determinante
a=(mat[1][1]*((mat[2][2]*mat[3]
[3])-(mat[2][3]*mat[3][2])));
b=(mat[1][2]*((mat[2][1]*mat[3]
[3])-(mat[2][3]*mat[3][1])));
c=(mat[1][3]*((mat[2][1]*mat[3]
[2])-(mat[2][2]*mat[3][1])));
//printf("%d\t%d\t%d", a, b, c);
det=a-b+c;
printf("\nLa determinante es:
%d", det);
break;
case 2:
//Resolver ecuacion lineal con
metodo de determinante
x=mat[1][1]*mat[2][2]-mat[1]
[2]*mat[2][1];
y=mat[1][3]*mat[2][2]-mat[1]
[2]*mat[2][3];
z=mat[1][1]*mat[2][3]-mat[1]
[3]*mat[2][1];
printf("\n La solucion de x es igual:
%d y es igual: %d, z es igual: %d ", x, y/x, z/x);
break;
case 3:
//imprimir la transpuesta
printf("\n\n La Matriz
Transpuesta es\n\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("%d\t", t[i][j]);
}
printf("\n");
}
break;
default:
printf("Opcion No Valida");
break;
}
}
else
{
if(op==2){
//Ingresar datos de matA
printf("Ingrese la primera
matriz\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("Ingrese un numero
[%d][%d]: ", i,j);
scanf("%d", &matA[i][j]);
}
}
//Ingresar datos de matB
printf("Ingrese la segunda
matriz\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("Ingrese un numero
[%d][%d]: ", i,j);
scanf("%d", &matB[i][j]);
}
}
printf("\n\n Que operación quieres
hacer?\n\n");
printf("Suma de matrices (1)\n");
printf("Resta de matrices (2)\n");
printf("Multiplicacion de matrices
(3)\n");
printf("\n Opcion Seleccionada: ");
scanf("%d", &op);
switch(op){
case 1:
//RealizarSuma
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
matSu[i]
[j]=matA[i][j]+matB[1][j];
}
}
//ImprimirSuma
printf("La suma de la
matriz 1 y 2 es:\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("%d\t",
matSu[i][j]);
}
printf("\n");
}
break;
case 2:
//Realizar Resta
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
matRe[i]
[j]=matA[i][j]-matB[1][j];
}
}
//ImprimirResta
printf("La resta de la
matriz 1 y 2 es:\n");
for(i=1;i<=3;i=i+1){
for(j=1;j<=3;j=j+1){
printf("%d\t",
matRe[i][j]);
}
printf("\n");
}
break;
case 3:
//Resolver la multiplicación
for (i=1;i<=3;i++){
for (j=1;j<=3;j++)
{matMul[i][j]=0;
for (k=1;k<=3;k++)
{matMul[i]
[j]=matMul[i][j]+matA[i][k]*matB[k][j];
}
}
}
printf("\nEl producto de la
multiplicacion es :\n\n");
//Imprimir multiplicación
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{ printf("c[%d][%d]=\t
%.2d\n",i,j,matMul[i][j]);
}
break ;
}
printf("\n Deseas
continuar");
printf ("\n Si=1 \t");
printf ("\n No=2 \t");
scanf("%d", &rep);
}
}
}
while(rep==1);
}
Capturas de corrida del programa

También podría gustarte