Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

53
Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Transcript of Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Page 1: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Fundamentos de ProgramaciónProcedimientos y Funciones(Subprogramas o Métodos)

Page 2: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Estructura de una función

Existen dos tipos de subprogramas, las funciones y los procedimientos, los cuales pasaron a llamarse métodos con la programación orientada a objetos, la cual veremos más adelante, mientras tanto procederemos a estudiar en qué consiste cada una de ellas.

Page 3: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos

Representa una porción de código agrupada con un nombre que describa lo que hace. Las sentencias contenidas en dicho procedimiento pueden ser ejecutadas cuantas veces se quiera, adicionalmente un procedimiento puede de forma opcional recibir parámetros de entrada, con el fin de que en base a los valores de dichos parámetros el procedimiento ejecute alguna acción.

Page 4: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Una característica importante del procedimiento es que el proceso que se ejecuta dentro nunca retorna un resultado, por ejemplo, si necesitas hacer un comportamiento al que le entregas dos valores para que los sume, entonces el procedimiento deberá hacer el proceso de sumar ambos, pero no tendrá la facultad para devolverte el resultado, a cambio le puedes pedir que lo muestre por pantalla, que lo imprima u algún otro tipo de salida, pero nunca esperes respuesta. Otro buen ejemplo será un procedimiento que se llame correr, el que supongamos incrementa la variable cansancio en 1 y estado físico en 2, como puedes ver el procedimiento descrito se ha ocupado de cambiar valores a variables, pero no ha retornado un resultado.

Page 5: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Los procedimientos pueden recibir de forma opcional parámetros, los parámetros tienen la función de determinar como se ejecutará dicho procedimiento. Aclaremos esto un poco más, supongamos que un procedimiento llamado saludar al ejecutarlo imprime por pantalla la cadena “hola amigo”, este procedimiento será utilizado por el programa principal cada vez que necesite imprimir dicho mensaje, evitando así codificarlo varias veces, sin embargo el mensaje jamás variará por lo que aseguramos que el procedimiento saludar siempre imprimirá el mismo mensaje sin excepción.

Page 6: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Si deseamos que éste tenga un comportamiento variable y que imprima “hola Anakin”, “hola Obi Wan” o algún otro nombre, entonces debemos determinar qué es lo que variará y qué no, de esta forma podemos determinar de forma muy fácil que el parámetro de entrada corresponde a un nombre (la parte variable) y que “hola” es parte del procedimiento. El proceso que se llevará a cabo es la unión (concatenación) de “hola” con el valor de la variable que represente el nombre, de esta forma si deseas mostrar “hola Sebastián, tienes 29 años”, bastará con agregar un segundo parámetro de entrada que contenga la edad.

Page 7: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

De esta forma un procedimiento tendrá todos los parámetros que desees, debes considerar que si decides entregar nombre y edad, entonces ya nunca más podrás entregar al procedimiento sólo la edad ya que los parámetros de entrada que definas en un procedimiento se convierten en una obligación para su ejecución, sin embargo puedes según los valores tomar acciones, por ejemplo si la edad es cero omitir la parte que dice “tengo xx años”.

Page 8: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Dado entonces que los procedimientos no retornan un valor, todos ellos utilizan la palabra reservada void para indicarlo, donde void significa la no existencia de un tipo de datos.

A la derecha de la palabra reservada void indicaremos el nombre del procedimiento, el cual debe ser un nombre que describa lo que hace y cuyo proceso intelectual para inventarlo es nuestro, por ejemplo “saludar”

Page 9: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

La tercera parte corresponde a los parámetros de entrada de nuestro procedimiento, partiremos analizando un ejemplo que no recibe parámetros y que imprime el mensaje de “hola” como lo vimos antes.

void saludar() { //tu código aquí

}

Page 10: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Como muestra el código anterior el procedimiento saludar se acompaña de paréntesis vacíos, lo que significa que no recibe parámetro alguno. Las llaves representan el inicio y término del cuerpo de nuestro procedimiento, en él debemos agregar toda la lógica referente a nuestro proceso saludar, el cual lucirá así:

void saludar() { System.out.println(“Hola”);

}

Page 11: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Para recibir parámetros debemos especificar para cada uno de ellos su tipo y nombre de la variable que contiene el valor de entrada. Agreguemos al código realizado la posibilidad de mostrar un nombre distinto cada vez.

void saludar(String nombre) { System.out.println(“Hola ” + nombre);

}

