• Like
Funciones
Upcoming SlideShare
Loading in...5
×

Funciones

  • 1,753 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,753
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Programación con Funciones en Java Departamento de ingeniería
  • 2. EjemploQueremos depositar todo nuestro dinero ganado comoprogramadores. Hay dos bancos que compiten pornuestros dividendos. El primero, lo llamamos "Banco A",nos ofrecen un interés con una tasa mensual del 1 % masuna 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 queejecutan una rutina y devuelven un resultado. Elresultado puede depender de parámetros de entrada.Un función se construye de la siguiente manera:tipo_resultado nombre_función (tipo_parámetronombre_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ónLos parámetros de una función son los valores que estarecibe por parte del código que la llama. Pueden ser tipossimples u objetos.En la declaración de la función se escriben después delnombre entre paréntesis indicándose el tipo de cada uno ysu 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 lostipos primitivos (int, long, etc.) SIEMPRE se pasan porvalor.Los objetos y arrays se pasan por referencia.Si no queremos que la función devuelva ningún parámetrodebemos utilizar el tipo void. P.ej:void print(String mensajeAImprimir) { ....} Departamento de ingeniería
  • 8. Clausula ReturnUna función puede o no devolver un resultado, según cómohaya sido declarada.La siguiente función no devuelve nada, puesto que se ponevoid 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 */ ) Departamento de ingeniería
  • 9. Si la función devuelve algún tipo de resultado, esobligatorio en java poner en el código de la función returnvalordevuelto.Si dentro de la función hay condicionales, es tambiénobligatorio que en todos los posibles caminos por los quese termine el código de la función, se ponga el return y elvalor devuelto.Lógicamente, cuando la función devuelve el resultado,finaliza la ejecución de la misma, y de cualquier estructurade control iterativa (for, while...) aunque no se hayacumplido su condición de salida. Departamento de ingeniería
  • 10. Funciones RecursivasLas funciones recursivas son aquellas que se invocan a simismas en algún momento de su ejecución.Así, todo método recursivo debe tener al menos unasentencia que devuelva un resultado (la solución del casomás sencillo) y las sentencias necesarias para acercarse encada invocación a ese caso. Departamento de ingeniería
  • 11. Ejemplo Iterativo Factorialpublic 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 Factorialpublic 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