Slide 1

Slide 1 text

Funciones de C Una función es un bloque de código que ejecuta una acción... Liceo Militar de Honduras | Luis E. Fajardo

Slide 2

Slide 2 text

Para que sirve una función? Para ejecutar una operación específica de un programa. Para simplificar algunas tareas y procedimientos del programa. Para tener mejor legibilidada y comprensión del programa (claridad y limpieza). Para reducir la complejidad de desarrollo de un programa. Permite dividir un problema en subproblemas (divide y vencerás). Cada función cumple un propósito único e identificable en el programa. Liceo Militar de Honduras | Luis E. Fajardo

Slide 3

Slide 3 text

Ventajas del uso de funciones Aportan claridad al programa al dividir el programa en tareas específicas que aportan solución al problema global (escalabilidad). Evita repetición de líneas de código y procedimientos en distintas partes del programa (reutilización de código). El uso de funciones facilita la detección de errores (depuración del programa). Liceo Militar de Honduras | Luis E. Fajardo

Slide 4

Slide 4 text

Las funciones cumplen con estos requisitos... Deben identificarse con un tipo de dato específico (int, char, char*, double, float, etc.). Pueden recibir argumentos, también pueden haber funciones que no reciban argumentos. Cada argumento debe tener un tipo de dato asociado. Pueden contener cualquier cantidad de instrucciones (líneas de código). Pueden llamar a otras funciones dentro de sí mismas. Pueden devolver un resultado o simplemente ejecutar una acción que no requiera devolución de resultados al programa. Liceo Militar de Honduras | Luis E. Fajardo

Slide 5

Slide 5 text

Principales tareas de una función Las funciones en general deben cumplir con las siguientes tareas: aceptar valores (argumentos). realizar cálculos o procedimientos. entregar resultados al programa (de forma ímplicita o explícita). Liceo Militar de Honduras | Luis E. Fajardo

Slide 6

Slide 6 text

Las funciones en C Las formas básicas de función en C pueden estar compuestas de la siguiente manera: Tienen un tipo de dato asociado. Los tipos de datos más comunes con los que se identifica una función son: int , double , char , char* , void . Tienen un nombre que las identifica con respecto a las demás funciones y variables del programa. Pueden tener cero o más argumentos. Cada argumento debe tener un tipo de dato asociado. Pueden devolver un valor o una serie de valores al programa, como también pueden haber funciones que no devuelven nada. Liceo Militar de Honduras | Luis E. Fajardo

Slide 7

Slide 7 text

Las funciones en C Las funciones siempre son invocadas desde otras funciones, si una función no se invoca desde ninguna otra función del programa solo estará ocupando espacio en el archivo de código fuente. La función main() no puede ser invocada por ninguna función, ya que el compilador se encarga de buscar a esta en el código fuente y utilizarla como punto de entrada al programa. La función main() se considera de acceso restringido dentro del código fuente (solo el compilador tiene el permiso de acceso a la función). Liceo Militar de Honduras | Luis E. Fajardo

Slide 8

Slide 8 text

Sintaxis de una función de C ( ) { return } tipo dato: el tipo de dato define la naturaleza del valor que devolverá la función (entero, decimal, caracter, etc). nombre funcion: es el nombre que identifica a la función con respecto a las demás funciones y variables del programa. argumentos: son valores que recibe la función que son utilizados durante la ejecución de la misma. return: sirve como punto de salida de la función. Una función puede tener varios puntos de salida. valor: es el dato que devuelve la función. Liceo Militar de Honduras | Luis E. Fajardo

Slide 9

Slide 9 text

Sintaxis de una función de C Cuando una función es creada se le suele llamar argumentos a la lista de variables que esta puede contener entre los paréntesis. int funcion(arg1, arg2, arg3) { declaraciones... } La lista de variables entre paréntesis (arg1, arg2, arg3) se les llama argumentos. Liceo Militar de Honduras | Luis E. Fajardo

Slide 10

Slide 10 text

Sintaxis de una función de C Cuando una función es invocada desde otra función se le suele llamar parámetros a la lista de valores que esta puede contener entre los paréntesis. int main(int argc, char *argv[]) { int result = funcion(23, 12, 44); } La lista de valores entre paréntesis (23, 12, 44) se les llama parámetros. Liceo Militar de Honduras | Luis E. Fajardo

Slide 11

Slide 11 text

Ejemplos de funciones Liceo Militar de Honduras | Luis E. Fajardo

Slide 12

Slide 12 text

Funciones que retornan un valor int suma(int valor1, int valor2) { int resultado = valor1 + valor2; return resultado; } Si a la función no se le especifica un punto de salida (palabra reservada return ) se genera un error en tiempo de compilación. Liceo Militar de Honduras | Luis E. Fajardo

Slide 13

Slide 13 text

Llamadas a funciones que retornan valores #include int main(int argc, char const *argv[]) { int resultado = suma(34, 16); printf("suma: %d\n", resultado); return 0; } Liceo Militar de Honduras | Luis E. Fajardo

Slide 14

Slide 14 text

Funciones que no retornan valores void imprimirSuma(int valor1, int valor2) { printf("valor 1: %d\n", valor1); printf("valor 2: %d\n", valor2); printf("suma: %d\n", valor1 + valor2); } las funciones que no retornan valores se identifican con la palabra reservada void . Liceo Militar de Honduras | Luis E. Fajardo

Slide 15

Slide 15 text

Llamadas a funciones que no retornan valores #include int main(int argc, char const *argv[]) { // llamada a funcion que no retorna valores imprimirSuma(34, 16); return 0; } Liceo Militar de Honduras | Luis E. Fajardo

Slide 16

Slide 16 text

Funciones sin argumentos int multiplicar() { int valor1 = 5; int valor2 = 25; int resultado = valor1 * valor2; return resultado; } void imprimir() { char* nombre = "Jhon"; char* apellido = "Doe"; printf("Nombre completo: %s %s\n", nombre, apellido); } Liceo Militar de Honduras | Luis E. Fajardo

Slide 17

Slide 17 text

Llamadas a funciones sin argumentos #include int main(int argc, char const *argv[]) { // llamada a funciones sin argumentos int resultado = multiplicar(); printf("multiplicacion: %d\n", resultado); imprimir(); return 0; } Liceo Militar de Honduras | Luis E. Fajardo

Slide 18

Slide 18 text

Posibles errores de compilación al trabajar con funciones el nombre de la función ya se encuentra definido en otra parte del programa. Liceo Militar de Honduras | Luis E. Fajardo

Slide 19

Slide 19 text

Posibles errores de compilación al trabajar con funciones el nombre de la función ya se encuentra definido en otra parte del programa. int multiplicar() { int valor1 = 5; int valor2 = 25; int resultado = valor1 * valor2; return resultado; } int main(int argc, char const *argv[]) { int multiplicar = 5 * 8; printf("multiplicacion: %d\n", multiplicar()); imprimir(); return 0; } Liceo Militar de Honduras | Luis E. Fajardo

Slide 20

Slide 20 text

Posibles errores de compilación al trabajar con funciones el tipo de dato retornado no coincide con el tipo de dato definido en la función. Liceo Militar de Honduras | Luis E. Fajardo

Slide 21

Slide 21 text

Posibles errores de compilación al trabajar con funciones el tipo de dato retornado no coincide con el tipo de dato definido en la función. double convertirTemperatura(double fahrenheit) { double celsius = (fahrenheit - 32) * 5 / 9; return "celsius"; } Liceo Militar de Honduras | Luis E. Fajardo

Slide 22

Slide 22 text

Posibles errores de compilación al trabajar con funciones el tipo de dato retornado no coincide con el tipo de dato definido en la función. void imprimirSuma(int valor1, int valor2) { printf("valor 1: %d\n", valor1); printf("valor 2: %d\n", valor2); return valor1 + valor2; } Liceo Militar de Honduras | Luis E. Fajardo