You are on page 1of 36

Funciones

Funciones
• Una función es un miniprograma dentro de un programa.
• Las funciones contienen varias sentencias o instrucciones bajo un
solo nombre, que un programa puede utilizar una o más veces para
ejecutar dichas sentencias. Las funciones ahorran espacio,
reduciendo repeticiones y haciendo más fácil la programación,
proporcionando un medio de dividir un proyecto grande en módulos
pequeños más manejables.
• El programa se divide en muchos módulos (rutinas pequeñas
denominadas funciones), que producen muchos beneficios: aislar
mejor los problemas, escribir programas correctos más rápido y
producir programas que son más fáciles de mantener.
• Así, pues, un programa pequeño en C++ se compone de varias
funciones, cada una de las cuales realiza una tarea principal.
• Las funciones son llamadas desde la función main o desde otras
funciones
Funciones
Elementos fundamentales:
• Los elementos fundamentales de una función son:
• Su nombre, que se usa para llamarla (invocarla)
Ejemplo: suma
• El resultado que devuelve
Ejemplo: resp
• Los datos que usa para realizar su tarea, llamados parámetros o
argumentos
Ejemplo: num1, num2
• Las instrucciones que realizan la tarea
Ejemplo de programar con funciones
Por ejemplo, si está escribiendo un programa que obtenga una lista de caracteres del
teclado, los ordene alfabéticamente y los visualice a continuación en la pantalla, se
pueden escribir todas estas tareas en un único gran programa función main ()

Sin el uso de funciones


Ejemplo de programar con funciones
Usando de funciones

}
Ejemplo de programar con funciones

Cada función realiza una determinada tarea y cuando se


ejecuta return se retorna al punto en que fue llamado
por el programa o función principal.
Funciones
DECLARACION DE UNA FUNCION (PROTOTIPO)
Para poder usar una función, primero hay que
declararla, igual que se hace con las variables
• Una declaración de función indica al compilador el nombre de
la función que se está invocando en el programa.
• Una declaración informa de la existencia de la función, que está
• implementada más adelante (definida)
• Tiene que estar antes de que se utilice por primera vez esa
función
Funciones
DECLARACION DE UNA FUNCION
Las declaraciones de la funciones (prototipos) se sitúan normalmente al
principio de un programa, antes de la definición de la primera función
main ().El compilador utiliza los prototipos para validar que el número y
los tipos de datos de los argumentos reales de la llamada a la función
son los mismos que el número y tipo de argumentos formales en la
función llamada

Ejemplos de prototipos de funciones


int potencia (int base, int exponente);
float suma (float n1, float n2);
void mostrarDatos (int a, int b);
int leerDato(void);
Funciones
DEFINICION DE UNA FUNCION (ESTRUCTURA DE UNA FUNCIÓN)
La definición de una función es la estructura de la misma
• Además del prototipo de la función hay que escribir la definición de la
función
• Es el código de la función propiamente dicho, las instrucciones con las que la
función realiza las tareas para las que ha sido diseñada.
• Puede ubicarse en cualquier lugar del programa, con dos
restricciones:
• debe hallarse después de su prototipo
• no puede estar dentro de la definición de otra función (incluida main)
Funciones
• DEFINICION DE UNA FUNCION
Funciones
Definición de una función:
• Cuerpo de la función: conjunto de instrucciones
que se ejecutan cada vez que se realiza una
llamada a la función
• entre llaves
LLAMADA A UNA FUNCION
LLAMADA A UNA FUNCION
La llamada (invocación) a una función se hace incluyendo su
nombre en una expresión o instrucción, ya sea en el programa
principal o de otra función.

• El nombre de la función debe ir seguido de la lista de


parámetros separados por comas y encerrados entre
paréntesis.
• Si la función no acepta parámetros se utilizan los paréntesis sin
nada entre ellos. Ejemplo
LLAMADA A UNA FUNCION
A los parámetros que aparecen en la llamada se les denomina
parámetros reales ,pueden ser variables, constantes y expresiones.
Ejemplo
o suma(numero1,numero2)
o suma(8,10)
o suma((a+b),(c*d))
El nombre de la función debe ir seguido de la lista de
parámetros separados por comas y encerrados entre
paréntesis.

