Ejemplos de Funciones para la Clase de Introducción a la Programación Viernes 19 de noviembre de 2010 Instrucciones.- Los siguientes algoritmos deben comentarizarse para indicar que hace cada uno. Estos ejercicios se deben de entregar el día lunes 22 de noviembre, antes de iniciar el examen. #include <stdio.h> /*Aquí se está definiendo la función serie*/ /*Primero se muestra que la función regresa un valor de tipo flotante*/ /*Posteriormente se muestra el nombre de la función*/ /*Entre paréntesis se muestra que la función recibe un valor de tipo entero*/ int serieimpar(int n); main() { int n,i,x; float sumatoria; printf("Ingresa el limite de la serie"); scanf("%d",&n); /*Aquí se realiza la llamada de la función serie*/ /*Entre paréntesis se indica que se va a pasar el limite de la serie almacenado en la variable n*/ sumatoria=serie(n); /*Dado que la función se definió que regresa un valor, se tiene que guardar este valor en una variable*/ /*De lo contrario se perdería, en este caso el valor que regresa la función se guarda en la variable sumatoria*/ printf("El valor de la serie es igual a:%f",sumatoria); } /*Aquí se está definiendo las operaciones que va a realizar mi función serie*/ int serie(int n) { int i,sumatoriad; i=1; sumatoriad=1; /*Aquí se puede apreciar que se va a utilizar el valor guardado en n*/ while(i<=n){ sumatoriad=sumatoriad*i; i=i+2; } /*Para indicar que variable es la que se desea regresar de la función al main, se utiliza la palabra reservada return*/ return(sumatoriad); /*Una función solamente puede regresar una variable*/ /*Cualquier instrucción que se escriba después del return no se ejecutará*/ } #include <stdio.h> /*Aquí se están definiendo la función de potencia*/ int pot (); /*Esta función no recibe ninguna variable y regresa un valor de tipo entero*/ main() { int i, n, potencia; i=0; printf("Ingresa cuantos valores deseas calcular su potencia:\n"); scanf("%d",&n); while(i<n) { /*Aquí se realiza la llamada de la función pot y de acuerdo a su definición no se le pasa ningún parámetro*/ potencia=pot(); /*Dado que la función pot regresa el valor de una potencia, se debe guardar este valor en una variable*/ /*Para este ejemplo se guarda en la variable potencia */ i=i+1; printf("El valor de la potencia es:%d\n",potencia); } } /*Aquí se está definiendo las operaciones que va a realizar mi función pot*/ int pot(){ int j,base,exponente,p; j=0; p=1; printf("Ingresa el valor de la base:\n"); scanf("%d",&base); printf("Ingresa el valor del exponente:\n"); scanf("%d",&exponente); while(j<exponente){ if(exponente==0) { p=1; } else { p=p*base; } j=j+1; } return(p); } #include <stdio.h> /*Aquí se está definiendo la función fact y recibe como parámetro una variable de tipo entero y regresa un valor de tipo entero*/ int fact(int m); main() { int i, n, serie,sumatoria; i=1; sumatoria=0; printf("Ingresa el limite de la serie:\n"); scanf("%d",&n); while(i<=n) { /*Aquí se realiza la llamada de la función fact*/ serie=fact(i); sumatoria=sumatoria+serie; /*De acuerdo a como se definió la función serie, recibe como parámetro el valor de i*/ /*Se pasa como parámetro la variable i, para calcular cada factorial comprendido en el intervalo de 1 hasta n*/ /*Como la función regresa un valor, en este ejemplo se guarda el valor en la variable serie*/ i=i+1; } printf("El resultado de la suma de 1!+2!+... hasta n!, es igual a:%d\n",sumatoria); } /*Aquí se está definiendo las operaciones que va a realizar mi función fact*/ /*El valor limite de la serie guardado en n y que se esta pasando como parámetro a la función fact se va a almacenar en la variable m*/ int fact(int m){ int t, facto; t=1; facto=1; while(t<=m){ facto=facto*t; t=t+1; } return(facto); } #include <stdio.h> /*En este ejemplo tanto la función pares como la función impares no regresan ningún valor, por esa razón se emplea la palabra reservada void*/ void pares(int m); void impares(int p); /*En ambas funciones el valor del límite de la serie guardado en la variable n se pasa como parámetro y se guarda en las variables m y p respectivamente*/ main() { char op; printf("Este programa te permite multiplicar los valores pares comprendidos en el intervalo de 1 hast N\n"); printf("o\n"); printf("Si deseas sumar todos los valores impares comprendidos en el intervalo de 1 hast N \n"); printf("Para seleccionar la primera opcion, digita el valor 1, sino digita el valor 2.\n"); scanf("%c",&op); int n; float par, impar; /*Para la comparación de caracteres se emplea la comilla simple*/ if(op=='1') { printf("Ingresa el valor limite de la serie:\n"); scanf("%d",&n); pares(n); } if(op=='2') { printf("Ingresa el valor limite de la serie:\n"); scanf("%d",&n); impares(n); } } void pares(int m) { int i, temp, part; i=2; part=1; do { if(m<0) { printf("El valor limite ingresado de la serie no es valido"); } else { temp=i%2; /*Se emplea la operación módulo 2 para verificar que el valor sea par, mediante el valor del residuo*/ if(temp==0) { part=part*i; } } i=i+2; } while(i<=m); printf("El resultado de la serie es:%d\n",part); } void impares(int p) { int i, temp, impart; i=1; impart=0; do { if(p<0){ printf("El valor limite ingresado de la serie no es valido"); } else { temp=i%2; if(temp==1) { impart=impart+i; } } i=i+2; } while(i<=p); printf("El resultado de la serie es:%d\n",impart); }