Page 12: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Como puedes ver este método imprimirá el mensaje de “hola “ y lo concatenará con el valor de la variable nombre. La obtención del valor de dicha variable no es una responsabilidad del procedimiento saludar, recuerda que este es un sub programita cuya responsabilidad es sólo generar el mensaje, por ende este comportamiento deberá ser utilizado por el programa principal, quien recurrirá a el cada vez que necesite generar un saludo, sin embargo el procedimiento como requisito para generar su objetivo requerirá que se le entregue algún nombre.

Page 13: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Supongamos ahora que queremos mostrar también la edad, en ese caso debemos agregar un nuevo parámetro con su respectivo tipo, veamos como utilizar un segundo parámetro de entrada para nuestro procedimiento.

void saludar(String nombre, int edad) { System.out.println(“Hola ” + nombre + “, tengo “ + edad + “ años”);

}

Page 14: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

A partir del segundo parámetro en adelante debemos utilizar una coma para separarlos, de esta forma podrás agregar cuantos parámetros consideres necesario como requisito para ejecutar tu procedimiento.

Por otra parte el cuerpo de nuestro procedimiento llevará todas las líneas de código que desees, sin embargo debes tener muy presente de que los inicios y cierres de bloque definen el ámbito (la frontera) de nuestro procedimiento, esto significa que todas las variables que allí se declaren estarán disponibles sólo dentro del procedimiento esta regla también es valida para los parámetros que recibe.

Page 15: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Veamos un ejemplo: void saludar(String nombre, int edad) {

int codigo = 66; System.out.println(“Hola ” + nombre + “, tengo “ + edad);System.out.print(“ años y mi código es: ” + codigo);

}

void despedir() { //CODIGO CON ERRORESSystem.out.println(“chao, recuerden que soy ” + nombre);System.out.print(“ tengo “ + edad + “ años “);System.out.print(“y mi código de trabajador es:” + codigo);

}

Page 16: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

El procedimiento saludar tiene 3 variables declaradas en su ámbito, dos de ellas son nombre y edad, cuyas valores vienen asignados desde otro lugar del código y son recibidos como una entrada. La variable código en cambio es declarada como una nueva variable e inicializada dentro del método, pero las tres tienen el mismo ámbito pudiendo usarse cualquiera de ellas dentro de los límites del procedimiento.

Page 17: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Si miramos el procedimiento despedir en cambio aseguraremos que existen 3 errores, los cuales corresponden a la utilización de las variables nombres, edad y código, ya que ninguna de las tres existe en este ámbito. Si desean usarse hay que recibirlas como parámetro o declararlas dentro del método, ambas alternativas son correctas, pero la diferencia la determinará si deseas que los valores sean asignados dentro del método (el caso de código en el método saludar) o como parámetros cuyo uso representa un valor que viene desde fuera del procedimiento.

Page 18: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

Dado que como lo mencionamos antes una variable declarada dentro de un procedimiento define el ámbito en el que la variable vive, veamos el siguiente código:

void saludar() { int var1 = 66;

}

void despedir() { int var1 = 66;

}

Page 19: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Procedimientos - Continuación

En el código anterior la variable var1 ha sido declarada en ambos procedimientos, esto no provocará un error ya que ambas variables viven en un ámbito diferente y el cambio en el valor de alguna de ellas no afectará el valor de la otra, ya que si bien comparten un mismo identificador son variables totalmente distintas.

Page 20: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Ejercicios:

1. Crear un procedimiento llamado hola que despliegue por pantalla “hola a todos”.

2. Crear un procedimiento llamado saludo que reciba un parámetro de tipo String llamado nombre e imprima un mensaje con el siguiente formato “hola + (valor de la variable nombre)”.

3. Crear un procedimiento que reciba un número e imprima todos los números entre el cero y dicho número incluyendo los extremos, si el número ingresado es cero o menor debe imprimir “error”.

Page 21: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Ejercicios:

4. Crear un procedimiento que reciba dos números positivos identifique el menor de ellos e increméntelo de 10% en 10% hasta llegar al numero más alto posible antes de alcanzar al mayor de ellos, imprima cada uno de los incrementos realizados.

5. Crear un procedimiento que simule el comportamiento de un reloj digital, imprima desde las 00:00 hasta las 23:59 avanzando en intervalos de un minuto.

Page 22: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función Una función es muy similar a un procedimiento, con la salvedad de que la función debe retornar algún valor, o dicho de otra forma el proceso dentro de la función debe generar algún resultado en algún tipo de datos conocido para retornarlo a quien llame al procedimiento. Un ejemplo será el comportamiento sumar, el cual recibirá dos parámetros y cuyo resultado de la suma no será una impresión por pantalla, el resultado generado será devuelto a quien llame a la función como un valor representado por alguno de los tipos de datos que tenga el lenguaje, la función utiliza la palabra reservada return para realizar el retorno del resultado del proceso, por ello return siempre debe estar presente y su ejecución significa también el final de la función, ya que una vez se retorna el resultado significa que la función ha finalizado.

