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; }
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; }