Funciones

13

Click here to load reader

Transcript of Funciones

Page 1: Funciones

Programación con Funciones en Java

Departamento de ingeniería

Page 2: Funciones

Ejemplo

Departamento de ingeniería

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 %.

Page 3: Funciones

Departamento de ingeniería

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); } }

Page 4: Funciones

Departamento de ingeniería

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;}

Page 5: Funciones

Departamento de ingeniería

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); }}

Page 6: Funciones

Departamento de ingeniería

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) { ... }

Page 7: Funciones

Departamento de ingeniería

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) { .... }

Page 8: Funciones

Departamento de ingeniería

Clausula ReturnUna 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 nadavoid funcion ( /* parámetros */)

Sin embargo, esta otra sí devuelve un valor entero

// Esta función devuelve un valor enteroint funcion ( /* parámetros */ )

Page 9: Funciones

Departamento de ingeniería

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.

Page 10: Funciones

Departamento de ingeniería

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.

Page 11: Funciones

Departamento de ingeniería

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)); } }

Page 12: Funciones

Departamento de ingeniería

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)); } }

Page 13: Funciones

Departamento de ingeniería

Referencias

• Programación en Java , Wikilibros.http://es.wikibooks.org/wiki/Programación_en_Java/Fun

ciones