Facultad Politécnica
Universidad Nacional del Este
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
Las funciones son una herramienta indispensable para el
programador, tanto las funciones creadas por él mismo
como las que le son proporcionadas por otras librerías,
cualquiera que sea el caso, las funciones permiten
automatizar tareas repetitivas, encapsular el código que
utilizamos, e incluso mejorar la seguridad, confiabilidad y
estabilidad de nuestros programas.
Dominar el uso de funciones es de gran importancia,
permiten modularizar nuestro código, separarlo según las
tareas que requerimos, por ejemplo una función para
abrir, otra para cerrar, otra para actualizar, etc.
básicamente una función en nuestro código debe
contener la implementación de una utilidad de nuestra
aplicación, es decir que por cada utilidad básica (abrir,
cerrar, cargar, mover, etc.) sería adecuado tener al
menos una función asociada a ésta.
2
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
¿En qué consiste una función?
Es un bloque de líneas de instrucciones que realiza una tarea específica y que puede ser diseñada,
implementada y depurada de forma independiente al resto del código. Cada función realiza una sola
tarea. Para que se ejecuta, debemos llamar a la función, desde la función principal del main().
El objetivo de programar a través de funciones es utilizar el concepto de divide y vencerás. Cuando se
tenga un problema bastante grande, entonces se subdivide en pequeñas acciones para que sea más fácil
tratar.
3
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
En las funciones juegan un papel muy importante las variables, estas pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la ejecución del programa, y son globales, ya que
pueden ser llamadas, leídas, modificadas, etc; desde cualquier función, se definen antes del main().
Variables Locales: Estas, pueden ser utilizadas únicamente en la función que hayan sido declaradas.
¿Cómo se define una función en C++?
La sintaxis es la siguiente:
tipo nombre(tipo var1, tipo va2,… tipo varn){
conjunto de instrucciones;
}
Es importante tener en cuenta que el tipo de datos de la función es el tipo de datos que va a retornar
dicha función. Lo que se pone entre paréntesis después del nombre de la función son los parámetros o
argumentos de la función, todos van a ser variables que vamos a utilizar en la función.
4
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
Las buenas prácticas de la programación nos indican la forma en que debemos escribir un programa
utilizando funciones.
Las librerías
Prototipo de función
Int main(){
Conjunto de instrucciones;
Return valor;
}
Definiciones de función
El prototipo de función es la forma en que le decimos al programa que dicha función existe y va a retornar
tal valor y va a tener tal parámetro.
5
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
PASO DE PARÁMETROS POR VALOR.
Se hace una copia local de las variables que van como argumento de la función.
Ejemplo 1.1 de funciones:
Crear un programa que permita leer 2 números e imprimir el mayor de ellos, utilizando una función.
int main(){
int n1, n2, may; int num_mayor(int x, int z){
#include<iostream> cout<<"\n Ingrese primer valor: "; if(x>z){
using namespace std; cin>>n1; return x;
cout<<"\n Ingrese segundo valor: "; }else{
int num_mayor(int x, int z); cin>>n2; return z;
may= num_mayor(n1, n2); }
cout<<"\n El valor mayor es: "<<may; }
return 0;
}
6
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
PASO DE PARÁMETROS POR VALOR.
Se hace una copia local de las variables que van como argumento de la función.
Ejemplo 1.2 de funciones:
Crear un programa que permita leer 2 números e imprimir el mayor de ellos, utilizando una función. (Imprimir
directamente desde la función, sin asignar a una variable)
int main(){
int num_mayor(int x, int z){
int n1, n2;
if(x>z){
cout<<"\n Ingrese primer valor: ";
#include<iostream> return x;
cin>>n1;
using namespace std; }else{
cout<<"\n Ingrese segundo valor: ";
return z;
cin>>n2;
int num_mayor(int x, int z); }
cout<<"\n El valor mayor es: "<<num_mayor(n1, n2);
}
return 0;
}
7
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
Ejemplo 2 de funciones:
Realizar la operación suma de dos números enteros ingresado por el usuario . Utilizar funciones para la
operación.
int main(){
int a,b,s; int suma(int x,int z){
cout<<"\n Ingrese primer valor: "; return(x+z);
#include<iostream> }
using namespace std; cin>>a;
cout<<"\n Ingrese segundo valor: ";
int num_mayor(int x, int z); cin>>b;
s=suma(a,b);
cout<<"\n La suma de los valores es: "<<s;
return 0;
}
Las variables utilizadas generalmente son locales, pero si es que queremos que funcione como variables
globales, se debe escribir su formato antes del main().
Cuando la función no retorna un valor, es decir, muestra los resultados en la misma función entonces el
tipo de datos de la función debe ser void(), no retorna nada.
8
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
Ejemplo 3 de funciones:
Escribir una función llamada mult () que acepte dos valores en punto flotante como parámetros, multiplique
estos dos números y despliegue el resultado.
#include<iostream> void pedirDatos(){
using namespace std; int main(){ cout<<"\n Ingrese 2 numeros: ";
cin>>num1>>num2;
//prototipos de funciones pedirDatos(); }
void pedirDatos(); mult(num1 , num2);
void mult(float x, float y); void mult(float x, float y){
return 0; float multiplicacion = x*y;
float num1, num2; } cout<<"\n la multiplicacion es:"<<multiplicacion<<endl;
}
int suma(int x, int z);
9
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
PASO DE PARÁMETRO POR REFERENCIA
/*Funciones1. Paso de parámetro por referencia*/
int main(){
void numNuevo(int& num_a, int& num_b){
int num1, num2;
#include<iostream> cout<<"\n Ingrese primer valor entero: cout<<"\n Primer valor es:
using namespace std; "; cin>>num1; "<<num_a;
cout<<"\n Ingrese segundo valor cout<<"\n Segundo valor es:
void numNuevo(int&, int&); entero: "; cin>>num2; "<<num_b;
numNuevo(num1, num2);
//num_a = 100;
//cout<<"\n Nuevo valor del primer //num_b = 80;
numero es: "<<num1;
//cout<<"\n Nuevo valor del segundo }
numero es: "<<num2;
return 0;
}
10
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
PASO DE PARÁMETRO POR REFERENCIA
/*Funciones2. Paso de parámetro por referencia. Desarrollar un programa que permita leer 2 valores,
calcular la suma y el producto mediante funciones. La función debe recibir los 2 valores leidos, y
devolver multiples resultados (suma, producto)*/
int main(){
int num1, num2, suma=0, producto=0; void calculosMultiples(int num_a, int
#include<iostream> num_b, int& suma, int& producto){
using namespace std; cout<<"\n Ingrese primer valor entero: suma=num_a+num_b;
"; cin>>num1; producto=num_a*num_b;
void calculosMultiples(int, int, cout<<"\n Ingrese segundo valor }
int&, int&); entero: "; cin>>num2;
calculosMultiples(num1, num2, suma,
producto);
cout<<"\n La suma es: "<<suma;
cout<<"\n El producto es: "<<producto;
return 0;
}
11
Facultad
INTRODUCCIÓN A ESTRUCTURA DE DATOS
FUNCIONES
PASO DE PARÁMETRO POR REFERENCIA
/*Funciones3. Paso de parámetro por referencia. Desarrollar un programa que permita leer 2 numeros
enteros, e intercambiar sus valores a través de funciones.*/
int main(){
#include<iostream> int num1, num2;
void intercambio(int& num_a, int& num_b){
using namespace std; int auxiliar;
cout<<"\n Ingrese primer valor entero:
"; cin>>num1; auxiliar=num_a;
void intercambio(int&, int&); num_a=num_b;
cout<<"\n Ingrese segundo valor
entero: "; cin>>num2; num_b=auxiliar;
intercambio(num1, num2); }
cout<<"\n Los valores intercambiados
son: ";
cout<<"\n Primer valor: "<<num1;
cout<<"\n Segundo valor: "<<num2;
return 0;
}
12
Facultad