Este material se enfoca en la implementación de diversos bucles y algoritmos fundamentales en Java.
1. Cálculo de la Serie Alternante
Se implementa una función para calcular la suma de la serie: 1 - 1/2 + 1/3 - 1/4 + 1/5 - ... + 1/n.
import java.util.Scanner;
public class SerieAlternante {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.print("Introduce el valor de n: ");
int n = entrada.nextInt();
double sumaSerie = 0;
int signo = 1; // Para alternar entre sumar y restar
for (int i = 1; i <= n; i++) {
sumaSerie += signo * (1.0 / i); // Se usa 1.0 para asegurar cálculo en punto flotante
signo = -signo; // Cambia el signo para el siguiente término
}
System.out.println("La suma de la serie es: " + sumaSerie);
entrada.close();
}
}
2. Cálculo del Máximo Común Divisor (MCD) - Método de Enumeración
Este método busca el máximo común divisor probando todos los números desde 2 hasta el menor de los dos números de entrada.
import java.util.Scanner;
public class MCDEnumeracion {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.print("Introduce el primer número: ");
int num1 = entrada.nextInt();
System.out.print("Introduce el segundo número: ");
int num2 = entrada.nextInt();
int mcd = 1; // El MCD siempre es al menos 1
// Se itera desde 2 hasta el menor de los dos números
for (int i = 2; i <= num1 && i <= num2; i++) {
if (num1 % i == 0 && num2 % i == 0) {
mcd = i; // Si es divisor de ambos, se actualiza el MCD
}
}
System.out.println("El Máximo Común Divisor (por enumeración) es: " + mcd);
entrada.close();
}
}
3. Cálculo del Máximo Común Divisor (MCD) - Algoritmo de Euclides
Implementación del eficiente algoritmo de Euclides para encontrar el MCD.
import java.util.Scanner;
public class McdEuclides {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.print("Introduce el primer número: ");
int a = entrada.nextInt();
System.out.print("Introduce el segundo número: ");
int b = entrada.nextInt();
int residuo;
// El algoritmo se repite mientras b no sea cero
while (b != 0) {
residuo = a % b; // Calcula el residuo de la división
a = b; // 'a' toma el valor de 'b'
b = residuo; // 'b' toma el valor del residuo
}
// Cuando b es 0, 'a' contiene el MCD
System.out.println("El Máximo Común Divisor (por Euclides) es: " + a);
entrada.close();
}
}
Bucle for-each (Iteración Mejorada)
El bucle for-each proporciona una sintaxis más limpia para iterar sobre colecciones y arrays.
import java.util.Scanner;
public class ForEachEjemplo {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int[] datos = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.print("Introduce un número para buscar en el array: ");
int valorBuscado = entrada.nextInt();
boolean encontrado = false;
// Iteración sobre cada elemento del array 'datos'
for (int elemento : datos) {
if (valorBuscado == elemento) {
encontrado = true;
break; // Termina el bucle si se encuentra el valor
}
}
if (encontrado) {
System.out.println(valorBuscado + " se encuentra en el array.");
} else {
System.out.println(valorBuscado + " no se encuentra en el array.");
}
entrada.close();
}
}