Solutionneur d'équation

Description

Le progarmme permet de résoudre trois types d'équation :
1) aX = b
2) ax^2 + bX + c = 0
3) Les systemes d'equations a deux inconnues.

Source / Exemple :


# include <stdio.h>
# include <math.h>
# include <conio.h>
/*Solver resoud les equations de degre 1; de degre 2 et des equations a deux inconnues
Le code source de Solver est a licence Publique GNU  
Toute personne peut le copier ou la modifier pour tout usage y compris la commercialisation
Code Source crée par Jean Came Poulard; avec le compilateur Dev C++ 4.9.8.0 GNU GENERAL PUBLIC LICENSE */
void main(){
int n; 
float a, b, c, x1, x2, delta, a1, b1, c1, d, e, f, x3, y, q, r, z, delta1, deltax, deltay, t1, t2, t3, t4; 
char sym = 127, sortir; 

printf("\n\t=======================================================\n");
printf("\t              BIENVENUE DANS LE <<SOLVER>>               \n"); 
printf("\t             LICENCE D'UTILISATION PUBLIQUE              \n");
printf("\t                       (GNU)                             \n");
printf("\t                 JEAN CAME POULARD                       \n");
printf("\t                     MARS 2005                           \n");
printf("\t========================================================\n");
printf("\n\t********************************************************\n");
printf("\t*          Le <<SOLVER>> resoud les equations          *\n");
printf("\t********************************************************\n"); 
do{
    printf("\n\t################### MENU PRINCIPAL ########################");
    printf("\n\t#                                                         #");
    printf("\n\t#   Tapez <<1>> pour resoudre aX = b                      #\n");
    printf("\t#   Tapez <<2>> pour resoudre aX^2 + bX + C = 0           #\n");
    printf("\t#   Tapez <<3>> pour resoudre un systeme a deux inconnues #\n");
    printf("\t#   Tapez <<4>> pour aller au menu de la sortie           #\n"); 
    printf("\t#                                                         #\n");
    printf("\t###########################################################\n");
    printf("\n\tVotre choix : ");
    scanf("%d", &n);
    switch(n){
    case 1 :
            {
            printf("\n\tResolution de l'equation aX = b\n"); 
            printf("\n\tEntrez les valeurs de a et de b\n");
            do{
                printf("\n\ta : "); 
                scanf("%f", &q); 
                    }
            while(q==0);
            printf("\n\tb : "); 
            scanf("%f", &r); 
            printf("\n\tl'equation a resoudre est : %.2fX = %.2f\n", q, r);
            z = r/q; 
            printf("\n\tX = %.2f\n\n", z);
                        }
            break;
    case 2 :
            {
            printf("\n\t\tEntrez les coefficients de aX^2 + bX + c = 0\n");                
            do {
   	            printf("\n\tEntrez a : ");
   	            scanf("%f", &a);
         	            }
            while(a == 0);
            printf("\tEntrez b : ");
            scanf("%f", &b);
            printf("\tEntrez C : ");
            scanf("%f", &c);
            printf("\n\n\tL'equation a resoudre est : %.2fX^2 + (%.2f)X + (%.2f) = 0", a, b, c);
            delta = b*b-4*a*c;
            printf("\n\n\t\t%c = %.2f", sym, delta);
            if(delta >= 0){
                        x1 = (-b + sqrt(delta))/(2*a);
                        x2 = (-b - sqrt(delta))/(2*a);
                        printf("\n\n\t\tSOLUTION DANS L'ENSEMBLE R");
                        printf("\n\n\t\t\tX' = %.2f et X'' = %.2f\n\n", x1, x2);
                        }
            if(delta < 0){
                                    
   			              t1 = -b/(2*a);
   			              t2 = (sqrt(-delta))/(2*a);
   			              t3 = -b/(2*a); 
   			              t4 = -(sqrt(-delta))/(2*a);
   			              printf("\n\n\t\tSOLUTION DANS L'ENSEMBLE C");
   			              printf("\n\n\t\tX' = %.2f + (%.2f)i et X'' = %.2f + (%.2f)i\n\n", t1,t2,t3,t4);
                  			              }
            }
            break; 
    case 3 :
            {
            printf("\n\tResolution de l'equation :\n");
            printf("\n\taX + bY = c\n\tdX + eY = f\n");
            printf("\n\tEntrez les coefficients :\n");
            do{
   	            printf("\ta : ");
   	            scanf("%f", &a1);
   	            printf("\tb : ");
   	            scanf("%f", &b1);
   	            printf("\tc : ");
   	            scanf("%f", &c1);
   	            printf("\td : ");
   	            scanf("%f", &d);
   	            printf("\te : ");
   	            scanf("%f",&e);
   	            printf("\tf : ");
   	            scanf("%f", &f);
        	     }
      	     while((a1==0)||(b1==0)||(d==0)||(e==0));
      	     printf("\n\tL'equation est :\n");
      	     printf("\n\t%.2fX + (%.2f)Y = %.2f\n\t%.2fX + (%.2f)Y = %.2f\n", a1, b1, c1, d, e, f);
      	     delta1 = a1*e - d*b1;
      	     deltax = c1*e - f*b1;
      	     deltay = a1*f - d*c1;
      	     x3 = deltax/delta1;
      	     y = deltay/delta1;
      	     printf("\n\t%c = %.f \t%cx = %.2f \t%cy = %.2f\n", sym, delta1, sym, deltax, sym, deltay);
      	     if(delta == 0){
                            printf("\n\tInfinite de solution\n\n");
                            }
             printf("\n\tX = %.2f et Y = %.2f\n\n", x3, y);
            }
            break;
    case 4 :    
            {    
            printf("\n\n\tTapez n'importe quelle touche pour continuer\n\n\tTapez <<X>> pour sortir."); 
            scanf(" %c", &sortir);
            }
            break;
    }
}
while((sortir!='X')&&(sortir!='x')); 
getch();

}

Conclusion :


Ce programme ne fonctionne que sous DOS et n'a pas d'option "Nettoyage D'écran" - En terme de Buggs je n'ai pas encore remarqué si non qu'il manque de fonctionnalité. J'espere mettre a jour le logiciel tres bientot....

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.