2. Ejemplo
Queremos depositar todo nuestro dinero ganado como
programadores. Hay dos bancos que compiten por
nuestros dividendos. El primero, lo llamamos "Banco A",
nos ofrecen un interés con una tasa mensual del 1 % mas
una bonificación final del 5%. El segundo, el "Banco B",
nos ofrece una tasa del 1,5 %.
Departamento de ingeniería
3. public class ShowMeTheMoney{
public static void main(String args[]){
int meses = 12;
float interesBanco1 = 1f;
float bonificBanco1 = 5f;
float interesBanco2 = 1.5f;
double monto = 10000;
double montoBanco1 = monto;
double montoBanco2 = monto;
for ( int n = 1; n <= meses; n++){
montoBanco1 += montoBanco1 * interesBanco1 / 100;
}
montoBanco1 += montoBanco1 * bonificBanco1 /100;
for ( int n = 1; n <= meses; n++){
montoBanco2 += montoBanco2 * interesBanco2 / 100;
}
System.out.println("Importe final del banco1 : " + montoBanco1);
System.out.println("Importe final del banco2 : " + montoBanco2);
}
}
Departamento de ingeniería
4. Una función es un conjunto de instrucciones que
ejecutan una rutina y devuelven un resultado. El
resultado puede depender de parámetros de entrada.
Un función se construye de la siguiente manera:
tipo_resultado nombre_función (tipo_parámetro
nombre_parámetro, ... ) {
sentencia1;
sentencia2;
...
sentenciaN;
}
Departamento de ingeniería
5. public class ShowMeTheMoney2{
static double interesCompuesto(double monto, float tasa, int períodos){
for(int n = 1; n <= períodos; n++ ){
monto += monto * tasa / 100;
}
return monto;
}
public static void main(String args[]){
int meses = 12;
float interesBanco1 = 1f;
float bonificBanco1 = 5f;
float interesBanco2 = 1.5f;
double monto = 10000;
double montoBanco1 = monto;
double montoBanco2 = monto;
montoBanco1 = interesCompuesto( montoBanco1, interesBanco1, meses );
montoBanco1 += montoBanco1 * bonificBanco1 /100;
montoBanco2 = interesCompuesto( montoBanco2, interesBanco2, meses );
System.out.println("Importe final del banco1 : " + montoBanco1);
System.out.println("Importe final del banco2 : " + montoBanco2);
} Departamento de ingeniería
}
6. Parametros de una Función
Los parámetros de una función son los valores que esta
recibe por parte del código que la llama. Pueden ser tipos
simples u objetos.
En la declaración de la función se escriben después del
nombre entre paréntesis indicándose el tipo de cada uno y
su nombre. Veamos esto a modo de ejemplo:
int dividir(int dividendo, int divisor) {
...
}
Departamento de ingeniería
7. Es importante recordar que en java, los parámetros de los
tipos primitivos (int, long, etc.) SIEMPRE se pasan por
valor.
Los objetos y arrays se pasan por referencia.
Si no queremos que la función devuelva ningún parámetro
debemos utilizar el tipo void. P.ej:
void print(String mensajeAImprimir) {
....
}
Departamento de ingeniería
8. Clausula Return
Una función puede o no devolver un resultado, según cómo
haya sido declarada.
La siguiente función no devuelve nada, puesto que se pone
void delante, al declararla
// Esta función no devuelve nada
void funcion ( /* parámetros */)
Sin embargo, esta otra sí devuelve un valor entero
// Esta función devuelve un valor entero
int funcion ( /* parámetros */ )
Departamento de ingeniería
9. Si la función devuelve algún tipo de resultado, es
obligatorio en java poner en el código de la función return
valordevuelto.
Si dentro de la función hay condicionales, es también
obligatorio que en todos los posibles caminos por los que
se termine el código de la función, se ponga el return y el
valor devuelto.
Lógicamente, cuando la función devuelve el resultado,
finaliza la ejecución de la misma, y de cualquier estructura
de control iterativa (for, while...) aunque no se haya
cumplido su condición de salida.
Departamento de ingeniería
10. Funciones Recursivas
Las funciones recursivas son aquellas que se invocan a si
mismas en algún momento de su ejecución.
Así, todo método recursivo debe tener al menos una
sentencia que devuelva un resultado (la solución del caso
más sencillo) y las sentencias necesarias para acercarse en
cada invocación a ese caso.
Departamento de ingeniería
11. Ejemplo Iterativo Factorial
public class Factoriales{
static int factorial(int numero){
int resultado = 1;
while(numero > 0){
resultado = resultado*numero;
número--;
}
}
public static void main(String args[]){
System.out.println(factorial(5));
}
} Departamento de ingeniería
12. Ejemplo Recursivo Factorial
public class Factoriales {
static int factorial(int numero){
if ( numero <= 1 ) {
return 1;
} else {
return numero*factorial(numero-1);
}
}
public static void main(String args[]){
System.out.println(factorial(5));
}
} Departamento de ingeniería
13. Referencias
• Programación en Java , Wikilibros.
http://es.wikibooks.org/wiki/Programación_en_Java/Fun
ciones
Departamento de ingeniería