• Si la función no acepta parámetros se utilizan los paréntesis sin


nada entre ellos. Ejemplo
o visualizar();
o Leer_numero();
SINTAXIS
pseudocodigo

Diagrama de flujo
INICIO nombre
de la funcion

acciones

FIN_funcion
Ejemplo suma de 2 números reales
ALGORITMO
 Implementar Programa
Principal(crear la funcion principal) DIAGRAMA DE FLUJO
 Implementar función que sume PROGRAMA PRINCIPAL
dos números
INICIO
 Realizar llamado a la función
PSEUDOCODIGO
PROGRAMA PRINCIPAL
numero1,numero2

Inicio del proceso


Declarar variables
resultado=suma(numero1,numero2)
Resultado, numero1, numero2: reales
LEER; numero1, numero2
resultado= suma (numero1,numero2) “La suma es=”,
resultado
ESCRIBIR; “La suma es =”, resultado
Fin del proceso
FIN
Diagrama de flujo
Ejemplo suma de 2 números reales
DIAGRAMA DE FLUJO de función suma
PSEUDOCODIGO función suma

Funcion suma (num1: real, num2: real): real INICIO suma


Declarar variables
resp: real
resp=0;
Inicio resp=num1+num2

resp= num1+num2
Retornar (resp)
retornar (resp)
Fin_Funcion_suma

FIN_funcion
Diagrama de flujo
Ejemplo suma de 2 números reales
#include <iostream>
#include <stdlib.h>
using namespace std;
int suma(int num1,int num2);// declarar funcion suma

int main()
{
int numero1, numero2;// variables para ingresar dos numeros por el teclado
int resultado;
cin>>numero1;
cin>>numero2;
resultado=suma(numero1,numero2);
cout<< "La suma es =\n"<< resultado<<endl;

system("pause");
return 0;
}
int suma(int num1,int num2)// definer la function
{
int resp;
resp=num1+num2;
return resp;

}
PARÁMETROS DE UNA FUNCiÓN
• Paso de parámetros
• En la llamada a una función se pasan datos del programa principal a esa función
¿Cómo? Son los datos que la función recibe desde el programa que la llama
• Es común usar tambien el termino argumentos como sinonimo de parametros

 Se establece automáticamente una correspondencia entre los parámetros de la


llamada (reales) y los del subprograma (formales).

 Esta correspondencia está definida por la posición:


• El primer parámetro real se corresponde con el primer parámetro
formal; el segundo parámetro real con el segundo formal y así
sucesivamente
• Deben coincidir en número y tipo de datos

Dos formas de pasar parámetros


• Por valor – se pasa una copia
• Por variable – se pasa un puntero
PARÁMETROS DE UNA FUNCiÓN
• Puede haber uno, ninguno o más de uno ,si hay más de uno, se escriben separados por
comas.
• Si no hay ninguno se escribe void o se deja en blanco
• El valor de los parámetros puede modificarse o no dentro de la función

EJEMPLO
• Suponiendo que se tenga la declaración de una función círculo con tres argumentos
• Para cada parámetro hay que indicar su nombre y tipo de datos ,se puede omitir el
nombre (muy desaconsejable)

Cuando se llama a circulo se deben pasar tres parámetros a esta función. En el


punto de llamada cada parámetro puede ser una constante, una variable o
una expresión, como en el siguiente ejemplo
PARÁMETROS DE UNA FUNCiÓN
Paso de parámetros por valor
 La función recibe una copia de los valores de los parámetros
reales
• Esta copia queda almacenada en el parámetro formal (parámetro de la
función receptora)

En la técnica de paso de parámetro por valor, la función no puede modificar la


variable de la función (parámetro pasado).

Se debe usar el paso de parámetros por valor siempre que los argumentos no se van a
modificar dentro de la función

¿Y SI SE QUIERE MODIFICAR EL VALOR DE LOS PARÁMETROS


