Esempio n. 1
0
File: g3e7g2.c Progetto: pingicx/cx
double exponential(double x)	//hace el desarrollo de taylor de 'e' elevado a la 'x' con 15 términos.
{
	int b;
	double c=1;			//inicializo c con el primer término de la serie que es 1
	for(b=1;b<15;b++)		//sumo los 15 términos de la serie de taylor
		c += ((exponencial(x,b))/(factorial(b)));

	return c;
}
Esempio n. 2
0
File: g3e7g2.c Progetto: pingicx/cx
double main (void)
{
	char c;
	double ent=0;	//parte entera
	double dec=0;	//parte decimal
	int cont=0;	//contador de cifras decimales
	double x;

	printf("Introduzca la parte entera:");
	while ((c=getchar())!= '\n')
		ent = (ent*10+(c-'0'));		//hago la conversión de char la parte del double

	printf("Introduzca la parte decimal:");
	while ((c=getchar())!= '\n')
	{
		dec = (dec*10+(c-'0'));		//hago la conversión de char a la parte del double
		cont++;
	}

	x = ent+dec/exponencial(10,cont);	//sumo la parte entera con la parte decimal para obtener 'x'.

	printf("Usando una serie de Taylor de orden 15, el valor de e^%f es %f\n", x, exponential(x)); 
}
int main(){

	char ord, rep;
	int n = 0, r = 0;
	int a = 0, b = 0, c = 0, i;

	printf("\nTrabalho Pratico de Matematica Discreta\n\n\tAnalise combinatoria\n\n\n\nPor favor, entre com os dados abaixo:\n\n");

    printf("\nA ordem dos numeros eh importante?('S' ou 's' para Sim / 'N' ou 'n' para Nao)\n\nOpcao : ");
    scanf("%c", &ord);

    printf("\nEh permitida a repeticao dos numeros?('S' ou 's' para Sim / 'N' ou 'n' para Nao)\nOpcao : ");
    scanf(" %c", &rep);

    while(n <= 0){
        if(a > 0)
            printf("\n\nValor de 'n' invalido! Por favor, insira um valor valido.\n");
        printf("\nQual o numero de elementos do conjunto 'n'? (1 a 10)\n\nOpcao : ");
        scanf("%d", &n);
        a++;
    }

    if(ord == 'N' && rep == 'S' || ord == 'n' && rep == 's'){
        while(r <= 0){
            if(b > 0)
                printf("\n\nValor de 'r' invalido! Por favor, insira um valor valido.\n");
            printf("\nQual o tamanho do conjunto 'r' a ser formado? (r >= 1)\n\nOpcao : ");
            scanf("%d", &r);
            b++;
        }
    }

    else{
        while(r > n || r <= 0){
            if(c > 0)
                printf("\n\nValor de 'r' invalido! Por favor, insira um valor valido.\n");
            printf("\nQual o tamanho do conjunto 'r' a ser formado? (1 <= r <= n)\n\nOpcao : ");
            scanf("%d", &r);
            c++;
        }
    }


	if(ord == 'S' || ord == 's'){

		if(rep == 'S' || rep == 's'){
			printf("\n\nOUTPUT:\n\nPossibilidades: %llu\n\nEnumeracoes:\n", exponencial(n,r));
            possib_caso1(n,r);
		}

		else if(rep == 'N' || rep == 'n'){
			printf("\n\nOUTPUT:\n\nPossibilidades: %llu\n\nEnumeracoes:\n", (fatorial(n) / fatorial(n-r)));
			possib_caso2(n,r);
		}

	}

	else if(ord == 'N' || ord == 'n'){

		if(rep == 'S' || rep == 's'){
			printf("\n\nOUTPUT:\n\nPossibilidades: %llu\n\nEnumeracoes:\n", (fatorial(n+r-1) / (fatorial(r)*fatorial(n-1))));
			possib_caso3(n,r);
		}

		else if(rep == 'N' || rep == 'n'){
			printf("\n\nOUTPUT:\n\nPossibilidades: %llu\n\nEnumeracoes:\n", (fatorial(n) / (fatorial(r)*fatorial(n-r))));
			possib_caso4(n,r);
		}

	}

return 0;
}