Вы находитесь на странице: 1из 19

Introducción a Funciones en

C++
Adaptado por:
Msc. Maria Fernanda Medina R.
Ing. Maria Eugenia Rincón S.

Paso de Parámetros por Referencia en C++ por Maria E. Rincón S. & Maria F. Medina R. se distribuye bajo una Licencia Creative Commons
Atribución-NoComercial-SinDerivadas 4.0 Internacional. Basada en una obra en https://www.utb.edu.co/. Permisos más allá del alcance de
esta licencia pueden estar disponibles en https://www.utb.edu.co/.
1
Concepto de función
Las funciones permiten al programador modularizar un programa, al separar sus
tareas en unidades autocontenidas. Algunas veces, estas funciones se denominan
funciones definidas por el usuario, o funciones definidas por el programador.

Línea de encabezado de función Encabezado de función

{
declaraciones de constantes y variables o Cuerpo de la
cualquier otra instrucción de C++; función
}

2
¿Por qué funciones?

Hay varias razones para modularizar un programa


con funciones:
 Divide y vencerás: Facilita el proceso de desarrollo
de programas al construirlo a partir de pizas
pequeñas y simples.
 Reutilización de software: Consiste en utilizar
funciones existentes como bloques de
construcción para crear nuevos programas.
 Evitar repetir código
 Fácil depuración y mantenimiento del programa

3
Observa la siguiente situación…
Suponga que necesite encontrar la suma de los enteros desde el 1 hasta el 10, del 20 al 40 y del 45 al 90. Si
usted crea un programa para cada uno de esos ítems su código podría ser como el siguiente:

Observa que él segmento de código que realiza la


sumatoria es similar para los tres casos, excepto en el
inicio y fin. ¿Por qué no escribir el código una sola vez y
reutilizarlo?

4
Funciones en C++
Por lo general, los programas en C++ se escriben mediante la
combinación de nuevas funciones y clases que escribimos
con funciones “pre – empaquetadas” y clases disponibles en
la biblioteca estándar de C++.
C++ proporciona una extensa colección de funciones para
realizar cálculos matemáticos comunes, manipulación de
cadenas, manipulación de caracteres, entrada / salida,
comprobación de errores, etc.
Las funciones de la biblioteca estándar de C++ se proporciona
como parte del entorno de programación de C++.

5
Funciones matemáticas de la biblioteca
cmath
Función Descripción Ejemplo
ceil ( x ) redondea 𝑥 al entero valor más pequeño, no menor a 𝑥 ceil ( 9.2 ) es 10.0 ceil( -9.8 ) es -9.0

cos ( x ) coseno trigonométrico de 𝑥 (𝑥 está en radianes) cos( 0.0 ) es 1.0

exp ( x ) función exponencial 𝑒 𝑥 exp( 1.0 ) es 2.71828 exp( 2.0 ) es 7.38906

fabs ( x ) valor absoluto de 𝑥 fabs( 5.1 ) es 5.1 fabs( 0.0 ) es 0.0 fabs( -8.76 ) es 8.76

floor ( x ) redondea 𝑥 al entero más grande, no mayor a 𝑥 floor( 9.2 ) es 9.0 floor( -9.8 ) es -10.0

fmod ( x, y ) residuo de 𝓍/𝓎 como número de punto flotante fmod( 2.6, 1.2 ) es 0.2

log ( x ) logaritmo natural de 𝑥 ( base ℯ) log( 2.718282 ) es 1.0 log( 7.389056 ) es


2.0

Log10 ( x ) logaritmo natural de 𝑥 (base 10) log10( 10.0 ) es 1.0 log10( 100.0 ) es 2.0

pow ( x, y ) 𝑥 elevado a la potencia y (𝑥 𝑦 ) pow( 2, 7 ) es 128 pow( 9, .5 ) es 3

sin ( x ) seno trigonométrico de 𝑥 (𝑥 en radianes) sin( 0.0 ) es 0

sqrt ( x ) raíz cuadrada de 𝑥 ( donde 𝑥 es un valor no negativo) sqrt( 9.0 ) es 3.0

tan ( x ) tangente trigonométrica de 𝑥 (𝑥 en radianes) tan( 0.0 ) es 0

Para ver más: http://www.cplusplus.com/reference/cmath/


6
Prototipo de una función
Un prototipo de función o declaración de función declara una función. La sintaxis
de un prototipo de función, contiene: el tipo de datos que devuelve la función, el
nombre de la función y la lista de argumentos de la función, como se muestra a
continuación:
Tipo de dato que Nombre de la función Lista de tipos de datos de los parámetros
devuelve la función

