/* main.c */
#include <stdio.h>
#include <math.h>
#include </home/elronde/calculator/simple.c>
#include </home/elronde/calculator/complexe.c>
int main(void)
{
//variables de choix des opérations
char refaire[10];
char type[15];
//on fait une premiere opération avant de faire la boucle
printf("Voulez vous faire une operation complexe ou simple (complexe/simple)?\n");
scanf("%s", &type);
if(!strcmp(type, "complexe"))
{
complexe();
}
else if(!strcmp(type, "simple"))
{
simple();
}
//on repropose à l'utilisateur de faire une opération
while(1)
{
printf("\nVoulez vous faire une nouvelle opération (oui/non)?\n");
scanf("%s", &refaire);
if(!strcmp(refaire, "oui")) // si l'utilisateur veut refaire une opération, on choisit le type
{
printf("Voulez vous faire une operation complexe ou simple (complexe/simple)?\n");
scanf("%s", &type);
if(!strcmp(type, "complexe"))
{
complexe(); //operations type polynomes, fonctions etc etc
}
else if(!strcmp(type, "simple"))
{
simple(); //operations de base
}
else
{
printf("Mode operatoire indisponnible");
}
}
else
{
return 0;
}
}
return 0;
}
/* simple.c */
#include <stdio.h>
#include <math.h>
#include </home/elronde/calculator/simple.c>
#include </home/elronde/calculator/complexe.c>
int main(void)
{
//variables de choix des opérations
char refaire[10];
char type[15];
//on fait une premiere opération avant de faire la boucle
printf("Voulez vous faire une operation complexe ou simple (complexe/simple)?\n");
scanf("%s", &type);
if(!strcmp(type, "complexe"))
{
complexe();
}
else if(!strcmp(type, "simple"))
{
simple();
}
//on repropose à l'utilisateur de faire une opération
while(1)
{
printf("\nVoulez vous faire une nouvelle opération (oui/non)?\n");
scanf("%s", &refaire);
if(!strcmp(refaire, "oui")) // si l'utilisateur veut refaire une opération, on choisit le type
{
printf("Voulez vous faire une operation complexe ou simple (complexe/simple)?\n");
scanf("%s", &type);
if(!strcmp(type, "complexe"))
{
complexe(); //operations type polynomes, fonctions etc etc
}
else if(!strcmp(type, "simple"))
{
simple(); //operations de base
}
else
{
printf("Mode operatoire indisponible");
}
}
else
{
return 0;
}
}
return 0;
}
/* complexe.c */
void polygon2nd(void) //polygones du second degrès dans |R de la forme ax²+bx+c = 0
{
float a;
float b;
float c;
float delta;
float x1; //1iere solution
float x2; //deuxième solution
printf("Polygone du second degres de la forme ax² + bx + c = 0\nEntrez a :\n");
scanf("%f", &a);
printf("Entrez b :\n");
scanf("%f", &b);
printf("Entrez c :\n");
scanf("%f", &c);
if(a == 0) //on vérifie que a différent de 0
{
printf("a ne doit pas être égal à 0.\n");
}
else
{
delta = pow(b,2)-4*a*c;
printf("Delta = %f\n", delta); //on sort les solutions en fonction de delta
if(delta < 0)
{
printf("Delta est inferieur a 0, aucune solution pour ce polynome.\n");
}
else if(delta == 0)
{
x1 = (b-pow(delta,0.5))/(2*a);
printf("Delta = 0, une seule solution : %f\n", x1);
}
else
{
x1 = (b-pow(delta,0.5))/(2*a);
x2 = (-b-pow(delta,0.5))/(2*a);
printf("1iere solution : %f\n", x1);
printf("2nd solution : %f\n", x2);
}
}
}
void primitive(void) //calcul de primitives
{
}
void derive(void) //calcul de derives
{
}
void complexe(void) //opérations complexes (polygones, etc etc) fonction principale du fichier
{
char type[20];
printf("Quel type d'operation / equation voulez vous resoudre (poly2nd, primitive, derive)?\n");
scanf("%s", &type);
if(!strcmp(type, "poly2nd"))
{
polygon2nd();
}
else if(!strcmp(type, "primitive"))
{
primitive();
}
else if(!strcmp(type, "derive"))
{
derive();
}
else
{
printf("Operation non definie\n");
}
}