Practica De Programacion

Páginas: 6 (1283 palabras) Publicado: 20 de abril de 2012
#include<stdio.h>
#include<conio.h>
#include<windows.h>
#define MaxD 20
#define MaxA 30

void suma(float[][MaxA],float[][MaxA],int,int,float[][MaxA]);
void Resta(float[][MaxA],float[][MaxA],int,int,float[][MaxA]);
void Producto(float[][MaxA],float[][MaxA],int,int,int,float[][MaxA]);
void transpuesta(float [][MaxA],int,int,float [][MaxA]);
voidcalculo1(float[][MaxA],float,float[][MaxA]);
void calculo2(float[][MaxA],int,int);
void calculo3(float[][2],int,int);
void calculo4(float[][MaxA],int,int);
void calculo5(float[][MaxA],int,int);
void calculo6(float[][MaxA],int,int);
void calculo7(int[]);
int suma1(int[],int[]);
int resta1(int[],int[]);
int producto1(int[],int[]);
float calculo8(float[][MaxA]);
int opcion(void);
void suma2(void);voidresta2(void);
void producto2(void);
void transpuesta2(void);
void inversa2(void);

int main()
{
int o;
o=opcion();

while(o!=6)
{
system("cls");
switch (o)
{
case 1:

suma2();
printf("\n");
break;
case 2:
resta2();
printf("\n");
break;
case 3:
producto2();
printf("\n");
break;
case 4:
transpuesta2();printf("\n");
break;
case 5:
inversa2();
printf("\n");
break;
case 6:
return(0);
break;

default:
printf("\nOpcion equivocada\n\n");
break;
}
o=opcion();
}
}

int opcion(void) //Menu
{
int u;
printf("Ingrese una opcion\n\ Opcion 1: Sumar matrices\n\ Opcion 2: Restar matrices\n\ Opcion 3: Multiplicarmatrices\n\ Opcion 4: Transpuesta de la matriz\n\ Opcion 5: Inversa de matrices 2 x 2\n\ Opcion 6: Salir\n");
scanf("%d",&u);
return u;
} //Fin menu

void inversa2() //Programa de la inversa
{
float A[MaxD][MaxA],R[MaxD][MaxA],a;
int DA[2];
DA[0]=2;DA[1]=2;
calculo2(A,DA[0],DA[1]);
calculo6(A,DA[0],DA[1]);
a=calculo8(A);
if(a==0)printf("\n\nEl determinante de la matriz es cero, no se puede calcular la inversa\n");
else
{
calculo1(A,a,R);
calculo4(R,DA[0],DA[1]);
}
} //Fin programa de la inversa

float calculo8(float M[][MaxA]) //calculo del determinante
{
float det;
det=((M[0][0]*M[1][1])-(M[1][0]*M[0][1]));
return(det);
}

void calculo1(float X[][MaxA],float d,floatR[][MaxA]) //calculo de la inversa
{
R[0][0]= ((1/d)*(X[1][1]));
R[1][0]= ((-1/d)*(X[0][1]));
R[0][1]= ((-1/d)*(X[1][0]));
R[1][1]= ((1/d)*(X[0][0]));
}

void suma2() //Programa de la suma
{
float A[MaxD][MaxA],B[MaxD][MaxA],R[MaxD][MaxA];
int DA[2],DB[2];
printf("Ingrese la dimension de la primera matriz\n");
calculo7(DA);
printf("Ingrese la dimension dela segunda matriz\n");
calculo7(DB);
if (suma1(DA,DB))
{
calculo2(A,DA[0],DA[1]);
calculo6(A,DA[0],DA[1]);
printf("\n");
calculo2(B,DB[0],DB[1]);
calculo6(B,DB[0],DB[1]);
printf("\n");
suma(A,B,DA[0],DA[1],R);
calculo4(R,DA[0],DA[1]);
}
else
printf("Tamaño incompatible para sumar\n");
} //Fin programa de la suma

voidresta2(void) //Programa dela resta
{
float A[MaxD][MaxA],B[MaxD][MaxA],R[MaxD][MaxA];
int DA[2],DB[2];
printf("Ingrese la dimension de la primera matriz\n");
calculo7(DA);
printf("Ingrese la dimension de la segunda matriz\n");
calculo7(DB);
if (resta1(DA,DB))
{
calculo2(A,DA[0],DA[1]);
calculo6(A,DA[0],DA[1]);
printf("\n");
calculo2(B,DB[0],DB[1]);
calculo6(B,DB[0],DB[1]);printf("\n");
Resta(A,B,DA[0],DA[1],R);
calculo4(R,DA[0],DA[1]);
}
else
printf("Tamaño incompatible para restar\n");

} //Fin programa de la resta

void producto2(void) //Programa de la multiplicacion
{
float A[MaxD][MaxA],B[MaxD][MaxA],R[MaxD][MaxA];
int DA[2],DB[2];
printf("Ingrese la dimension de la primera matriz\n");
calculo7(DA);
printf("Ingrese la dimension...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion practica
  • Practicas de programacion
  • PRACTICA DE PROGRAMACION
  • Practicas De Programacion
  • Trabajo practico sobre Programacion
  • PRACTICA DIRIGIDA PROGRAMACION ENTERA
  • Mejores Practicas De Programacion
  • Practica 1 Programacion Uc3M

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS