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
- Define una clase
Calculadora
con métodos para sumar, restar, multiplicar y dividir dos números. - 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
- Define un método
factorial
en una clase que reciba un número entero y devuelva su factorial. - 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
- Define un método
esPrimo
que reciba un número entero y devuelvatrue
si el número es primo yfalse
en caso contrario. - 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
- Define un método
ordenarArray
que reciba un array de enteros y lo ordene en orden ascendente. - 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
- Define un método
calcularMedia
que reciba un array de enteros y devuelva la media de los elementos. - 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.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.