PASADOS A UNA
FUNCIÓN Y DEVOLVER ESTE VALOR MODIFICADO?
• USAR ENTONCES PASO POR REFERENCIA
PARÁMETROS DE UNA FUNCiÓN
Ejemplo de Paso de parámetros por valor
La siguiente Figura muestra la acción de pasar un argumento por valor. La variable real i no
se pasa, pero el valor de i, 6, se pasa a la función receptora.

Paso de la variable í por valor.

Nota
El método por defecto de pasar parámetros es por valor
PARÁMETROS DE UNA FUNCiÓN
Paso de parámetros por referencia
Cuando una función debe modificar el valor del parámetro pasado y devolver este valor
modificado a la función llamadora, se ha de utilizar el método de paso de parámetro
por referencia o dirección.
Se pasa a la función una referencia a la dirección de memoria en la que está
almacenado el dato que se quiere modificar (puntero a la variable) , Y no una nueva
variable con una copia del parámetro real como se hace en el paso por valor

En este método el compilador pasa la dirección de memoria del valor del parámetro a la
función.

Cuando se modifica el valor del parámetro (la variable local), este valor queda
almacenado en la misma dirección de memoria, por lo que al retornar a la función
llamadora la dirección de la memoria donde se almacenó el parámetro contendrá el
valor modificado.
Después de la llamada a la función, los valores
se habrán modificado en el programa
principal
PARÁMETROS DE UNA FUNCiÓN
PARÁMETROS DE UNA FUNCiÓN
PARÁMETROS DE UNA FUNCiÓN
Paso de parámetros por referencia
Ejemplo
La función intercambio () utiliza las expresiones m y n para acceder a los enteros
referenciados por las direcciones int de las variables i y j en la llamada de prueba
siguiente:

La llamada a la función intercambio () debe pasar las direcciones de las variables


intercambiadas.
La versión de la función intercambio () que utiliza parámetros referencia es
Paso de parámetros por referencia
Diferencia entre los parámetros por valor y por referencia

Las reglas que se han de seguir cuando se utilizan parámetros


valor y referencia son las siguientes:
• los parámetros valor (declarados sin &) reciben copias de los
valores de los argumentos que se les pasan;
• la asignación a parámetros valor de una función nunca cambian
el valor del argumento original pasado a los parámetros;
• los parámetros referencia (declarados con &) reciben la
dirección de los argumentos pasados;
• en una función, las asignaciones a parámetros referencia
cambian los valores de los argumentos
Paso de parámetros por referencia
Diferencia entre los parámetros por valor y por referencia
Valor devuelto por una función
• Tipo de dato de retorno
• Una función puede devolver un único valor. El resultado se muestra con una
sentencia return cuya sintaxis es:

Ejemplos de funciones que devuelven distintos tipos de resultados:

Consejo
Aunque no es obligatorio el uso de la sentencia return en la última
línea, se recomienda su uso, ya que ayuda a recordar el retorno en
ese punto a la función llamadora.
Valor devuelto por una función

Tipo de dato de retorno


• Si una función no devuelve un resultado, se puede utilizar el tipo void,
que se considera como un tipo de dato especial.

Si se omite un tipo de retorno para una función, como en

el compilador supone que el tipo de dato devuelto es int. Aunque el uso de


int es opcional, por razones de claridad y consistencia se recomienda su uso
Valor devuelto por una función
Tipo de dato de retorno
• La ejecución de una llamada a la función termina si no se
encuentra ninguna sentencia return; en este caso, la ejecución
continúa hasta la llave final del cuerpo de la función.
• Si el tipo de retorno es void, la sentencia return se puede escribir
como
Valor devuelto por una función
TENER EN CUENTA :
• Una función realiza una serie de tareas y devuelve un resultado también
llamado valor de retorno
• Al declarar la función hay que definir el tipo de datos de ese resultado puede
ser int, float, double, char
• No puede devolver un vector ni una matriz
• Sí puede devolver un puntero a un vector o a una matriz
• También puede no devolver ningún valor ,en ese caso se declara que el tipo de
dato devuelto es void
Estructura de un programa en C++ con funciones
• EJEMPLO
• Cree el siguiente ejemplo para visualizar datos en la pantalla

You might also like