Soluciones ejercicio 1

Muestra.java

public class Muestra {
	
	public static final int DEAFULT_SIZE = 10;
	private int[] numeros;
	private int cantidadNumeros;
	
	public Muestra() {
		numeros = new int[DEAFULT_SIZE];
		cantidadNumeros = 0;
	}
	
	public Muestra(int tam) {
		numeros = new int[tam];
		cantidadNumeros = 0;
	}
	
	public Muestra(int[] array) {
		numeros = array.clone();
		cantidadNumeros = numeros.length;
	}
	
	public void agregarNumero(int n) {
		numeros[cantidadNumeros] = n;
		cantidadNumeros++;
	}
 
	public int[] getNumeros() {
		return numeros;
	}
 
	public int getCantidadNumeros() {
		return cantidadNumeros;
	}
 
}
 

Estadistica.java

public class Estadistica {
	
	public static double media(Muestra m) {
		double suma = 0;
		for(int i = 0; i < m.getCantidadNumeros(); i++) {
			suma += m.getNumeros()[i];
		}
		return suma / m.getCantidadNumeros();
	}
	
	public static int moda(Muestra m) {
		int moda = 0;
        int maxFrecuencia = 0;
        int n = m.getCantidadNumeros();
        int[] numeros = m.getNumeros();
        
        for (int i = 0; i < n; i++) {
        	// Comparamos cada número del array con los demás
            int frecuencia = 0;
            for (int j = 0; j < n; j++) {
                if (numeros[j] == numeros[i]) {
                    frecuencia++;
                }
            }
            if (frecuencia > maxFrecuencia) {
                maxFrecuencia = frecuencia;
                moda = numeros[i];
            }
        }
        return moda;
	}
 
}
 

Ejercicio01.java

public class Ejercicio01 {
 
	public static void main(String[] args) {
		Muestra m1 = new Muestra(new int[] { 1, 2, 2, 3, 4, 5, 6, 7, 8, 9 });
 
		double media = Estadistica.media(m1);
		System.out.println("La media es " + media);
 
		int moda = Estadistica.moda(m1);
		System.out.println("La moda es " + moda);
 
	}
 
}

Soluciones ejercicio 2

Muestra.java

public class Muestra {
	
	public static final int DEFAULT_SIZE = 10;
	private int[] numeros;
	private int cantidadNumeros;
	
	public Muestra() {
		numeros = new int[DEFAULT_SIZE];
		cantidadNumeros = 0;
	}
	
	public Muestra(int tam) {
		numeros = new int[tam];
		cantidadNumeros = 0;
	}
	
	public Muestra(int[] array) {
		numeros = array.clone();
		cantidadNumeros = numeros.length;
	}
	
	public void agregarNumero(int n) {
		if (cantidadNumeros == numeros.length) {
			agrandaArray();
		}
		numeros[cantidadNumeros] = n;
		cantidadNumeros++;
	}
 
	public int[] getNumeros() {
		return numeros;
	}
 
	public int getCantidadNumeros() {
		return cantidadNumeros;
	}
	
	private void agrandaArray() {
		int[] copiaNumeros = numeros.clone();
		numeros = Arrays.copyOf(copiaNumeros, copiaNumeros.length+DEFAULT_SIZE);
	}	
 
}
 

Estadistica.java

public class Estadistica {
	
	public static double media(Muestra m) {
		return media(m.getNumeros(), m.getCantidadNumeros());
	}
	
	public static double media(int[] array) {
		return media(array, array.length);
	}
	
	private static double media(int[] array, int cantidad) {
		double suma = 0;
		for(int i = 0; i < cantidad; i++) {
			suma += array[i];
		}
		
		return suma / cantidad;
	}
	
	public static int moda(Muestra m) {
		int moda = 0;
        int maxFrecuencia = 0;
        int n = m.getCantidadNumeros();
        int[] numeros = m.getNumeros();
        
        for (int i = 0; i < n; i++) {
        	// Comparamos cada número del array con los demás
            int frecuencia = 0;
            for (int j = 0; j < n; j++) {
                if (numeros[j] == numeros[i]) {
                    frecuencia++;
                }
            }
            if (frecuencia > maxFrecuencia) {
                maxFrecuencia = frecuencia;
                moda = numeros[i];
            }
        }
        return moda;
	}
 
}
 

