Ejercicios tema 4
Ejercicio 1. Escribe un día de la semana por teclado y, dependiendo del que toque, mostraremos la actividad que nos toca hacer. Las actividades son: Yoga, Bici, Gimnasio, Pintura y Lectura.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//Creamos un scanner
Scanner ejercicio = new Scanner(System.in);
//Ahora necesitamos pedir al usuario que introduzca un día de la semana
System.out.println("Introduce un día de la semana");
String dia = ejercicio.nextLine();
//Ahora escribiremos nuestra condicional
//Para el lunes. Escribimos con mayúscula y minúscula. Para ello utilizamos ||
//Con ello indicamos que nos vale cualquiera de las dos palabras
if (dia.equals("Lunes") || dia.equals("lunes")) {
System.out.print("Yoga");
}
//Para el Martes.
if (dia.equals("Martes") || dia.equals("martes")) {
System.out.print("Bici");
}
//Para el Miércoles. En este caso ponemos cuatro variables por si acaso alguien olvida el acento.
if (dia.equals("Miércoles")||dia.equals("Miercoles")||dia.equals("miércoles") || dia.equals("miercoles")) {
System.out.print("Gimnasio");
}
//Para el Jueves.
if (dia.equals("Jueves") || dia.equals("jueves")) { System.out.print("Pintura");
}
//Para el Viernes.
if (dia.equals("Viernes") || dia.equals("viernes")) { System.out.print("Lectura");
}
}
}
Ejercicio 2. Exactamente igual que el anterior, pero en caso de que introduzcamos un día incorrecto, el programa nos responderá si hemos introducido un dato erróneo.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce un día de la semana");
String dia = ejercicio.nextLine();
//Vamos a utilizar else y system.exit de la forma que vas a ver a continuación:
if ( dia.equals("Lunes") || dia.equals("lunes")) {
System.out.print("Yoga");
System.exit(0);
} else
//De esta forma el programa se cerrará en caso de que coincida con el día de la semana que hemos introducido. De lo contrario utilizara el else para irse a la siguiente condicional.
//Para el martes.
if (dia.equals("Martes") || dia.equals("martes")) {
System.out.print("Bici");
System.exit(0);
} else
//Para el Miércoles.
if ( dia.equals("Miércoles") || dia.equals("Miercoles") || dia.equals("miércoles") || dia.equals("miercoles")) {
System.out.print("Gimnasio"); System.exit(0
} else
//Para el Jueves.
if ( dia.equals("Jueves") || dia.equals("jueves")) { System.out.print("Pintura");
System.exit(0);
} else
//Para el Viernes.
if ( dia.equals("Viernes") || dia.equals("viernes")) { System.out.print("Lectura");
System.exit(0);
} else System.out.println("Dato introducido erróneo");
//El Viernes al final, después del else introducimos la línea final que se mostrará solo en caso de que ninguno de los días anteriores se haya mencionado.
}
}
Ejercicio 3. Introduce un número del 1 al 5 por teclado y, dependiendo del número, en la pantalla del programa saldrá un texto en un color: amarillo, azul, verde, negro o blanco.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce un número del 1 al 5"); int numero = ejercicio.nextInt();
if (numero == 1) {
System.out.println("Amarillo");
System.exit(0);
}
if (numero == 2) {
System.out.println("Azul");
System.exit(0);
}
if (numero == 3) {
System.out.println("Verde");
System.exit(0);
}
if (numero == 4) {
System.out.println("Negro");
System.exit(0);
}
if (numero == 5) {
System.out.println("Blanco");
System.exit(0);
} else System.out.println("El dato indicado no es correcto");
}
}
💡 Es importante que tus condicionales sean fáciles de leer y entender. Evita anidar demasiados if, else if y else, ya que esto puede hacer que el código se vuelva confuso. En su lugar, considera dividir la lógica en funciones separadas si se vuelve demasiado compleja.
💡 Aprovecha los operadores lógicos (&&, ||, !) y de comparación (==, !=, >, <, >=, <=) para combinar condiciones y hacer tus if más eficientes. Asegúrate de entender cómo funcionan para evitar errores lógicos en tu código.
Ejercicio 4. Introduce un número por teclado que hará referencia a la temperatura de una piscina. Si es menor que 20, el programa dirá que es fría; para cualquier otra temperatura, dirá que es caliente. Puede tener decimales.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce la temperatura de la piscina");
double temperatura = ejercicio.nextDouble();
if (temperatura < 20) {
System.out.println("Fría");
} else System.out.println("Caliente");
}
}
Ejercicio 5. Vamos a introducir por teclado la nota de un examen. El programa nos dirá si el alumno ha suspendido, aprobado, sacado un notable o un sobresaliente. Si es menor de 5, es suspenso. Entre 5 y 6.99 es un suficiente. Entre 7 y 8.99 es notable, y mayor de 9 es sobresaliente.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce la nota del examen");
double nota = ejercicio.nextDouble();
//Primero tomaremos en cuenta las notas que sean menores que 5
if (nota < 5) {
System.out.println("Suspenso"); System.exit(0);
}
//Después aquellas que sean mayores o iguales que 5
//Y a la vez menores que 7
if (nota >= 5 && nota <7) {
System.out.println("Suficiente");
System.exit(0);
}
//Ahora aquellas que sean mayores o iguales que 7
//Y a la vez menores que 9
if (nota >= 7 && nota <9) {
System.out.println("Notable");
System.exit(0);
}
//Por último las que son mayores e iguales que 9
//Y a la vez menores e iguales que 10
//También incluimos una línea para indicar que cualquier valor mayor que 10 es un error.
if (nota >= 9 && nota <=10) {
System.out.println("Sobresaliente");
System.exit(0);
} else System.out.println("El dato introducido no es correcto");
}
}
💡 Revisa tu código para eliminar condiciones redundantes. Por ejemplo, si una condición ya ha sido comprobada y manejada, no es necesario volver a comprobarla. Esto simplifica el código y mejora el rendimiento.
Ejercicio 6. Vamos a crear un programa que calcule el salario de un trabajador. Las primeras 160 horas se cobran a 7,8 euros. Las horas que excedan las 160 se consideran horas extra y se pagan a 12,2 euros.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
//Creamos la variable salario. En este caso es necesario inicializarla.
//De lo contrario no podríamos utilizarla en la última línea de este programa.
//No se puede pedir al programa mostrar una variable si esta no tiene valor.
//Por lo tanto le ponemos valor cero, pero después cambiará dependiendo de los datos introducidos.
double salario = 0;
System.out.println("Introduce el número de horas trabajadas");
int horas = ejercicio.nextInt();
//Primero hacemos un cálculo suponiendo que no ha habido horas extras.
if (horas <= 160) {
salario = (horas*7.8);
}
// En este supuesto ha habido horas extras
// Por lo tanto sabemos que siempre hay más de 160. Así que siempre pagaremos 160 horas a 7.8 euros.
// A esas 160 horas ahora le sumamos las extras. Para saber cuántas horas extras hemos trabajado, restamos 160 al número de horas totales.
// Ejemplo. Si el trabajador hizo 180 horas. 180-160 = 20. Veinte son extras.
//Por último simplemente sumamos las horas normales más las extras.
if (horas > 160) {
salario = (160 * 7.8) + ((horas-160)*12.2);
}
System.out.println("El salario total es de " + salario + " euros");
}
}
💡 Coloca las condiciones que son más probables de cumplirse al principio de tus bloques if. Esto puede mejorar el rendimiento del programa al reducir la cantidad de comprobaciones necesarias en casos comunes.
Ejercicio 7. Introduce un número por teclado y el programa debe decirnos si es múltiplo de 5.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce el número");
int numero = ejercicio.nextInt();
if (numero%5==0) {
System.out.println("El número es múltiplo de 5");
} else System.out.println("El número no es múltiplo de 5");
}
}
Ejercicio 8. Introducimos un número por teclado y pedimos que nos diga si es par o impar.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce el número");
int numero = ejercicio.nextInt();
if (numero%2==0) {
System.out.println("El número es par");
} else System.out.println("El número es impar");
}
}
Ejercicio 9. Crea un programa en el que introduzcas un número de tres cifras por teclado y el programa te dirá si es capicúa o no lo es.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//Creamos un scanner
Scanner ejercicio = new Scanner(System.in);
//Ahora necesitamos pedir al usuario que introduzca el número
System.out.println("Introduce un número");
int num = ejercicio.nextInt();
if (num<=99) {
System.out.println("El número introducido debe tener tres cifras");
}
if (num>999) {
System.out.println("El número introducido debe tener tres cifras");
}
//Calcular las centenas es fácil. Dividimos el número entre 100.
// Por ejemplo 356/100 = 3.56. Al ser una variable int no muestra decimales solo el 3.
int centenas = num/100;
// Para las decenas haremos lo mismo solo que antes debemos eliminar las centenas.
//Ejemplo 678. Si pudiememos quitar el 6, nos quedaria 78.
//Si pudiesemos dividir 78 entre 10 nos quedaría 7. La centena que necesitamos.
//Entonces multiplicamos las decenas por 100. En este caso 6*100 = 600.
//Restamos a nuestro número 600; 678-600 = 78. 78/10 = 7.8 al ser un int = 7
int decenas = ((num - (centenas * 100))/10);
// Hacemos lo mismo para conseguir las unidades.
//(Centenas * 100) + (decenas * 10) y se lo restamos a nuestro número.
//600 * 100 + 7*10 = 670. 678-670 = 8. La unidad que necesitamos.
int unidades = (num - (centenas * 100) - decenas * 10);
if (unidades==centenas) {
System.out.println("El número es capicúa");
} else System.out.println("El número no es capicúa");
}
}
Ejercicio 10. Crea un programa que diga cuántas cifras tiene un número introducido por teclado.
Solución:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner ejercicio = new Scanner(System.in);
System.out.println("Introduce un número");
int num = ejercicio.nextInt();
if (num>9999) {
System.out.println("El número es demasiado grande");
}
if (num<10) {
System.out.println("El número tiene una cifra");
}
if (num>=10&&num<100) {
System.out.println("El número tiene dos cifras");
}
if (num>=100&&num<1000) {
System.out.println("El número tiene tres cifras");
}
if (num>=1000&&num<10000) {
System.out.println("El número tiene cuatro cifras");
}
}
}