Guía Práctica sobre Programación Modular y Funciones en Java

Introducción

La programación modular es una técnica de diseño de software que se centra en dividir un programa en partes o módulos más pequeños y manejables. Estos módulos se implementan generalmente como funciones o métodos, lo que facilita la organización, el mantenimiento y la reutilización del código. En este artículo, abordaremos la teoría y proporcionaremos ejercicios prácticos sobre programación modular y funciones en Java.

Teoría

1. ¿Qué es la Programación Modular?

La programación modular implica dividir un programa grande en partes más pequeñas, llamadas módulos. Cada módulo es una unidad independiente que realiza una tarea específica. Esta técnica mejora la legibilidad, la reutilización y el mantenimiento del código.

2. ¿Qué es una Función?

Una función es un bloque de código que realiza una tarea específica y que puede ser llamado desde otras partes del programa. En Java, las funciones se definen dentro de clases y se llaman métodos. Los métodos pueden recibir parámetros, realizar operaciones y devolver resultados.

3. Ventajas de Usar Funciones

  • Reutilización del Código: Los métodos pueden ser llamados múltiples veces desde diferentes partes del programa.
  • Organización y Mantenimiento: El código se divide en partes más manejables, facilitando la comprensión y la corrección de errores.
  • Abstracción: Permiten ocultar los detalles de implementación y exponer solo la funcionalidad necesaria.

4. Definición de Funciones en Java

Un método en Java se define dentro de una clase y puede tener un modificador de acceso (public, private), un tipo de retorno, un nombre y parámetros.

Sintaxis:

public class NombreClase {
    public tipoRetorno nombreMetodo(tipoParametro parametro) {
        // Cuerpo del método
        return valor;
    }
}

Ejemplo:

public class Calculadora {
    public int sumar(int a, int b) {
        return a + b;
    }
}

5. Llamada a Funciones

Para llamar a un método, se utiliza el nombre del método seguido de paréntesis, pasando los argumentos necesarios.

Ejemplo:

public class Main {
    public static void main(String[] args) {
        Calculadora calc = new Calculadora();
        int resultado = calc.sumar(5, 3);
        System.out.println("La suma es: " + resultado);
    }
}

Ejercicios Prácticos

Ejercicio 1: Crear una Calculadora Básica

  1. Define una clase Calculadora con métodos para sumar, restar, multiplicar y dividir dos números.
  2. Escribe un programa que use esta clase para realizar operaciones básicas.

Solución:

public class Calculadora {
    public int sumar(int a, int b) {
        return a + b;
    }

    public int restar(int a, int b) {
        return a - b;
    }

    public int multiplicar(int a, int b) {
        return a * b;
    }

    public double dividir(int a, int b) {
        if (b != 0) {
            return (double) a / b;
        } else {
            System.out.println("Error: División por cero.");
            return 0;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Calculadora calc = new Calculadora();
        System.out.println("Suma: " + calc.sumar(5, 3));
        System.out.println("Resta: " + calc.restar(5, 3));
        System.out.println("Multiplicación: " + calc.multiplicar(5, 3));
        System.out.println("División: " + calc.dividir(5, 3));
    }
}

Ejercicio 2: Calcular el Factorial de un Número

  1. Define un método factorial en una clase que reciba un número entero y devuelva su factorial.
  2. Escribe un programa que use este método para calcular el factorial de un número ingresado por el usuario.

Solución:

import java.util.Scanner;

public class Factorial {
    public int factorial(int n) {
        int resultado = 1;
        for (int i = 1; i <= n; i++) {
            resultado *= i;
        }
        return resultado;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        int numero = scanner.nextInt();

        Factorial fact = new Factorial();
        int resultado = fact.factorial(numero);
        System.out.println("El factorial de " + numero + " es: " + resultado);
    }
}

Ejercicio 3: Verificar si un Número es Primo

  1. Define un método esPrimo que reciba un número entero y devuelva true si el número es primo y false en caso contrario.
  2. Escribe un programa que use este método para verificar si un número ingresado por el usuario es primo.

Solución:

import java.util.Scanner;

public class Primos {
    public boolean esPrimo(int n) {
        if (n <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        int numero = scanner.nextInt();

        Primos primo = new Primos();
        boolean resultado = primo.esPrimo(numero);
        if (resultado) {
            System.out.println("El número " + numero + " es primo.");
        } else {
            System.out.println("El número " + numero + " no es primo.");
        }
    }
}

Ejercicio 4: Ordenar un Array de Números

  1. Define un método ordenarArray que reciba un array de enteros y lo ordene en orden ascendente.
  2. Escribe un programa que use este método para ordenar un array ingresado por el usuario.

Solución:

import java.util.Arrays;
import java.util.Scanner;

public class Ordenar {
    public void ordenarArray(int[] array) {
        Arrays.sort(array);
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Ingrese el tamaño del array: ");
        int tamaño = scanner.nextInt();
        int[] array = new int[tamaño];

        System.out.println("Ingrese los elementos del array:");
        for (int i = 0; i < tamaño; i++) {
            array[i] = scanner.nextInt();
        }

        Ordenar ordenar = new Ordenar();
        ordenar.ordenarArray(array);

        System.out.println("Array ordenado: " + Arrays.toString(array));
    }
}

Ejercicio 5: Calcular la Media de un Array

  1. Define un método calcularMedia que reciba un array de enteros y devuelva la media de los elementos.
  2. Escribe un programa que use este método para calcular la media de un array ingresado por el usuario.

Solución:

import java.util.Scanner;

public class Media {
    public double calcularMedia(int[] array) {
        int suma = 0;
        for (int num : array) {
            suma += num;
        }
        return (double) suma / array.length;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Ingrese el tamaño del array: ");
        int tamaño = scanner.nextInt();
        int[] array = new int[tamaño];

        System.out.println("Ingrese los elementos del array:");
        for (int i = 0; i < tamaño; i++) {
            array[i] = scanner.nextInt();
        }

        Media media = new Media();
        double resultado = media.calcularMedia(array);
        System.out.println("La media del array es: " + resultado);
    }
}

Conclusión

La programación modular y el uso de funciones son esenciales para escribir código claro, organizado y mantenible. Dividir el programa en módulos y utilizar funciones adecuadas no solo mejora la legibilidad del código, sino que también facilita la depuración y la extensión de funcionalidades. Practica estos ejercicios para consolidar tus conocimientos y habilidades en programación modular y funciones en Java.

person encoding in laptop
Photo by Lukas on Pexels.com
error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.