All pastes #577094 Raw Edit

Calculator

public text v1 · immutable
·published 2007-06-19 19:43 UTC
rendered paste body
/* 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");
	}
}