7
Definición de una función
Una función consiste en el nombre de la función, parámetros, y cuerpo de la función.
Ejemplo: La siguiente función llamada mayor tiene dos parámetros num1 y num2, y retorna el número mayor.

Tipo de dato Nombre de la función Parámetro formal


que devuelve
la función

Invocación o llamado
de la función mayor
Cuerpo de la
función

Valor de retorno Parámetros


8
Prototipo y definición de una función

Si se define una función antes de invocarla, entonces su definición también sirve


como el prototipo de la misma, por lo que no es necesario un prototipo
separado. Si se invoca una función antes de definirla, y no tiene un prototipo de
función, se produce un error de compilación.

Como buena practica de ingeniería de software siempre se debe


proporcionar prototipo de funciones, ya que se evita fijar el
código al orden en el que se definen las funciones.

9
Observaciones de Ingeniería de Software

Cap 6. Deitel - Cómo programar C++. (9a. ed.) 10


Algunas consideraciones
Firmas de funciones: Es la porción de un prototipo de función que incluye el
nombre de la función y los tipos de sus argumentos. Ejemplo:

Coerción de argumentos: Obligar a que los argumentos tengan los tipos


especificados por las declaraciones de los parámetros. Por ejemplo, un programa
puede llamar a una función con un argumento entero, aun cuando el prototipo de
función especifique un argumento double; la función de todas maneras trabará
correctamente.

11
Llamado a las funciones
Suponga que tiene una función llamada cuadrado, que retorna el cuadrado de un número. Ejemplo
cuadrado ( 2 ) = 4.

Cuando llamamos la función cuadrado ( ) en la función principal queda así:

12
¿Cómo realiza el trabajo
internamente el S.O?
Para entender el modo en que C++ realiza las llamadas a las
funciones primero debes saber que es una pila, la cual es una
colección de elementos relacionados.
Ahora bien, piensa en una pila como la analogía de una pila de
platos. Cuando se coloca un plato en la pila, por lo general se coloca
en la parte superior: Lo que se conoce como meter el plato en la
pila. De manera similar, cuando se extrae un plato de la pila, siempre
se extrae de la parte superior: lo que se conoce como sacar el plato
de la pila.
Las pilas se denominan estructuras de datos “Ultimo en entrar,
primero en salir” (UEPS, o en inglés como LIFO); donde, el ultimo
elemento que se mete (inserta es el primero que se saca.

Letra pequeña: Este es un tema de cursos superiores, sin embargo usted está en la
capacidad de abstraerse y entender el concepto general de una pila

13
Ahora bien… Veamos
como funciona – Paso
1

Paso 1:
Se invoca la función principal
main()
la variable a toma el valor de 10,
a = 10
Cada vez que una función llama a
otra función se crea un registro
de activación que contiene la
dirección de retorno que necesita
la función a la que se llamó para
poder regresar a la función que
hizo la llamada.
14
Ahora bien… Veamos
como funciona – Paso
2

Paso 2:
La función principal main()
invoca a la función cuadrado()
y se crea el registro de activación
para la función cuadrado

15
Ahora bien… Veamos
como funciona – Paso
3

Paso 3:

- Una vez que la función cuadrado calcula el


cuadrado de su argumento, necesita regresar a
main; y ya no necesita la memoria para su variable
automática, x. Por ende, el marco de pila de
cuadrado se saca de la pila, con lo cual se
proporciona a cuadrado la dirección de retorno en
main (es decir, R2) y se pierde la variable
automática de cuadrado.

- Ahora la función main muestra el resultado de


llamar a cuadrado. Al llegar a la llave derecha de
cierre de main, su marco de pila se saca de la pila,
proporciona a main la dirección que requiere para
regresar al sistema operativo y, en este punto, la
variable automática de main (es decir, a) ya no
existe.

16
Regresando al tema…
A continuación algunos ejemplos de funciones que retornan valor con parámetros:
Ejemplo 1: Escriba una función
que retorne el cuadrado de un
número entero.

Ejemplo 2: Escriba una función


que retorne el cubo de un
número entero.

http://cpp.sh/2tno5n 17
Funciones que no retornan valor (void)
La palabra clave void es un tipo de valor de retorno especial, el cual indica que una función realizará
una tarea, pero no devolverá datos a la función que la llamó cuando complete su tarea.

Ejemplo 1: Escriba una función que


calcule el cuadrado de un número entero.

Ejemplo 2: Escriba una función que


calcule el cubo de un número entero.

http://cpp.sh/3rqzc 18
Libros de Referencia

Deitel (2014). Cómo programar C. (9a. ed.)


Pearson Educación. Tomado de
http://utb.basesdedatosezproxy.com:2121/

Gary J. Bronson (2006) C++ para ingeniería y


ciencias, 2a. ed.

19

Вам также может понравиться