Funciones - TramixSakai ULP

Anuncio
Introducción a la Programación – Parte 9 – Funciones
Funciones
Introducción
Las funciones son de gran utilidad en los programas. Nos ayudan a que sean
más legibles y más cortos. Con ellas estructuramos mejor los programas. Hasta
ahora hemos trabajado siempre con una función, main. Cada vez que
hacíamos un nuevo programa y lo escribíamos dentro de las llaves de main,
estábamos definiendo la función main, que es la principal de cualquier
programa.
Una función sirve para realizar tareas concretas y simplificar el programa. Nos
sirve para evitar tener que escribir el mismo código varias veces. Además de
main también hemos utilizado otra función, system, que ya viene con las
librerías de c y la usabamos para ejecutar comandos, en particular “PAUSE”.
Sin embargo nosotros también podemos definir nuestras propias funciones.
Pocas veces se ve un programa un poco complejo que no use funciones.
Definición de una Función
Una función tiene el siguiente formato:
TIPO NOMBRE( PARAMETROS )
{
VARIABLES DE LA FUNCION
…
CUERPO DE LA FUNCIóN
…
return valor;
}
Vamos de a poco. Empecemos por el nombre de la función (“NOMBRE”). Al
igual que para las variables, para el nombre no se pueden usar más que letras,
números y el símbolo '_'. No se pueden usar ni acentos ni espacios. Además el
nombre de la función debe empezar por una letra, no puede empezar con un
número. El nombre de la función se usa para llamarla dentro del programa.
El TIPO: Cuando una función se ejecuta y termina puede devolver un valor.
Este valor puede ser de cualquiera de los tipos de variables que hemos visto
anteriormente (int, char, float, etc.). El valor que devuelve la función suele ser el
resultado de las operaciones que se realizan en la función, o si han tenido éxito
o no. Si no queremos que la función devuelva ningún valor, usaremos el tipo
void.
Variables de la Función: Dentro de la función podemos definir variables que
sólo tendrán validez dentro de la propia función. Si declaramos una variable en
una función no podemos usarla en otra, ni siquiera en la función main.
Cuerpo de la función: Aquí es donde va el código de la función.
Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP
Mariano Luzza - Coordinador
Introducción a la Programación – Parte 9 – Funciones
Return: Antes dijimos que la función devuelve un valor. La sentencia return se
usa para esto. El dato que se pone despues de return es el dato que se
devuelve. Puede ser cualquier expresión, como una constante, una variable, un
cálculo o la llamada a otra función. Debe ser del mismo tipo que TIPO. Si la
función tenía el tipo void, entonces return se puede omitir o se debe colocar sin
ningún valor, así:
return;
Parámetros: Estos son variables que se pasan como datos a una función.
Deben ir separados por una coma. Cada variable debe ir con su tipo de
variable.
Las funciones deben definirse antes de ser llamadas. En los ejemplos a
continuación se llama a la función desde main, así que tenemos que definirlas
antes que main. Esto lo veremos a continuación.
Ejemplos
Ejemplo 1. Función sin argumentos que no devuelve nada:
Este programa llama a la función saludar que muestra el mensaje "Hola
Mundo!!!". Por supuesto es de nula utilidad pero nos sirve para empezar.
#include <cstdlib>
#include <iostream>
using namespace std;
void saludar()
/* No se debe poner punto y coma aquí */
{
cout<<”Hola Mundo!!!”<<endl;
return;//Como es void, el return no tiene valor. Podría omitirse.
}
int main(int argc, char *argv[])
{
saludar();// Llamamos a la función
system("pause");//Aca se llama a otra función que ya viene definida
return EXIT_SUCCESS;//Como main es otra función, tiene su return
}
Ejemplo 2. Función con argumentos, no devuelve ningún valor:
En este ejemplo la función compara toma dos números, los compara y nos
dice cual es mayor.
#include <cstdlib>
#include <iostream>
using namespace std;
Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP
Mariano Luzza - Coordinador
Introducción a la Programación – Parte 9 – Funciones
void compara(int a,int b)//Tenemos 2 parámetros a y b a comparar
{
if(a > b)
cout<<a<<" es mayor que "<<b<<endl;
else if(a < b)
cout<<b<<" es mayor que "<<a<<endl;
else
cout<<a<<" es igual a "<<b<<endl;
}
int main(int argc, char *argv[])
{
int num1, num2;
cout<<”Introduzca el 1º número: “;
cin>>num1;
cout<<”Introduzca el 2º número: “;
cin>>num2;
compara(num1, num2);//Llamamos a la función con sus dos parámetros
system("pause");//Aquí “pause” es un parámetro de la función system
return EXIT_SUCCESS;
}
Ejemplo 3. Función con argumentos que devuelve un valor.
Este ejemplo es como el anterior pero devuelve como resultado el mayor de los
dos números.
#include <cstdlib>
#include <iostream>
using namespace std;
int compara(int a,int b)//Tenemos 2 parámetros a y b a comparar
{
int mayor;
if(a > b)
mayor = a;
else
mayor = b;
return mayor;//La variable “mayor” es int como la función
}
int main(int argc, char *argv[])
{
int num1, num2, res;
cout<<”Introduzca el 1º número: “;
cin>>num1;
cout<<”Introduzca el 2º número: “;
cin>>num2;
//Llamamos a la función y guardamos el resultado
res = compara(num1, num2);
cout<<”El mayor de los dos números es: “<<res<<endl;
system("pause");//Aquí “pause” es un parámetro de la función system
return EXIT_SUCCESS;
}
En este ejemplo podríamos haber hecho también:
cout<<”El mayor de los dos números es: “<<compara(num1, num2)<<endl;
Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP
Mariano Luzza - Coordinador
Introducción a la Programación – Parte 9 – Funciones
De esta forma nos ahorramos tener que definir la variable “resultado”.
Resumen
Hemos visto como definir y llamar funciones. Las funciones nos permiten
ahorrar código repetido y estructurar nuestros programas.
Olimpiadas Sanluiseñas del Conocimiento en Informática – ULP
Mariano Luzza - Coordinador
Descargar