Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Funciones en C++

Luis Fajardo
September 26, 2022

Funciones en C++

Panorama general de las funciones en los lenguajes de programación:
- Para que sirve una función.
- Ventajas del uso de funciones.
- Principales tareas de una función.
- Las funciones en C++.
- Sintaxis de una función de C++.
- Ejemplos de funciones.
- Ejercicios prácticos utilizando funciones.

Luis Fajardo

September 26, 2022
Tweet

More Decks by Luis Fajardo

Other Decks in Programming

Transcript

  1. Funciones de C++ Una función es un bloque de código

    que ejecuta una acción... Liceo Militar de Honduras | Luis E. Fajardo
  2. 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 legibilidad 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 2
  3. 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 la repetición de líneas de código y procedimientos en distintas partes del programa (reutlizació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 3
  4. Las funciones cumplen con estos requisitos... Deben identificarse con tipo

    de dato específico. Pueden ser tipos de datos primitivos o compuestos. 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 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 4
  5. 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 ímplícita o explícita). Liceo Militar de Honduras | Luis E. Fajardo 5
  6. 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 , string y void . Tienen un nombre que las identifica con respecto a las demás funciones y variables del programa. Puede 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 devuelvan nada. Liceo Militar de Honduras | Luis E. Fajardo 6
  7. 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 7
  8. Sintaxis de una función de C++ <tipo dato> <nombre funcion>(

    <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 8
  9. Sintaxis de una función de C++ Cuando una función es

    creada se le suele llamar argumentos a la lista de datos que esta puede contener entre los paréntesis. int funcion(arg1, arg2, arg3) { declaraciones... } La lista de datos entre paréntesis (arg1, arg2, arg3) se les llama argumentos. Liceo Militar de Honduras | Luis E. Fajardo 9
  10. 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 datos que esta puede contener entre los paréntesis. int main(int argc, char *argv[]) { int result = funcion(23, 12, 44); } La lista de datos entre paréntesis (23, 12, 44) se les llama parámetros. Liceo Militar de Honduras | Luis E. Fajardo 10
  11. Funciones que retornan un valor int suma(int valor1, int valor2)

    { int resultado = valor1 + valor2; return resultado; } std::string nombreCompleto(std::string nombre, std::string apellido) { std::string resultado = nombre + " " + apellido; 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 12
  12. Llamadas a funciones que retornan valores #include <iostream> int main(int

    argc, char *argv[]) { // llamadas a funciones que retornan valores int resultado = suma(34, 16); std::cout << "suma: " << resultado << std::endl; std::cout << "nombre completo: " << nombreCompleto("Carl", "Smith") << std::endl; } Liceo Militar de Honduras | Luis E. Fajardo 13
  13. Llamadas a funciones que retornan valores #include <iostream> int main(int

    argc, char *argv[]) { // llamadas a funciones que retornan valores int resultado = suma(34, 16); std::cout << "suma: " << resultado << std::endl; std::cout << "nombre completo: " << nombreCompleto("Carl", "Smith") << std::endl; } Liceo Militar de Honduras | Luis E. Fajardo 14
  14. Funciones que no retornan valores void imprimirSuma(int valor1, int valor2)

    { std::cout << "valor 1: " << valor1 << std::endl; std::cout << "valor 2: " << valor2 << std::endl; std::cout << "suma: " << valor1 + valor2 << std::endl; } void imprimirNombreCompleto(std::string nombre, std::string apellido) { std::cout << "Nombre Completo: " << nombre << " " << apellido; } las funciones que no retornan valores se identifican con la palabra reservada void . Liceo Militar de Honduras | Luis E. Fajardo 15
  15. Llamadas a funciones que no retornan valores #include <iostream> int

    main(int argc, char *argv[]) { // llamadas a funciones que no retornan valores imprimirSuma(34, 16); imprimirNombreCompleto("Carl", "Smith"); } Liceo Militar de Honduras | Luis E. Fajardo 16
  16. Llamadas a funciones que no retornan valores #include <iostream> int

    main(int argc, char *argv[]) { // llamadas a funciones que no retornan valores imprimirSuma(34, 16); imprimirNombreCompleto("Carl", "Smith"); } Liceo Militar de Honduras | Luis E. Fajardo 17
  17. Funciones sin argumentos int multiplicar() { int valor1 = 5;

    int valor2 = 25; int resultado = valor1 * valor2; return resultado; } void imprimir() { std::string nombre = "Jhon"; std::string apellido = "Doe"; std::cout << "Nombre completo: " << nombre << " " << apellido << std::endl; } Liceo Militar de Honduras | Luis E. Fajardo 18
  18. Llamadas a funciones sin argumentos #include <iostream> int main(int argc,

    char *argv[]) { // llamada a funciones sin argumentos int resultado = multiplicar(); std::cout << "multiplicacion: " << resultado << std::endl; imprimir(); return 0; } Liceo Militar de Honduras | Luis E. Fajardo 19
  19. Llamadas a funciones sin argumentos #include <iostream> int main(int argc,

    char *argv[]) { // llamada a funciones sin argumentos int resultado = multiplicar(); std::cout << "multiplicacion: " << resultado << std::endl; imprimir(); return 0; } Liceo Militar de Honduras | Luis E. Fajardo 20
  20. 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 21
  21. Posibles errores de compilación al trabajar con funciones el nombre

    de la función ya se encuentra definido en otra parte del programa. std::string nombreCompleto() { return "Mike Petterson"; } int main(int argc, char *argv[]) { std::string nombreCompleto = "Scott Meyer"; } Liceo Militar de Honduras | Luis E. Fajardo 22
  22. 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 23
  23. 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 24
  24. 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 imprimirDatosCliente() { int codigo = 5469; std::string nombre = "Jhon Smith"; int cantidad_productos = 10; double total_pagado = 1892.78; std::cout << "codigo cliente: " << codigo << std::endl; std::cout << "nombre cliente: " << nombre << std::endl; std::cout << "cantidad productos: " << cantidad_productos << std::endl; std::cout << "total pagado: " << total_pagado << std::endl; return total_pagado; } Liceo Militar de Honduras | Luis E. Fajardo 25
  25. Ejercicios con funciones Se necesita un programa de C++ que

    ejecute las cuatro operaciones aritméticas básicas haciendo uso de funciones. El programa deberá hacer las operaciones sobre dos números de tipo entero. Cada función deberá tomar de parámetros los valores sobre los cuales se hará la operación. Liceo Militar de Honduras | Luis E. Fajardo 26
  26. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 27
  27. Definiendo la función main() ... #include <iostream> int main(int agrc,

    char *argv[]) { return 0; } Liceo Militar de Honduras | Luis E. Fajardo 28
  28. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 29
  29. Definiendo los encabezados de funciones... #include <iostream> // encabezados de

    las funciones int sumar(int valor1, int valor2); int restar(int valor1, int valor2); int multiplicar(int valor1, int valor2); int dividir(int valor1, int valor2); int main(int agrc, char *argv[]) { return 0; } Liceo Militar de Honduras | Luis E. Fajardo 30
  30. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 31
  31. Construyendo la función sumar... int sumar(int valor1, int valor2) {

    int resultado = valor1 + valor2; return resultado; } Liceo Militar de Honduras | Luis E. Fajardo 32
  32. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 33
  33. Construyendo la función restar... int restar(int valor1, int valor2) {

    int resultado = valor1 - valor2; return resultado; } Liceo Militar de Honduras | Luis E. Fajardo 34
  34. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 35
  35. Construyendo la función multiplicar... int multiplicar(int valor1, int valor2) {

    return valor1 * valor2; } Liceo Militar de Honduras | Luis E. Fajardo 36
  36. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 37
  37. Construyendo la función dividir... int dividir(int valor1, int valor2) {

    return valor1 / valor2; } Liceo Militar de Honduras | Luis E. Fajardo 38
  38. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 39
  39. Declarando variables en la funcion main() ... #include <iostream> int

    main(int argc, char *argv[]) { int suma = 0, resta = 0, multiplicacion = 0, division = 0; return 0; } Liceo Militar de Honduras | Luis E. Fajardo 40
  40. Invocando las funciones desde la funcion main() ... #include <iostream>

    int main(int argc, char *argv[]) { int suma = 0, resta = 0, multiplicacion = 0, division = 0; suma = sumar(25, 35); resta = restar(40, 15); multiplicacion = multiplicar(5, 25); division = dividir(300, 6); return 0; } Liceo Militar de Honduras | Luis E. Fajardo 41
  41. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 42
  42. Mostrando los resultados en pantalla... #include <iostream> int main(int argc,

    char *argv[]) { int suma = 0, resta = 0, multiplicacion = 0, division = 0; suma = sumar(25, 35); resta = restar(40, 15); multiplicacion = multiplicar(5, 25); division = dividir(300, 6); std::cout << "suma: " << suma << std::endl; std::cout << "resta: " << resta << std::endl; std::cout << "multiplicacion: " << multiplicacion << std::endl; std::cout << "division: " << division << std::endl; return 0; } Liceo Militar de Honduras | Luis E. Fajardo 43
  43. Pasos a seguir Definir la función main() . Definir los

    encabezados de funciones. Construir la función de sumar. Construir la función de restar. Construir la función de multiplicar. Construir la función de dividir. Invocar las funciones de operaciónes aritméticas desde la función main() y guardar cada resultado en una variable. Mostrar los resultados devueltos por las funciones. Liceo Militar de Honduras | Luis E. Fajardo 44
  44. Ejecutando el programa... #include <iostream> int main(int argc, char *argv[])

    { int suma = 0, resta = 0, multiplicacion = 0, division = 0; suma = sumar(25, 35); resta = restar(40, 15); multiplicacion = multiplicar(5, 25); division = dividir(300, 6); std::cout << "suma: " << suma << std::endl; std::cout << "resta: " << resta << std::endl; std::cout << "multiplicacion: " << multiplicacion << std::endl; std::cout << "division: " << division << std::endl; return 0; } Liceo Militar de Honduras | Luis E. Fajardo 45