Ejercicio02.java

public class Ejercicio02 {
 
	public static void main(String[] args) {
		Muestra m1 = new Muestra(new int[] { 1, 2, 2, 3, 4, 5, 6, 7, 8, 9 });
		m1.agregarNumero(123);
		double media = Estadistica.media(m1);
		System.out.println("La media es " + media);
 
		int moda = Estadistica.moda(m1);
		System.out.println("La moda es " + moda);
		
		var array = new int[] {1,22,333,4444,55555};
		double mediaArray = Estadistica.media(array);
		System.out.println("La media del array es " + mediaArray);
	
	}
 
}
 

Soluciones ejercicio 3

public class Cartera {
    private double saldo;
 
    public Cartera() {
        this.saldo = 0.0;
    }
 
    public Cartera(double saldoInicial) {
        this.saldo = saldoInicial;
    }
 
    public void sacarDinero(double cantidad) {
        if (saldo == 0) {
            System.out.println("NO TIENES SALDO DISPONIBLE.");
        } else if (cantidad <= saldo) {
            saldo -= cantidad;
        } else {
            System.out.println("TU SALDO SE HA QUEDADO A 0.");
            saldo = 0;
        }
    }
 
    public double consultarSaldo() {
        return saldo;
    }
 
    public void meterDinero(double cantidad) {
        saldo += cantidad;
    }
}

Ejercicio03.java

public class Ejercicio03 {
    public static void main(String[] args) {
        Cartera miCartera = new Cartera(50.0);
        System.out.println("Mi saldo actual es: " + miCartera.consultarSaldo());
        miCartera.sacarDinero(20.0);
        System.out.println("Mi saldo actual es: " + miCartera.consultarSaldo());
        miCartera.meterDinero(10.0);
        System.out.println("Mi saldo actual es: " + miCartera.consultarSaldo());
        miCartera.sacarDinero(100.0);
        System.out.println("Mi saldo actual es: " + miCartera.consultarSaldo());
    }
}

Soluciones ejercicio 4

Password.java

import java.util.Random;
 
public class Password {
	
	private String password;
	
	public Password() {
		this.password = "";
	}
	
	public Password(String password) {
		this.password = password;
	}
	
	public int longitud() {
		return this.password.length();
	}
	
	public String getPassword() {
		return password;
	}
 
	public void setPassword(String password) {
		this.password = password;
	}
	
	public boolean isStrong() {
		boolean tieneMayusculas = false;
		boolean tieneMinusculas = false;
		boolean tieneDigitos = false;
		boolean tieneCaracterRaro = false;
		boolean tieneLongitud = false;
				
		// Comprobamos si cumple la lontigud marcada
		
		if (password.length() >= 8 && password.length() <= 20)
			tieneLongitud = true;
		
		// Verificamos la contraseña caracter a caracter
		
		for(int i = 0; i < password.length(); i++) {
			char c = password.charAt(i);
			
			if (Character.isUpperCase(c))
				tieneMayusculas = true;
			
			if (Character.isLowerCase(c))
				tieneMinusculas = true;
			
			if (Character.isDigit(c))
				tieneDigitos = true;
			
			if (c == '$' || c == '%' || c == '_' || c == '*')
				tieneCaracterRaro = true;
			
		}
			
		
		return (tieneMayusculas && tieneMinusculas 
				&& tieneDigitos && tieneCaracterRaro
				&& tieneLongitud); 
	}
 
	public static Password generatePassword(int longitud) {
		
		// Posibles caracteres a usar
		char[] caracteres = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '$', ';', '.', '_', '-','*', '%'};		
		
		String resultado = "";
		// Para generar números aleatorios, podemos usar la clase Random.
		for(int i = 0; i < longitud; i++) {
			int aleatorio = new Random().nextInt(caracteres.length);
			resultado += caracteres[aleatorio];
		}
		
		return new Password(resultado);
		
	}
 
}

Ejercicio04.java

public class Ejercicio04 {
	
	public static void main(String[] args) {
		Password nueva = Password.generatePassword(15);
		
		System.out.println(nueva.getPassword());
		
		System.out.println("¿La contraseña es fuerte? " + (nueva.isStrong() ? "SÍ": "NO"));
		
	}
 
}