Programa Gauss Jordan.

Dependencies:   mbed

Revision:
15:9199611a074f
Parent:
14:596a61f27f36
--- a/main.cpp	Fri Sep 13 16:46:51 2019 +0000
+++ b/main.cpp	Fri Oct 25 14:20:28 2019 +0000
@@ -14,6 +14,7 @@
 **   Autores         :
 **         ATEAM Development Group:
 **          - Antulio Morgado Valle
+**          - Marcelo Padron Javier 
 **
 **   Versión        : Beta
 **   Revisión       : A
@@ -48,6 +49,7 @@
 #define release         3               // Estado para boton liberado
 #define FALSE           0               // Estado FASLO
 #define TRUE            1               // Estado VERDADERO
+#define t 100 
 /*
 +-------------------------------------------------------------------------------
 |  Configuración de Puertos 
@@ -68,6 +70,12 @@
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 */
 void Setup(void); //Function que inicializa la tarjeta;
+void Portada();
+void pidedatos(); 
+void mat_imp(); 
+void correjir(); 
+void gaussjordan(); 
+void imprime();
 /*
 END definitions */  
 /*
@@ -79,26 +87,21 @@
 */
 int main()          
 {
-void confSysClock();
-void Setup();
-//apartir de aqui creas tu programa
-terminal.printf("Formula General(Chicharronera)");
-      int a,b,c; 
-      printf("\t\t Introduce los valores de a,b,c\n");
-      float x1,x2,x3;
-      scanf("%i %i %i",&a,&b,&c);
-      x3= sqrt(double (b*b)- 4*a*c);
-      x1=(-b-x3)- 4*a*c/(2*a);
-      x2=(-b+x3)- 4*a*c/(2*a);
-      printf("el valor de x1 es %.2f ",x1);
-      printf("\nel valor de x2 es %.2f ",x2);
-      if(x3<0)
-      printf("\nla ecuacion es imaginaria");
-      else
-      printf("\nla ecuacion es real");
-      if(x3==0)
-       printf("\nla ecuacion es compleja");
-      
+Setup();            // Inicialización del sistema
+Portada();          //Mandar a llamar a la funcion Portada.
+int op; 
+do 
+{ 
+  pidedatos(); 
+  mat_imp(); 
+  correjir(); 
+  gaussjordan(); 
+  imprime(); 
+  printf("Quieres otro calculo?n1.Sin0.NonR= "); 
+  op =terminal.getc(); 
+} 
+  while(op>=1); 
+  terminal.printf("nn"); 
 }
 /* END main */
 
@@ -117,9 +120,119 @@
                 // Las Funciones Prototipo van aquí !
 void Setup() 
 {
-  terminal.baud(Baud_Rate);
-  terminal.printf("System is wake up!.\n\t");
+  terminal.baud(115200);
+}
+void Portada()//Funcion Portada
+{
+    terminal.printf("\n\r\t\e[1;32m0101  0101  010101  01   10  0101    0101  0101  0101  0101  0101 0101  01   10  0101  0101\e[0m");
+    terminal.printf("\n\r\t\e[1;32m01    01      01    010 010  01        0   0  1  01    0  1   10  01    010  10  01    0  1\e[0m");
+    terminal.printf("\n\r\t\e[1;32m0101  0101    01    01 1 10  0101     1    0101  01    0101   10  0101  01 1 10  01    0  1\e[0m");
+    terminal.printf("\n\r\t\e[1;32m01      01    01    01   10  01      0     0  1  01    0  1   10  01    01  010  01    0  1\e[0m"); 
+    terminal.printf("\n\r\t\e[1;32m0101  0101  010101  01   10  0101    0101  0  1  0101  0  1   10  0101  01   10  0101  0101\e[0m");
+    terminal.printf("\n\n\r\t\e[1;32m       \'NUESTROS COLORES VERDE \e[0m\e[1;37mY BLANCO, POR QUE EL\e[0m\e[1;31m ROJO LO LLEVAMOS EN LA SANGRE!!!\'\e[0m\n\n");
+    terminal.printf("\n\r\t\t\e[1;37m           ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA\e[0m"); 
+    terminal.printf("\n\n\r\t\t\e[1;37m                INGENIERIA EN COMUNICACIONES Y ELECTRONICA\e[0m"); 
+    terminal.printf("\n\n\r\t\t\e[1;37m                            ANALISIS NUMERICO\e[0m"); 
+    terminal.printf("\n\n\r\t\t\e[1;37m                            PROGRAMA GAUSS JORDAN\e[0m");
+    terminal.printf("\n\n\r\t\t\e[1;37m                      ALUMNO: MARCELO PADRON JAVIER\e[0m");
+    terminal.printf("\n\n\r\t\t\e[1;37m                              GRUPO: 4CV2\e[0m\n\n");
+    wait(3.0);//Retardo de 3 segundos   
 }
