SlideShare una empresa de Scribd logo
1 de 13
Programación con Funciones
         en Java



               Departamento de ingeniería
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
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
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
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

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

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




                              Departamento de ingeniería

Más contenido relacionado

La actualidad más candente

Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioLenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioCarlos
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificadocompumet sac
 
Metodos en java
Metodos en javaMetodos en java
Metodos en javaaleja0940
 
RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++Ing SC B
 
Programación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónProgramación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivosfeytho
 
Métodos en programacion
Métodos en  programacionMétodos en  programacion
Métodos en programacioncrisricguepi
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividadrehoscript
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodosLao Tobon
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cZalimanunezc
 

La actualidad más candente (19)

Utilidad de las funciones en c
Utilidad de las funciones en cUtilidad de las funciones en c
Utilidad de las funciones en c
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Presentacion
PresentacionPresentacion
Presentacion
 
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioLenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
 
Metodos en java
Metodos en javaMetodos en java
Metodos en java
 
RECURSIVIDAD C++
RECURSIVIDAD C++RECURSIVIDAD C++
RECURSIVIDAD C++
 
5. Metodos Y Parametros
5.  Metodos Y Parametros5.  Metodos Y Parametros
5. Metodos Y Parametros
 
Programación modular en Introducción a la Programación
Programación modular en Introducción a la ProgramaciónProgramación modular en Introducción a la Programación
Programación modular en Introducción a la Programación
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
MéTodos Java
MéTodos JavaMéTodos Java
MéTodos Java
 
Curso recursividad
Curso   recursividadCurso   recursividad
Curso recursividad
 
5 metodos y parametros
5 metodos y parametros5 metodos y parametros
5 metodos y parametros
 
Métodos en programacion
Métodos en  programacionMétodos en  programacion
Métodos en programacion
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
 

Similar a Funciones (20)

Funciones
FuncionesFunciones
Funciones
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 
11funciones 1231096290787715-2
11funciones 1231096290787715-211funciones 1231096290787715-2
11funciones 1231096290787715-2
 
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Guía funciones
Guía funcionesGuía funciones
Guía funciones
 
2 f programas
2 f programas2 f programas
2 f programas
 
2 f programas
2 f programas2 f programas
2 f programas
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Funciones.ppt
Funciones.pptFunciones.ppt
Funciones.ppt
 
050 Componentes de un programa Python.pdf
050 Componentes de un programa Python.pdf050 Componentes de un programa Python.pdf
050 Componentes de un programa Python.pdf
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
 
Unidad educativa
Unidad educativaUnidad educativa
Unidad educativa
 
6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Factorial en C++
Factorial en C++Factorial en C++
Factorial en C++
 
Java básico
Java  básicoJava  básico
Java básico
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 

Más de Victor Peñeñory

Taller3 victor peñeñory andres garcia
Taller3 victor peñeñory andres garciaTaller3 victor peñeñory andres garcia
Taller3 victor peñeñory andres garciaVictor Peñeñory
 
Taller4 victor peñeñory andres garcia_jaime_villlamarin
Taller4 victor peñeñory andres garcia_jaime_villlamarinTaller4 victor peñeñory andres garcia_jaime_villlamarin
Taller4 victor peñeñory andres garcia_jaime_villlamarinVictor Peñeñory
 
Propuesta la creación de una campaña de mk 2.0 constructora melendez
Propuesta la creación de una campaña de mk 2.0 constructora melendezPropuesta la creación de una campaña de mk 2.0 constructora melendez
Propuesta la creación de una campaña de mk 2.0 constructora melendezVictor Peñeñory
 
Multimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santos
Multimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santosMultimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santos
Multimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santosVictor Peñeñory
 
Cronograma cursos con telemática
Cronograma cursos con telemáticaCronograma cursos con telemática
Cronograma cursos con telemáticaVictor Peñeñory
 
Ebook tutorial edicion-de-sonido-con-audacity
Ebook tutorial edicion-de-sonido-con-audacityEbook tutorial edicion-de-sonido-con-audacity
Ebook tutorial edicion-de-sonido-con-audacityVictor Peñeñory
 