Page 23: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

int suma(int a, int b) {int c = a + b; return c;

}

El código anterior es un ejemplo de la función suma, en este caso y al igual que en el procedimiento, la función recibe dos parámetros de tipo entero, la diferencia está dada en que void ha sido remplazada por int, el cual define el tipo de dato que la función va a retornar, en este caso se ha utilizado int dado que la suma de a y b representarán un entero.

Page 24: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Así una función podrá retornar cualquier tipo de datos conocido por el lenguaje. Luego de la operatoria encontraras la sentencia return c, la cual contiene el resultado de la operatoria a+b y cuyo resultado concuerda con el tipo que explicitamos que la función retornaría.

Page 25: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – ContinuaciónLlamada a una función En la programación estructurada, las funciones y procedimientos acompañan el método principal, llevando parte de la lógica a ellas, las cuales tienen como propósito resolver problemas más pequeños, hacer más fácil la programación y reutilizar el trabajo ya hecho. Una función que nos indique si un archivo existe en nuestro disco duro es un buen ejemplo, la próxima vez que se necesite verificar la existencia de un archivo bastará con llamar a dicha función entregando la ruta del archivo a buscar, estas tareas específicas no tienen sentido por sí solas, casi siempre son parte de un programa que tiene algún propósito mayor y este programa es el encargado de llamar a una o mas funciones para lograr el objetivo.

Page 26: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Aquí veremos cómo utilizar las funciones desde el punto de vista estructurado y más adelante veremos como las funciones son utilizadas en la programación orientada a objetos.

La forma en la que las utilizaremos dependerá de dos factores, lo primero a considerar es si lo que estamos llamando es un procedimiento o función, ya que la primera diferencia entre ellos es su retorno. Recuerda que un procedimiento no retornará nada, sin embargo si llamamos una función debemos esperar algún resultado, el otro factor corresponde a los parámetros que reciben, para ambos casos hay que considerar cuantas variables hay que enviarle al procedimiento o función y de qué tipos son.

Page 27: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Comenzaremos con el caso más sencillo e iremos transformando un programa simple en un programa dividido en funciones, supongamos que tenemos el siguiente código:

Page 28: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

public class JavaApplication2 { public void miEjemplo() {

int fechaNacimiento=1982; String nombre = “sebastian”; int fechaActual = 2012; int edad = 0; edad = fechaActual - fechaNacimiento; String correo = nombre + edad + “@” + “empresa.cl” System.out.println("Hola mi nombre es " + nombre );System.out.println(", tengo " + edad + "años “);System.out.println(“ y mi correo es " + correo);

} }

Page 29: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Este pequeño programa presenta el nombre y la edad de una persona, la cual se ha calculado sólo considerando el año de nacimiento, por lo que en este simplificado ejemplo es posible que la falta de la inclusión de los meses produzca alguna diferencia, el cálculo que se almacena en una variable edad que es después desplegada como parte del mensaje, además el correo de la persona también se muestra, pero previo a ello se genera basándose en el nombre y la edad de la persona y se le agrega @empresa.cl. Si hacemos un pequeño análisis aquí hay 3 pequeñas funcionalidades que pueden ser fácilmente llevadas funciones y procedimientos.

Page 30: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

1. Calculo de la edad 2. Generación del correo. 3. Presentación de la persona mediante una impresión.

El paso siguiente será determinar cómo debemos modularizar estas funcionalidades, especificando cuales serán procedimientos, cuales deben ser funciones y que valores deben recibir.

Si hacemos un pequeño análisis nos daremos cuenta que algunas variables como por ejemplo el nombre, deben ser conocidos por dos de los tres procesos.

Page 31: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Primero la debemos utilizar para la generación del correo y luego en el paso número tres para la impresión, esto nos indica rápidamente que el nombre no es una variable exclusiva de ninguno de los dos, ya que si se declara dentro de alguno de los dos métodos la variable y su valor estaría sólo disponible dentro de él, por lo tanto la variable nombre debe declararse en el método miEjemplo ya que este será el encargado de llamar a las demás funciones pudiendo así pasarlas de una a otra sin perder la variable.