+int i,j,k,n=0,col,fila,op,op1,op2; 
+float a[t][t+1]={0};
+void pidedatos() 
+ { terminal.printf("Programa para resolver sistemas de ecuaciones de hasta 100 incognitas"); 
+   terminal.printf("nCuantas incognitas son?: "); 
+   n = terminal.getc(); 
+   terminal.printf("n"); 
+   for(i=0;i<=n-1;i++) 
+   { 
+   for(j=0;j<=n;j++) 
+     { 
+   terminal.printf("A[%d][%d] = ",i,j); 
+   a[i][j] = terminal.getc(); 
+   } 
+   printf("n"); 
+   } 
+   } 
+void gaussjordan() 
+{ 
+   for(i=0;i<=n-1;i++) 
+   { 
+   for(j=n;j>=0;j--) 
+   { 
+   a[i][j]=a[i][j]/a[i][i]; 
+   } 
+   for(k=i+1;k<=n-1;k++) 
+   { 
+   for(j=n;j>=0;j--) 
+   { 
+   a[k][j]=a[k][j]-a[k][i]*a[i][j]; 
+   } 
+   } 
+   for(k=0;k<=i-1;k++) 
+   { 
+   for(j=n;j>=0;j--) 
+   { 
+   a[k][j]=a[k][j]-a[k][i]*a[i][j]; 
+   }
+   } 
+   } 
+   } 
+void mat_imp()
+{ 
+printf("nSu matriz es: nn"); 
+for(i=0;i<=n-1;i++) 
+{ 
+for(j=0;j<=n;j++) 
+{ 
+terminal.printf(" %f ",a[i][j]); 
+} 
+terminal.printf("n"); 
+} 
+terminal.printf("nn");
+} 
+void correjir()
+{ 
+do{ 
+terminal.printf("nHay algun error? Si.1tNo.0 "); 
+op2 = terminal.getc(); 
+if(op2==1) 
+{ 
+do{ 
+terminal.printf("nSeleccione la posicion ----> "); 
+terminal.printf(" [i] = "); 
+fila = terminal.getc(); 
+float i=fila;
+terminal.printf("tttt[j] = "); 
+col = terminal.getc(); 
+float j=col;
+terminal.printf("Que valor es? "); 
+a[i][j]=teminal.getc(); 
+terminal.printf("Tiene otro error? Si.1tNo.0 "); 
+op = terminal.getc(); 
+}
+while(op>=1); 
+mat_imp(); 
+op1=0; 
+} 
+else terminal.printf("nOK!"); 
+op1=0; 
+}
+while(op1>=1); 
+terminal.printf("nn"); 
+} 
+void imprime() 
+{ 
+terminal.printf("Sus resultados son:"); 
+for(i=0;i<=n-1;i++) 
+{ 
+terminal.printf("nX[%d] = %f",i,a[i][n]); 
+} 
+terminal.printf("nn"); 
+} 
+
+
 /* END routines */    
                 
 /* END program */