Modelo Para Contenidos Digitales(Clase 5)
Modelo Para Contenidos Digitales(Clase 5)Modelo Para Contenidos Digitales(Clase 5)
Modelo Para Contenidos Digitales(Clase 5)Victor Peñeñory
 
Modelo Para Contenidos Digitales(Clase 4)
Modelo Para Contenidos Digitales(Clase 4)Modelo Para Contenidos Digitales(Clase 4)
Modelo Para Contenidos Digitales(Clase 4)Victor Peñeñory
 
Contenidos Digitales (Clase 3)
Contenidos Digitales (Clase 3)Contenidos Digitales (Clase 3)
Contenidos Digitales (Clase 3)Victor Peñeñory
 
Contenidos Digitales (Clase 2)
Contenidos Digitales (Clase 2)Contenidos Digitales (Clase 2)
Contenidos Digitales (Clase 2)Victor Peñeñory
 
Contenidos Digitales (Clase 1)
Contenidos Digitales (Clase 1)Contenidos Digitales (Clase 1)
Contenidos Digitales (Clase 1)Victor Peñeñory
 

Más de Victor Peñeñory (20)

Taller3 victor peñeñory andres garcia
Taller3 victor peñeñory andres garciaTaller3 victor peñeñory andres garcia
Taller3 victor peñeñory andres garcia
 
Taller4 victor peñeñory andres garcia_jaime_villlamarin
Taller4 victor peñeñory andres garcia_jaime_villlamarinTaller4 victor peñeñory andres garcia_jaime_villlamarin
Taller4 victor peñeñory andres garcia_jaime_villlamarin
 
Proyecto melendez
Proyecto melendezProyecto melendez
Proyecto melendez
 
Propuesta la creación de una campaña de mk 2.0 constructora melendez
Propuesta la creación de una campaña de mk 2.0 constructora melendezPropuesta la creación de una campaña de mk 2.0 constructora melendez
Propuesta la creación de una campaña de mk 2.0 constructora melendez
 
Memoria
MemoriaMemoria
Memoria
 
Multimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santos
Multimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santosMultimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santos
Multimedia e internet_-estado_del_arte_en_iptv-_alberto_los_santos
 
Tvdigi
TvdigiTvdigi
Tvdigi
 
01 i dtv-generalidades
01 i dtv-generalidades01 i dtv-generalidades
01 i dtv-generalidades
 
Propuesta y contrato
Propuesta y contratoPropuesta y contrato
Propuesta y contrato
 
Cronograma cursos con telemática
Cronograma cursos con telemáticaCronograma cursos con telemática
Cronograma cursos con telemática
 
Ebook tutorial edicion-de-sonido-con-audacity
Ebook tutorial edicion-de-sonido-con-audacityEbook tutorial edicion-de-sonido-con-audacity
Ebook tutorial edicion-de-sonido-con-audacity
 
Modelo Para Contenidos Digitales(Clase 5)
Modelo Para Contenidos Digitales(Clase 5)Modelo Para Contenidos Digitales(Clase 5)
Modelo Para Contenidos Digitales(Clase 5)
 
Icdl Clase3
Icdl Clase3Icdl Clase3
Icdl Clase3
 
Modelo Para Contenidos Digitales(Clase 4)
Modelo Para Contenidos Digitales(Clase 4)Modelo Para Contenidos Digitales(Clase 4)
Modelo Para Contenidos Digitales(Clase 4)
 
Icdl Clase2
Icdl Clase2Icdl Clase2
Icdl Clase2
 
Icdl Clase1
Icdl Clase1Icdl Clase1
Icdl Clase1
 
Contenidos Digitales (Clase 3)
Contenidos Digitales (Clase 3)Contenidos Digitales (Clase 3)
Contenidos Digitales (Clase 3)
 
Contenidos Digitales (Clase 2)
Contenidos Digitales (Clase 2)Contenidos Digitales (Clase 2)
Contenidos Digitales (Clase 2)
 
Contenidos Digitales (Clase 1)
Contenidos Digitales (Clase 1)Contenidos Digitales (Clase 1)
Contenidos Digitales (Clase 1)
 
Clase 6
Clase 6Clase 6
Clase 6
 

Funciones

  • 1. Programación con Funciones en Java Departamento de ingeniería
  • 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