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étodo main(). Esta llamada la colocaremos entre el while y el for:

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 **