Programming
T03-001-01 - Funciones, procedimientos y métodos.
Enunciado
Definición
Una función es una parte de un programa o conjunto de instrucciones con un nombre, que puede ser invocada (llamada a ejecución) desde otras partes del programa, tantas veces como se desee. En algunos lenguajes, son llamadas subrutinas.
Las funciones nos permiten dividir el trabajo que hace un programa, en tareas más pequeñas separadas de la parte principal.
Hasta ahora, hemos invocado funciones creadas por otros desarrolladores, com, por ejemplo Scanner.nextInt() o System.out.println(). En los casos anteriores, debemos anteponer a los nombres de los métodos, la clase a la que pertenece (Scanner), separados por un (.)
Ejemplo
Partiendo de un ejercicio anterior, que mostraba tablas de multiplicar mientras el usuario no pulsaba un 0 al finalizar cada tabla, vamos a utilizar un método
cabeceraTablaMultiplicar()para escribir un texto ("** INICIO TABLA **") al principio de cada una de las tablas.La declaración del método requerirá el nombre, que servirá para invocarlo, así como otros modificadores que se explicarán más adelante.
static void cabeceraTablaMultiplicar() {
System.out.println("** INICIO TABLA **");
}Esta declaración debe colocarse fuera del bloque correspondiente al método
main(), pero dentro del bloque correspondiente a la clase.Las sentencias que se han incorporado al método
cabeceraTablaMultiplicar()no se ejecutarán hasta que sea invocado desde el métodomain(). Esta llamada la colocaremos entre elwhiley elfor:
package tablasmultiplicar;
import java.util.Scanner;
public class TablasMultiplicar {
public static void main(String[] args) {
int contador = 1, seguir = 1;
Scanner sc = new Scanner(System.in);
while (seguir != 0) {
// Invocamos el método cabecera
cabeceraTablaMultiplicar();
for(int i = 0; i <= 10; i++) {
System.out.println(contador + " x " + i + " = " + contador * i);
}
contador++;
seguir = sc.nextInt();
}
}
static void cabeceraTablaMultiplicar() {
System.out.println("** INICIO TABLA **");
}
}Ejercicio
Crea e invoca una función,
pieTablaMultiplicar(), que escriba el texto "** FIN TABLA **", seguido de una línea en blanco, al finalizar cada una de las tablas de multiplicar.
Solución
package tablasmultiplicar;
import java.util.Scanner;
public class TablasMultiplicar {
public static void main(String[] args) {
int contador = 1, seguir = 1;
Scanner sc = new Scanner(System.in);
while (seguir != 0) {
// Invocamos el método cabecera
cabeceraTablaMultiplicar();
for(int i = 0; i <= 10; i++) {
System.out.println(contador + " x " + i + " = " + contador * i);
}
// Invocamos el método pie
pieTablaMultiplicar();
contador++;
seguir = sc.nextInt();
}
}
static void cabeceraTablaMultiplicar() {
System.out.println("** INICIO TABLA **");
}
static void pieTablaMultiplicar() {
System.out.println("** FIN TABLA **\n");
}
}
Input
1 1 1 0
1 1 1 1 0
Output
** INICIO TABLA ** 1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 1 x 10 = 10 ** FIN TABLA ** ** INICIO TABLA ** 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 ** FIN TABLA ** ** INICIO TABLA ** 3 x 0 = 0 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 3 x 10 = 30 ** FIN TABLA ** ** INICIO TABLA ** 4 x 0 = 0 4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36 4 x 10 = 40 ** FIN TABLA **
** INICIO TABLA ** 1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 1 x 10 = 10 ** FIN TABLA ** ** INICIO TABLA ** 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 ** FIN TABLA ** ** INICIO TABLA ** 3 x 0 = 0 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 3 x 10 = 30 ** FIN TABLA ** ** INICIO TABLA ** 4 x 0 = 0 4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36 4 x 10 = 40 ** FIN TABLA ** ** INICIO TABLA ** 5 x 0 = 0 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 ** FIN TABLA **

