Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- programa: Funciones.c
- fecha: 27/08/2015
- autor: Carlos Bernardo Garza Treviño
- proposito: Aprender a hacer funciones en ansi c
- funcion para el calculo de Factorial
- funcion para el calculo de Permutaciones
- funcion para el calculo de Combinaciones
- funcion para el calculo de raices
- funcion para el calculo de fibonacci
- */
- #include <stdio.h>
- #define error 0.00000001
- int Menu( void ) {
- int i;
- system("cls");
- printf("\n\n\n\n");
- printf("\t\t\t Menu Principal\n");
- printf("\t\t\t====================\n");
- printf("\t\t\t 1.- Factorial\n");
- printf("\t\t\t 2.- Permutaciones\n");
- printf("\t\t\t 3.- Combinaciones\n");
- printf("\t\t\t 4.- Raices\n");
- printf("\t\t\t 5.- Fibonacci\n");
- printf("\t\t\t 6.- Serie Fibonacci\n");
- printf("\t\t\t 7.- Salir\n\n");
- printf("\t\t\t Opcion -> ");
- scanf("%d", &i);
- return(i);
- }
- double Factorial( int a ) {
- double prod = 1.0;
- int i;
- for(i = 1; i <= a; i = i + 1) {
- prod = prod * i;
- }
- return( prod );
- }
- double Perm( int a, int b ) {
- return(Factorial( a ) / Factorial( a - b ));
- }
- double Comb( int a, int b ) {
- return(Perm( a, b ) / Factorial( b ) );
- }
- double Raices(double x, int exp) {
- double Xa = 0.0, Xn = 1.0, dif;
- do {
- Xa = Xn;
- Xn = (1.0 / exp) * (((exp - 1.0) * Xa) + (x / pow(Xa, (exp - 1.0))));
- dif = Xa - Xn;
- if( dif < 0 ) dif *= -1.0;
- } while( dif > error );
- return(Xn);
- }
- double Fibo( int a ) {
- if(a == 0) return 0;
- if(a == 1) return 1;
- return( Fibo(a - 1) + Fibo(a - 2));
- }
- int main(int argi, char** argc) {
- int opcion = 0, n, r;
- double resultado, valor;
- while( opcion < 7 ) { // sentencia de ciclo
- opcion = Menu(); // llamada a la funcion Menu
- switch( opcion ) { // sentencia de control
- case 1: {
- printf("\n\tDame el valor del factorial a calcular -> ");
- scanf("%d", &n);
- resultado = Factorial(n); // llamada a la funcion
- printf("\n\tFactorial(%d) = %.0lf\n\n\t", n, resultado);
- break;
- }
- case 2: {
- printf("\n\tValores de P(n, r) calcular -> ");
- scanf("%d,%d", &n, &r);
- resultado = Perm(n,r); // llamada a la funcion
- printf("\n\tPermutaciones(%d,%d) = %.0lf\n\n\t", n, r, resultado);
- break;
- }
- case 3: {
- printf("\n\tValores de C(n, r) calcular -> ");
- scanf("%d,%d", &n, &r);
- resultado = Comb(n,r); // llamada a la funcion
- printf("\n\tCombinaciones(%d,%d) = %.0lf\n\n\t", n, r, resultado);
- break;
- }
- case 4: {
- printf("\n\tValores de R(valor, r) calcular -> ");
- scanf("%lf,%d", &valor, &r);
- resultado = Raices(valor,r); // llamada a la funcion
- printf("\n\tRaiz(%lf,%d) = %.6lf\n\n\t", valor, r, resultado);
- break;
- }
- case 5: {
- printf("\n\tValor de F(r) calcular -> ");
- scanf("%d", &r);
- resultado = Fibo(r); // llamada a la funcion
- printf("\n\tFibonacci(%d) = %.0lf\n\n\t", r, resultado);
- break;
- }
- case 6: {
- printf("\n\tHasta que valor de F(r) calcular -> ");
- scanf("%d", &r);
- for( n = 0; n <= r; n++ ) {
- resultado = Fibo(n); // llamada a la funcion
- printf("%.0lf, ", resultado);
- }
- printf("\n\n");
- for( n = 2; n <= r; n++ ) {
- resultado = Fibo( n ) / Fibo( n - 1 ); // llamada a la funcion
- printf("%.3lf, ", resultado);
- }
- break;
- }
- }
- system("pause");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement