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
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
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
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
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
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
<argumentos...> ) { return <valor> } 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
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
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
{ 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
{ 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
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
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
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
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
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