Ing. Edson RaĂşl Lazo Alvarez
Rafael Nadal
Programación Estructurada
Funciones y Procedimientos en C++ Computación Ing. Edson Raúl Lazo Alvarez
Semana 11 – Semana 12
Ing. Edson Raúl Lazo Alvarez
Propósito
Al finalizar el estudiante podrá desarrollar programas en C++ aplicando funciones y procedimientos.
Ing. Edson Raúl Lazo Alvarez
Agenda del dĂa Subprogramas Funciones Procedimientos Funciones Vs Procedimientos Ing. Edson RaĂşl Lazo Alvarez
1 Subprogramas
Ing. Edson RaĂşl Lazo Alvarez
¿Qué son los subprogramas? Los subprogramas se implementan en respuesta al diseño modular. Su principal objetivo consiste en facilitar la depuración de errores en el software y en facilitar la reutilización de componentes de software para lograr mayor productividad. Hacen más sencilla la programación.
Tipos de Subprogramas
Todos los lenguajes de programaciĂłn admiten subprogramas. Se los denomina funciones, procedimientos, subrutinas. .
Ing. Edson RaĂşl Lazo Alvarez
Subprogramas
Ing. Edson RaĂşl Lazo Alvarez
Subprogramas – Funciones y Procedimientos Principal Main()
Subproceso A
Subproceso A
Inicio
Inicio
Inicio
Subproceso A
Proceso
Proceso
Subproceso B
Fin
Fin
Fin
2 Funciones en C++
Ing. Edson RaĂşl Lazo Alvarez
Función en C++ Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento.
Ing. Edson Raúl Lazo Alvarez
Función en C++ Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código.
Ing. Edson Raúl Lazo Alvarez
Función en C++ Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
Ing. Edson Raúl Lazo Alvarez
Declaración y definición de funciones En C++ hay que distinguir entre lo que es un declaración y una definición de una función. En la declaración de una función tan sólo se incluye la cabecera o prototipo de la misma, y siempre tiene que aparecer antes de ser utilizada. En la definición de la función aparecen las sentencias que ejecuta dicha función, y puede aparecer en cualquier parte del programa. Ing. Edson Raúl Lazo Alvarez
Sintaxis //Prototipo o Declaración tipo función(tipo_1 parámetro_1, tipo_n parámetro_n ); //Definición tipo función(tipo_1 parámetro_1, tipo_n parámetro_n ) { sentencias de la función } Las declaraciones de funciones tienen un nombre específico: se denominan prototipo Ing. Edson Raúl Lazo Alvarez
Ejemplo 1 – cuadrado de un número
Para comenzar, vamos a considerar el caso en el cual se desea crear la función cuadrado(), que deberá devolver el cuadrado de un número real (de punto flotante), es decir, cuadrado() aceptará números decimales y regresará una respuesta como número decimal.
Ing. Edson Raúl Lazo Alvarez
Ejemplo – Cuadrado()
Nota: aunque para la función que veremos el tipo de retorno coincide con el tipo de parámetro pasado, algunas veces las cosas pueden cambiar, es decir, no es obligatorio que una función reciba un parámetro de un tipo y que tenga que regresar una respuesta de dicho tipo. Ing. Edson Raúl Lazo Alvarez
Ing. Edson RaĂşl Lazo Alvarez
Ejemplo 2 - Factorial
Ing. Edson RaĂşl Lazo Alvarez
Ing. Edson RaĂşl Lazo Alvarez
3 PROCEDIMIENTOS
ING. Edson Raúl Lazo Alvarez
Procedimientos en C++ Es un subprograma que ejecuta un proceso específico. Ningún valor está asociado con el nombre del procedimiento; por consiguiente, no puede ocurrir en una expresión.
ING. Edson Raúl Lazo Alvarez
Función en C++ Cuando se invoca el procedimiento, los pasos que lo definen se ejecutan y a continuación se devuelve el control al programa que le llamó.
Ing. Edson Raúl Lazo Alvarez
Sintaxis //Prototipo o Declaración void procedimiento(tipo_1 parámetro_1,…,tipo_n parámetro_n); //Definición void procedimiento(tipo_1 parámetro_1,…,tipo_n parámetro_n) { sentencias del procedimiento (sin valor de retorno); }
ING. Edson Raúl Lazo Alvarez
Ejemplo
Elaborar un procedimiento que reciba como parámetro una nota y también indique si es aprobada o desaprobada. Luego escribir el programa principal que invoque a este procedimiento.
ING. Edson Raúl Lazo Alvarez
ING. Edson RaĂşl Lazo Alvarez
4 Procedimiento Vs Función
Ing. Edson Raúl Lazo Alvarez
Procedimiento vs. Función Aunque las funciones son herramientas de programación muy útiles para la resolución de problemas, su alcance está muy limitado. Con frecuencia se requieren subprogramas que calculen varios resultados en vez de uno solo. En estas situaciones la función no es apropiada y se necesita disponer del otro tipo de subprograma: el procedimiento o subrutina.
Ing. Edson Raúl Lazo Alvarez
Procedimiento vs. Función Los procedimientos y funciones son subprogramas cuyo diseño y misión son similares; sin embargo, existen unas diferencias esenciales entre ellos: • Las funciones devuelven un valor, los procedimientos no. • El procedimiento se declara igual que la función, pero su nombre no está asociado a ninguno de los resultados que obtiene. • Los procedimientos se declaran y definen antes del programa principal. ING. Edson Raúl Lazo Alvarez
5 Recapitulando
Ing. Edson RaĂşl Lazo Alvarez
Prototipo de Función Prototipo de Procedimiento
Main() Función Principal Desde aquí se invocan las funciones y procedimientos Código Fuente C++ Definición de la Función Definición del Procedimiento Ing. Edson Raúl Lazo Alvarez
Funciones en C++ Prototipos , tipos de resultados y argumentos.
Funciones en C++ Prototipos , tipos de resultados y argumentos.
Funciones en C++ Parámetros formales y actuales
Parámetros formales o de diseño
Parámetros actuales o de llamada
Sobrecarga de funciones
Recursividad La recursividad es una técnica que permite a definir a una función en términos de sí misma. En otras palabras: una función es recursiva cuando se invoca a sí misma. Ejemplos:
• Factorial: 5!= 5*4!
n!= n * (n-1)!
• Potencia: 27 = 2*26
an = a*a(n-1)
• Fibonacci: 1,1,2,3,5,8,13,... ;
tn=t(n-1)+t(n-2)
Recursividad
Condiciones para que una función sea recursiva Toda función recursiva debe Realizar llamadas a sí misma para efectuar versiones reducidas de la misma tarea. Incluir uno o más casos donde la función realice su tarea sin emplear una llamada recursiva, permitiendo detener la secuencia de llamadas (condición de detención o stop).
A construir programas - Ejercicios
Ing. Edson RaĂşl Lazo Alvarez
Ejercicios Escribe un programa que implemente y utilice una función para determinar si un número es positivo o negativo. Lee un número entero por teclado e imprime por pantalla si el número leído es positivo o negativo haciendo uso de la función definida. Programa que calcula el cubo de los números del 1 al 5 utilizando una función definida por el usuario.
Ing. Edson Raúl Lazo Alvarez
Que las dudas no te atormenten – Pregunta.
Ing. Edson RaĂşl Lazo Alvarez
Reflexionemos
Ing. Edson RaĂşl Lazo Alvarez
Ing. Edson RaĂşl Lazo Alvarez elazo@continental.edu.pe