Page 32: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Esto se deberá a que las funciones que vaya llamando miejemplo crearán sus variables que tengan declaradas, pero al finalizar su ejecución todas ellas serán destruidas, sin embargo, miEjemplo estará activo durante todo el proceso, llamando y ejecutando las funciones que en el programamos.

Page 33: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Comencemos entonces a desmenuzar este problema en pequeños “problemitas”, analicemos el proceso del cálculo de la edad. Para realizarlo lo que necesitamos es la fecha de nacimiento y la fecha actual, el proceso es la resta de ambas y el resultado la edad, por lo tanto cuando miejemplo llame la función que se encarga de calcular la edad debe especificar ambos parámetros y luego esperar la respuesta de la función, la cual corresponde a la edad calculada. Este valor de retorno nos indica que la función no puede ser un procedimiento, dado que debe retornar el valor para que luego dicho valor sea mostrado en el mensaje, entonces nuestro pequeño programa queda así:

Page 34: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

int calcularEdad(int fechaNacimiento, int FechaActual) { int edad = fechaActual- fechaNacimiento; return edad;

}

La función recibe ambos parámetros como un entero y retorna la resta de ellos, valor que también es de tipo int. La variable edad que está declarada al interior sólo vive dentro de calcularEdad y no es compartida con nadie, sin embargo la última línea de código se encarga de retornar el valor de tipo entero que aseguramos retornaríamos.

Page 35: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Debes tener cuidado con no confundirte, la función no retorna una variable, lo que hace es devolver el valor de ella, según sea el resultado debes imaginar que lo que allí dice es algo así como: return 10 o return 39 según el resultado del cálculo.

Veamos ahora la generación del correo, para ello las entradas son, la edad y el nombre de la persona, el proceso es una concatenación de ellos y el resultado (el valor a devolver) el correo, este proceso entonces lucirá así:

Page 36: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

String generarCorreo(String nombre, int edad) { String email = nombre + edad + “@” + “empresa.cl”;return email;

}

En este caso el tipo de retorno será un String y ello se notifica a la izquierda del nombre de la función, también recibe dos parámetros los cuales son el nombre y la edad. Fíjate que la edad se asume viene calculada, ya que no es responsabilidad del método generarCorreo realizar este calculo, para ello hemos escrito otra función. Luego de la concatenación el método retorna el valor de la variable email hacia miEjemplo.

Page 37: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Finalmente el módulo que realiza la impresión será un procedimiento, ya que no hay un valor que deseemos retornar hacia mi Ejemplo, sin embargo para lograr la impresión necesitaremos el nombre, la edad y el correo.

void imprimirDatos(String nombre, int edad, String correo) {System.out.println("Hola mi nombre es " + nombre );System.out.println(", tengo " + edad + "años “);System.out.println(“ y mi correo es " + correo);

}

Page 38: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

En este caso la impresión no es un valor que vayamos a devolver, por esto el procedimiento no lleva return y en su firma informa que el tipo de retorno es void, vale decir que no hay retorno.

Para unir todo el método miejemplo será el encargado llamar a todas las funciones y dar el orden lógico de ejecución, luego de recodificar el código el miejemplo lucirá así:

Page 39: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

public class JavaApplication2 { public void miEjemplo() {

int fechaNacimiento=1982; String nombre = “sebastian”; int fechaActual = 2012; int edad = calcularEdad(fechaNacimiento,fechaActual); String correo =generarCorreo(nombre,edad); imprimirDatos(nombre,edad,correo);

} }

Page 40: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Como puedes ver leer el programa es mucho más sencillo ahora, ya que palabras como calcularEdad dejan de forma más explicita lo que hace esa línea, fíjate que para ejecutar ese método es necesario pasar dos parámetros, estos deben ir separados por coma y en el mismo orden en el que la función esta declarada, al igual que antes no es la variable la que se entrega sino el valor de ellas, también es valido entonces solicitar a la función calcularEdad que lo haga llamándola de la siguiente forma:

Page 41: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

public class JavaApplication2 { public void miEjemplo() {

String nombre = “sebastian”; int edad = calcularEdad(1982,2012); String correo =generarCorreo(nombre,edad); imprimirDatos(nombre,edad,correo);

} }

Page 42: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

En este caso a la llamada a “calcularEdad” se le entregan los valores explícitamente, eso también esta correcto ya que ambos valores son recibidos en las variables declaradas dentro de la función, se resta y se retorna el resultado, el cual guardamos en una variable declarada dentro de miejemplo que se llama edad.

