UNMSM-FISI
Prof. Ulises ROMAN C
www.ulisesroman.blo spot.com
Tema: Funciones y Recursividad
Págs.:1
UNMSM-FISI
Prof. Ulises ROMAN C
Practica No 03 Tema: Funciones y Recursividad - RESUMEN Una función es una parte del programa que calcula y retorna un valor/bloque de instrucciones que realiza una tarea especifica. Se usan las funciones como ayuda para organizar un programa complejo, una función puede ser llamada desde cualquier parte del programa aun dentro de una función, existen diversos tipos de funciones: definidas por el usuario, matemáticas, recursivas,propias del compilador, funciones de cadenas, ect. Existen tareas que se pueden realizar pasando parámetros (Valor, Referencia). Una función que contiene una autollamada se denomina recursivo (llamada así mismo), Cada función tiene la misma estructura que la función principal main(). A continuación mostramos la estructura de una función:
A través de la función RETURN permite devolver un valor, a continuación veamos el flujo de control de una función y la transferencia de datos a través de parámetro/argumentos hacia el programa principal. Programa Principal (PP) Función Transferencia
Retorno
Orden de Invocación
fA
PP
fB
Llamada A
Llamada B
Retorno A
Retorno B
fC
Llamada C
Retorno C
Orden retorno
Tema: Funciones y Recursividad
Págs.:2
UNMSM-FISI
Prof. Ulises ROMAN C
A continuación representa una serie de problemas usando las funciones. Desarrollar el Algoritmo y el programa en C++ / Dev C++/ Visual C++/ C++ Builder para resolver los siguientes problemas:
1. Determinar la suma, resta, multiplicación y la división. Usando
Funciones. 2. Determinar el algoritmo y el programa en C++ el área de un triangulo,
cuadrado, circulo y rectángulo 3. Determinar el algoritmo y el programa en C++ que reciba tres valores
enteros que representen calificaciones. La función debe regresar el valor de cadena “bien” para un promedio de por lo menos 85, “regular” para un promedio de por lo menos 70 pero menor de 85, o “mal” para un promedio menor de 70. 4. Determinar el algoritmo y el programa en C++ que simule la tirada de un
par de dado 100 veces y cuente el numero de veces en las que el resultado es 8, 9 o al menos 10. La salida debe tener la forma: 8 Apareció:_______ veces 9 Apareció:_______ veces La suma fue al menos 10:_______ veces 5. Calcular el numero perfecto y el numero
abundante. Un numero n se llama perfecto si n es igual, a la suma de todos sus divisores diferentes a el. Por Ej. 6 es perfecto porque 6= 1+2+3. Escriba una función que imprima los tres primeros números perfectos. 6. Un entero n se llama abundante si n es menor que la suma de sus
divisores diferentes de n. Por ejemplo, 12 es abundante, porque 12<1+2+3+4+6. Los números abundantes impares son escasos. Tema: Funciones y Recursividad
Págs.:3
UNMSM-FISI
Prof. Ulises ROMAN C
7. Función recursiva. Desarrolle la función factorial 8. Determinar todos los divisores de un numero. 9. Calcular el producto de dos números positivos mediante sumas.
Ejemplo: axb=a+a+a+a..+a (“b” veces). 10. Crea una tabla de multiplicar de nxn 11. Desarrollar : a) b) c) d)
FUNCION_MAYOR(I,J,K) donde se tiene que I,J son los dos números. FUNCION_INTERCAMBIAR(X,Y) donde X,Y son los dos números. FUNCION_POTENCIA(X,N) donde X es la base y N es el exponente de la forma (XN) para N 0 FUNCION_CUBO(N), donde N es un numero entero.
12. Escriba una función que describa dos parámetros enteros m y n, con m <
n. La función deberá regresar la suma:
13. Supongamos que cada empleado de una empresa tiene un numero de
identificación de 3 dígitos, y que cada numero de identificación tiene la siguiente propiedad : Digito _ centena = digito _ decenas + dígito _ unidad El programa pedirá un numero de identificación a cada persona que desee entrar al recinto de la empresa. Después de verificar si ese numero tiene la propiedad requerida, el programa mostrara el mensaje adecuado la persona puede entrar o bien no entrar.
Tema: Funciones y Recursividad
Págs.:4
UNMSM-FISI
Prof. Ulises ROMAN C
14. Usar la función RANDOM/SRAND/RAND/RANDOMIZE para que el
programa de DADOS continuara lanzando un par de dados hasta que se obtenga un 11. La impresión dará resultado de cada tirada, el numero de tiradas en que aparece el primer 11, y el numero de veces había salido el 7 hasta ese momento. Ejemplo: 6 8 7 4 10 7 9 7 11 El primer 11 en la tirada 9 Hubo tres 7 15. Usar la función RANDOM/SRAND/RAND/RANDOMIZE, para determinar
el numero de caras y sellos cuando se lanza una moneda, teniendo en cuenta que hay una probabilidad de 50% de que el resultado sea cara. Se debe lanzar como máximo 10 veces. 16. Implemente la exponenciacion usando una función recursiva potencia
que reciba una base x y un exponente n, donde x es real y n es entero no negativo use:
17. Escriba una función recursiva para calcular la suma de los contenidos
de un arreglo numérico, cuyo prototipo es funcion_SUMA(a, N[]) La funcion_MAIN() todos los programas de C/C++ tienen un punto de entrada al programa denominado “main ()”. La declaraciones de una función siempre requieren el uso de un prototipo. 18. Determinar si las siguientes funciones son correctas/incorrectas(C/I):
int funcion_1 ( ); ______ int funcion_1 (void); ______ void funcion_2 (void ); ______ int main() {………..} ___________ int main( int argc, char *arg V[]) {……..} ____________________ Tema: Funciones y Recursividad
Págs.:5
UNMSM-FISI
Prof. Ulises ROMAN C
19. Que retorna la siguiente función: RETURN RETURN 1 RETURN 0 RETURN X
20. Si una función no devuelve un valor se debe declarar como:_________ 21. Cual es las funciones tiene un parámetro y cual no tiene parámetro:
void fact1 (int); _____________________________________ int fact3(void); _____________________________________ int fact2( ); ________________________________________ 22. El siguiente prototipo es una función factoríal: SI ( ) NO(
)
float Fact (int, float); float Fact (int i, float j);
23. Escriba una función que multiplique un valor por 10 y devuelva el valor
modificado FUNCIONES ESPECIALES a) flour (x) b) fabs(x) c) Pow(x,y) d) Sqrt(x) e) Sin(x) f) Strcmp() 24. Que hace la siguiente función hash explique o investigue sobre el. Tema: Funciones y Recursividad
Págs.:6
UNMSM-FISI
Prof. Ulises ROMAN C
25. Desarrolle la función máximo y mínimo de dos números usando las
variables definidas en la librería del compilador(Ver help del compilador: Ejem. Borland C++ Ver. 5.0) 26. Implementar la función Ackermann y probar para A(1,2) y A(4,3) que
sucede.
Tema: Funciones y Recursividad
Págs.:7
UNMSM-FISI
Prof. Ulises ROMAN C
27. Implementar la función MCD(a,b) mediante la solución recursiva y
mediante la solución iterativa. 28. Implementar funciones que conviertan: Decimal a (binario, octal,
hexadecimal), Binario a (decimal, octal Hexadecimal), Hexadecimal a (binario, Octal, decimal) y Octal a (binario, decimal, hexadecimal) . 29. Propongas 5 ejemplos de funciones y recursividad donde se aplique a
casos reales, especificando sus algoritmos y códigos respectivos.
Tema: Funciones y Recursividad
Págs.:8