Javier Marcelo
/
STM32F103C8_GaussJordan
Programa Gauss Jordan.
Diff: main.cpp
- 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 */