Ejercicios tema 6
Ejercicio 1. Crea un programa que calcule la tirada de veinte dados y la suma de los resultados.
Solución:
public class Main {
public static void main(String[] args) {
int suma =0;
//Lo primero que haremos es crear un bucle para los 20 dados.
//De esta forma no tendremos que copiar y pegar la misma línea 20 veces.
for (int i=0; i<20;i++) {
//Utilizamos Math.random para generar números aleatorios.
//En este caso queremos que el máximo sea seis. Por eso la multiplicación.
//Al multiplicarlo por 6 nos salen números entre 0 y 5.99. Así que le sumamos 1.
//Ahora tenemos números entre 1 y 6.99 pero debemos transformarlos en números enteros.
//Esto se hace convirtiendo toda la expresión a entero con (int). Tal como se ve abajo.
int a =(int)(Math.random()*6 + 1); suma = suma+a;
}
System.out.println("La suma de los 20 dados es " + suma);
}
}
Ejercicio 2. Programa en Java que muestra aleatoriamente 100 cartas de una baraja española.
Solución:
public class Main {
public static void main(String[] args) {
String palo = ""; String figuras = "";
//Creamos un for para que se muestren 100 cartas
for (int i = 0; i <= 100; i++) {
//Creamos un número random del 1 al 4 para que se generen los palos.
int a = (int) (Math.random() * 4 + 1);
//Dependiendo de que valor salga le asignamos un palo
if (a == 1) {
palo = " oros ";
}
if (a == 2) {
palo = " espadas ";
}
if (a == 3) {
palo = " copas ";
}
if (a == 4) {
palo = " bastos ";
}
//Ahora creamos números aleatorios de entre 1 y 10.
//Del 1 al 7 corresponderán a cartas normales
// 8 a sota, 9 a caballo y 10 a rey.
int b = (int) (Math.random() * 10 + 1);
//Damos valor a la variable figuras de la siguiente forma.
if (b==8) {
figuras= "Sota";
}
if (b==9) {
figuras= "Caballo";
}
if (b==10) {
figuras= "Rey";
}
//Mostramos los resultados en la pantalla ayudándonos de condicionales.
if (b==1) {
System.out.println("As de" + palo);
}
if (b>=2&&b<=7) {
System.out.println(b + " de" + palo);
}
if (b>=8&&b<=10) {
System.out.println(figuras + " de" + palo);
}
}
}
}
Ejercicio 3. Programa en Java que muestra 20 números aleatorios entre 0 y 100 en la misma línea.
Solución:
public class Main {
public static void main(String[] args) {
for (int i=0;i<=20;i++){
int a = (int)(Math.random()*100);
System.out.print(" " + a );
}
}
}
💡Comprender el Rango: Para generar un número aleatorio entre dos valores específicos, usa la fórmula Math.random() * (max – min) + min. Asegúrate de entender que Math.random() genera un número entre 0.0 y 1.0, por lo que multiplicar por (max – min) y luego sumar min ajusta correctamente el rango.
Ejercicio 4. Programa en Java que muestra 10 números aleatorios entre 100 y 199 y luego muestre cuál fue el mayor y el menor.
Solución:
public class Main {
public static void main(String[] args) {
//Creamos las variables que ves a continuación.
//El número menor que podemos encontrarnos es 0.
//El número mayor es 199.
// La idea es que cuando salga un número mayor o menor reemplace a los que tenemos.
int mayor = 0; int menor= 199;
for (int i=0;i<=10;i++){
int a = (int)(Math.random()*99+100);
//Si el número que ha salido es mayor que el actual mayor
//Se convierte en el nuevo mayor
if (a>mayor) {
mayor = a;
}
//Si el número que ha salido es menor que el actual menor
//Se convierte en el nuevo menor
if (a<menor) {
menor = a;
}
}
System.out.println("El numero mayor es: " + mayor);
System.out.println("El numero menor es: " + menor);
}
}
Ejercicio 5. Crea un programa que saque números al azar hasta que salga 24. Después, hará la cuenta de todos los que han salido.
Solución:
public class Main {
public static void main(String[] args) {
int a = 0;
int suma=0;
while (a!=24) {
a=(int)(Math.random()*100); suma++;
}
System.out.println("La suma total de números es: " + suma);
}
}
Ejercicio 6. Crea un programa que genere aleatoriamente 20 notas y las clasifique en suficiente, aprobado, notable y sobresaliente.
Solución:
public class Main {
public static void main(String[] args) {
String nota = "";
for (int i=0;i<=20;i++) {
double a =(Math.random() * 10);
String resultado = String.format("%.2f", a);
if (a<5) {
nota = "Suspenso";
}
if (a>=5&&a<7) {
nota = "suficiente";
}
if (a>=7&&a<9) {
nota = "Notable";
}
if (a>=9) {
nota = "Sobresaliente";
}
System.out.println(resultado + "----- > " + nota);
}
}
}
Ejercicio 7. Crea un programa que muestra la tirada de dos dados hasta que salga el mismo resultado en ambos.
Solución:
public class Main {
public static void main(String[] args) {
int a =0;
int b =1;
while (a!=b) {
a =(int)(Math.random() * 6+1);
b =(int)(Math.random() * 6+1);
System.out.println("La tirada de los dados es " + a + " " + b);
}
}
}
💡Uso de Enteros: Para obtener números enteros en un rango específico, conviértelo a entero con (int). Además, ajusta el rango añadiendo 1 a la fórmula: (int)(Math.random() * (max – min + 1) + min). Esto incluye tanto el valor mínimo como el máximo en el rango de posibles resultados.
Ejercicio 8. Programa en Java en el que tenemos cinco intentos para adivinar un número creado al azar.
Solución:
import java.util.Scanner; public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in); int intentos = 5;
//Creamos una contraseña de cuatro dígitos. Entre 1000 y 9999.
int contrasena = (int)(Math.random()*9000+1000);
System.out.println("La contrasena es " + contrasena);
while (intentos >0) { intentos--;
System.out.println("Introduce una contraseña ");
int prueba = ejercicio.nextInt();
if (prueba==contrasena) {
System.out.println("Has acertado");
break;
}
if (intentos ==0) {
System.out.println("No hay más intentos");
}
}
}
}
Ejercicio 9. Creamos un programa que simule una quiniela de 9 partidos. Se mostrarán tres columnas donde aparecerá marcado 1, X o 2.
Solución:
public class Main {
public static void main(String[] args) {
System.out.println("El resultado de la quiniela es el siguiente:");
System.out.println(" ");
for (int i =1;i<=9;i++) {
int resultado = (int)(Math.random()*3+1);
if (resultado==1) {
System.out.println("Partido " + i + " = " + " 1 | |");
}
if (resultado==2) {
System.out.println("Partido " + i + " = " + " | X |");
}
if (resultado==3) {
System.out.println("Partido " + i + " = " + " | X | 2");
}
}
}
}
💡Evitar Valores No Deseados: Si necesitas excluir ciertos valores del rango, usa condicionales para volver a generar el número aleatorio en caso de obtener un valor no deseado. Por ejemplo, si generas un número aleatorio y necesitas excluir el 100, puedes usar un bucle while para repetir la generación hasta obtener un valor válido.
Ejercicio 10. Ejercicio en Java de números aleatorios, pero en este caso utilizando una variable char. Crea un programa que muestre cinco veces los siguientes símbolos de forma aleatoria: &^%$.*.
Solución:
public class Main {
public static void main(String[] args) {
char a= ' ';
for (int i=1;i<=5;i++) {
int b = (int)(Math.random()*5+1);
if (b==1) {
a = '&';
}
if (b==2) {
a = '*';
}
if (b==3) {
a = '^';
}
if (b==4) {
a = '%';
}
if (b==5) {
a = '$';
}
System.out.println(a);
}
}
}