Fundamentos de la Informática Primero de Industriales. Mecánica, Química, y Electricidad Departamento de Tecnologías de la Información PRACTICA 8. FUNCIONES. PARÁMETROS POR VALOR 1) Introducción. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas sentencias. Las funciones ahorran espacio, reduciendo repeticiones y haciendo más fácil la programación, proporcionando un medio de dividir un proyecto grande en módulos pequeños más manejables. 2) Conceptos nuevos. Los conceptos nuevos introducidos son: 1) 2) 3) 4) 5) 6) Concepto de función. Uso y utilidad de las funciones. Programación Modular. Parámetros. Ámbito de una variable. Variables locales y globales. 3) Lenguaje C. Las nuevas características de C que ha aprendido y que necesita saber para la realización de las prácticas. 1) 2) 3) 4) 5) 6) Declaración de una función o prototipo de la función. Definición de una función. Llamada a una función. Estructura de una función. Sentencia return. Paso de parámetros por valor. 4) Entorno Turbo C. El EID de Dev-C++, nos ofrece una nueva funcionalidad a la hora de depurar un programa que contiene funciones. Es la opción Depurar --> Siguiente Paso. Proponemos al alumno que averigüe la diferencia que hay entre ejecutar un programa Avanzando paso a paso y usando esta nueva opción de siguiente paso, para ello utilice cualquier programa que contenga al menos dos funciones definidas por el usuario y que sean llamadas desde la función principal 5) Ejercicios propuestos. A continuación se propone el enunciado de una serie de ejercicios que el alumno tiene que realizar antes de asistir a la sesión de prácticas, con el fin de presentar las dudas que hayan aparecido en la realización de los mismos durante la sesión de prácticas. Fundamentos de la Informática Primero de Industriales. Mecánica, Química, y Electricidad Departamento de Tecnologías de la Información 1) Escribir un programa que pida un número por teclado y nos diga si ese número es primo. El programa deberá utilizar una función definida por el usuario, a la que se le pase un número y nos devuelva un 0 en el caso de que el número que le pasemos no sea primo, y un 1 en caso contrario. 2) Escribir un programa que pida un número natural por teclado y nos diga si ese número es perfecto (un número natural es perfecto si es igual a la suma de sus divisores, excluido él mismo). El programa deberá utilizar una función definida por el usuario, a la que se le pase un número y nos devuelva un 0 en el caso de que el número que le pasemos no sea perfecto, y un 1 en caso contrario. 3) Realizar un programa que pida dos números enteros por teclado y muestre por pantalla el siguiente menú: MENU 1. Sumar 2. Restar 3. Multiplicar 4. Dividir 5. Potencia 6. Factorial 7. Salir Elija opción: El usuario deberá elegir una opción, introducir dos valores y el programa deberá mostrar el resultado por pantalla. Todas las opciones (1 a 6) deben realizarse utilizando funciones. 4) Utilizando la función primo realizada en el Ejercicio 1, realizar un programa que muestre por pantalla todos los números primos comprendidos entre 1 y un número n introducido por teclado por el usuario. 5) Escriba una función que lea tres números enteros del teclado y nos devuelva el mayor. 6) Escriba una función que calcule la suma de los divisores de un número entero positivo. 7) Escriba una función que determine si un carácter es uno de los dígitos 0,1,2.....9. 8) 1) Escriba una función que convierta grados a fahrenheit (fahrenheit = grados * 9.0/5.0 + 32.0) 9) Escriba las funciones necesarias para poder calcular la equivalencia entre centímetros, pies y pulgadas. (1 Pulgada = 2.54 cm, 1 Pie = 30.48 cm, 1 Pie = 12 Pulgadas) Fundamentos de la Informática Primero de Industriales. Mecánica, Química, y Electricidad Departamento de Tecnologías de la Información 10) Escribir una función que lea un número entero y un número real por teclado, en función del número entero se aplicará una de las funciones de conversión anteriores, tal y como muestra la siguiente tabla: Conversión De Centímetros a Pulgadas De Centímetros a Pies De Pulgadas a Centímetros De Pulgadas a Pies De Pies a Centímetros De Pies a Pulgadas Entero 0 1 2 3 4 5 6) Ejercicios propuestos de un nivel de dificultad mayor. 11. Escriba una función que decida si un número entero es capicúa. 12. Escriba una función que calcule la suma de los divisores de un número entero positivo, pudiendo excluir de dicha suma el propio número (será un parámetro adicional (valor 1 o 0) quien determinará si se suma o no). 13. Construya una función, llamada amigos, que apoyándose en la función anterior, permita ver si dos números son o no amigos (dos números A y B son amigos si la suma de los divisores de A (excluido él mismo) coincide con B y viceversa) 14. Construya un programa que, apoyándose en la función anterior, permita obtener todas las parejas de números amigos comprendidos entre dos números facilitados por el usuario 7) La Frase. “El modo de dar una vez en el clavo es dar cien veces en la herradura.” Miguel de Unamuno