FILIAL ITAUGUÁ FACULTAD DE INGENIERIA Y CIENCIAS BÁSICAS INGENIERÍA EN SISTEMAS INFORMÁTICOS Algoritmia II Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Funciones y Procedimientos Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Funciones en C++ Básicamente una función puede realizar las mismas acciones que un programa: ✓ aceptar datos ✓ realizar unos cálculos determinados y, finalmente, ✓ devolver resultados Las funciones son invocadas desde otras funciones, con una excepción: la función global main(), que tienen todos los programas en C++. Permite al compilador conocer donde está el punto inicial de un programa. Por razones obvias, main() no puede ser invocada desde otras funciones. Podemos distinguir 3 características de las funciones en C++: 1. La definición 2. La declaración 3. La llamada Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Definición de una función Es el código que realiza las tareas para las que la función ha sido prevista. La primera línea de la definición recibe el nombre de encabezamiento y el resto, un bloque encerrado entre llaves, es el cuerpo de la función. La sintaxis habitual de una definición de función es la siguiente Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com tipo: indica el tipo de valor (int, float, etc.) devuelto por la función. nombre_funcion: es el identificador usado para la función. la lista de argumentos es una secuencia de declaración de parámetros separados por comas y encerrados entre paréntesis. Son los llamados parámetros formales de la función. return expresion es un salto incondicional que permite evaluar una expresión y devolver su valor a la función llamante. Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Ejemplo Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Declaración de una función Al igual que ocurre con otros identificadores, en C++ no podemos llamar a una función en una sentencia sin que esté declarada previamente. Una declaración explícita de una función, también denominada prototipo de la función, tiene la expresión general: tipo nombre_funcion(tipo_1, tipo_2, ..., tipo_n); En el ejemplo anterior el prototipo de la función es: double calcula_media(double, double); Es habitual encontrar prototipos acompañados de identificadores, en aras a mejorar la legibilidad del código. En cualquier caso es opcional. Así, el ejemplo anterior podría programarse como: double calcula_media(double x, double y); Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Recordemos que en C++, una declaración permite al compilador: ✓ conocer de antemano las necesidades de memoria (se enviarán a la función dos double y se recibirá un double) ✓ gracias al tipado estático, detectar errores en tiempo de compilación por ejemplo, si utilizamos la función con argumentos cuyos tipos no son compatibles con los explicitados en su prototipo. Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Llamada a la función La llamada a una función se hace especificando su nombre y, entre paréntesis, las expresiones cuyos valores se van a enviar como argumentos de la función. Estos parámetros pueden ser identificadores o cualquier otra expresión válida. La llamada a una función se escribe de forma general como sigue: salida = nombre_funcion(arg_1, arg_2, ..., arg_n); En nuestro ejemplo podría ser: double resultado = calcula_media(numero1, numero2); o, por ejemplo: double resultado = calcula_media(numero1+numero2, 7); Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Ejemplo Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Practica: 1234- Programa Programa Programa Programa Función Media función Sin Parámetro función Con Parámetro Procedimiento Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Estructura Compuesta Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Estructuras compuesta struct Con los tipos básicos de datos, se pueden crear nuevos tipos con estructuras compuestas por uno o más de uno de los tipos mencionados. struct: esta orden se emplea para agrupar variables de tipos iguales o diferentes en un solo registro. Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Ejemplo: struct tiempo { int hora, minuto, segundo; }; struct tiempo { int hora; int minuto; int segundo; }; struct persona{ char nombre[15]; char apellido[15]; int edad; char sexo[15]; int telefono; }; Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Practica: 1- Programa Estructura y Uso de estructura con vectores. Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com Algoritmia II - Ing. Claudia Palacios - cpalacios01@gmail.com