Page 43: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Una nota importante, si bien la variable de la que se retorna el valor en calcularEdad se llama igual que la variable en la que miEjemplo lo recibe no significa que esto deba ser así, recuerda que las variables están en ámbitos distintos y por ende son variables totalmente independientes, por esto los nombres que utilicen no generaran alguna diferencia, pudiendo ellas llamarse iguales o tener nombres diferente, recuerda que la variable edad de miejemplo lo que recibe es un número (el valor de la variable edad de calcularEdad)

Page 44: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Al igual que en calcular edad en generarCorreo debemos recibir el valor de retorno, el cual en este caso es una concatenación que simula el correo del usuario y que almacenamos en una variable llamada correo.

Finalmente para llamar a imprimirDatos no hay una asignación (signo igual) dado que este es un procedimiento que ejecuta una o más líneas de código pero no retorna un valor, sin embargo si recibe tres parámetros los cuales al igual que antes deben ser entregados en el mismo orden y con sus tipos de datos correspondientes.

Page 45: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

El código completo quedará de la siguiente forma, donde los procedimientos y funciones son agregados al código, no importa su orden, sólo importa el orden en el que miejemplo los utiliza, siendo entonces miejemplo el punto de inicio de nuestro algoritmo y de allí se ejecuta todo lo demás.

Page 46: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

public class JavaApplication2 { public void miEjemplo() {

String nombre = “sebastian”; int edad = calcularEdad(1982,2012); String correo =generarCorreo(nombre,edad); imprimirDatos(nombre,edad,correo);

}void imprimirDatos(String nombre, int edad, String correo){

System.out.println("Hola mi nombre es " + nombre );System.out.println(", tengo " + edad + "años “);System.out.println(“ y mi correo es " + correo);

}

Page 47: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

String generarCorreo(String nombre, int edad) { String email = nombre + edad + “@” + “empresa.cl”; return email;

}

int calcularEdad(int fechaNacimiento, int FechaActual) { int edad = fechaActual- fechaNacimiento; return edad;

} }

Page 48: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

Con las llamadas a las funciones y/o procedimientos puedes utilizar todas las combinaciones que gustes, observa este ejemplo, el cual hace lo mismo pero de otra forma, he aquí el código y luego la explicación.

public class JavaApplication2 { public void miEjemplo() {

String nombre = “sebastian”; int edad = calcularEdad(1982,2012);imprimirDatos(nombre, edad, generarCorreo(nombre,edad));

} .

Page 49: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

void imprimirDatos(String nombre, int edad, String correo){System.out.println("Hola mi nombre es " + nombre );System.out.println(", tengo " + edad + "años “);System.out.println(“ y mi correo es " + correo);

}String generarCorreo(String nombre, int edad) {

String email = nombre + edad + “@” + “empresa.cl”; return email;

}

int calcularEdad(int fechaNacimiento, int FechaActual) { int edad = fechaActual- fechaNacimiento; return edad;

} }

Page 50: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

En este caso la línea que asignaba el correo ha sido eliminada, sin embargo para obtener el correo y luego poder imprimirlo remplazamos la variable correo que ya no está por la llamada al método generarCorreo, esto es posible ya que el método lo que solicita es un string con el correo y dado que el orden de ejecución es desde adentro hacia afuera, primero se ejecutará la función generarCorreo la cual retornará un String y cuyo valor es entregado a imprimir. De esta misma forma también podrás llamar a funciones desde otras funciones y/o procedimientos como muestra el siguiente cambio realizado a imprimir.

Page 51: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Función – Continuación

void imprimirDatos(String nombre, int edad, String correo) {System.out.println("Hola mi nombre es " + nombre );System.out.println(", tengo " + edad + "años “);System.out.println(“ y mi correo es " + generarCorreo(nombre,edad));

}

En este caso para obtener el correo le pedimos directamente desde dentro de imprimirDatos.

Page 52: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Ejercicios:

1. Crear una función que permita calcular el valor en pesos chilenos de un producto si como parámetro de entrada recibe un valor en dólares.

2. Crear una función que retorne verdadero o falso si el parámetro ingresado es o no un número primo.

3. Crear una función que retorne la cantidad de números primos que existen entre el cero y el valor de un parámetro ingresado.

4. Crear una función que permita calcular el factorial de un número.

Page 53: Fundamentos de Programación Procedimientos y Funciones (Subprogramas o Métodos)

Ejercicios:

5. Crear una función que retorne las horas a las que equivale la cantidad de días ingresada como parámetro.

6. Crear una función que reciba como parámetros la cantidad total de personas que asistieron a un evento, el valor de la entrada, la cantidad de personas VIP y el porcentaje de descuento que los clientes VIP tienen, la función debe retornar la ganancia total del evento.