package EstructurasControl;

import java.sql.SQLOutput;
import java.util.Scanner;

public class Condicionales {
    public static void main(String[] args) {
        //PRETEXTO
        Scanner sc = new Scanner(System.in);
        //EJERCIO 1. Escribe un algoritmo que pregunta al usuario su edad y determine si es mayor de edad o no.

        //ERROR: No se solicita aunqeu si se pide.
        // Solicitarla: Mensaje de salida por pantalla informando al usuario lo que necesitas
        /*System.out.println("¿Cuál es tu edad?");
        int edad = sc.nextInt();    //Pedirla: Recoger el valor para grabarlo en una variable.
        if (edad >= 18) {
            System.out.println("Es mayor de edad");
        } else {
            System.out.println("No es mayor de edad");
        }*/
        //EJERCICIO 3. Escribe un algoritmo que determine si un número ingresado es negativo, positivo o cero.
        /*System.out.println("Escribe un número");
        int numero = sc.nextInt();
        if (numero > 0){
            System.out.println("El número es positivo");
        } else if (numero == 0) { //ERROR: Diferencia entre operador de asignación y comparación '=' y '=='.
            System.out.println("El número es cero");
        }else {
            System.out.println("El número es negativo");
        }*/

        //EJERCICIO 4. Escribe un algoritmo que pida 3 números al usuario y determine cuál es el mayor de los 3, y el menor.
        /*System.out.println("Escribe tres números");
        System.out.println("Número 1:");
        int numero1 = sc.nextInt();
        System.out.println("Número 2:");
        int numero2 = sc.nextInt();
        System.out.println("Número 3:");
        int numero3 = sc.nextInt();

        //CONDICIONALES PARA OBTENER EL NÚMERO MAYOR.
        if (numero1 > numero2 && numero1 > numero3) {
            System.out.println("EL primer número " + numero1 + "es el mayor");
        } else if (numero2 > numero1 && numero2 > numero3) {
            System.out.println("EL segundo número" + numero2 + " es el mayor");
        } else {
            System.out.println("El tercer número" + numero3 + " es el mayor");
        }
        //CONDICIONALES PARA OBTENER EL NÚMERO MENOR.
        if (numero1 < numero2 && numero1 < numero3) {
            System.out.println("EL primer número " + numero1 + "es el menor");
        } else if (numero2 < numero1 && numero2 < numero3) {
            System.out.println("EL segundo número" + numero2 + " es el menor");
        } else {
            System.out.println("El tercer número" + numero3 + " es el menor");
        }*/

        //6. Tiendas Alejandro quiere utilizar un algoritmo que ingresando
        // el día de la semana y el montante de la compra; si el día es martes o jueves,
        // se realizará un descuento del 15% por la compra. Visualizar el descuento y el total a pagar por la compra.

        /*System.out.println("¿Que día de la semana es?");
        String dia = sc.nextLine();
        System.out.println("¿Cuál es la cantidad de la compra?");
        double cantidadCompra = sc.nextDouble();
        double descuento = 0;


        if (dia.equalsIgnoreCase("Martes") || dia.equalsIgnoreCase("Jueves")) {
            //ERROR: No poner 15% sino 15/100 = 0.15
            // cantidadCompra = cantidadCompra - cantidadCompra*0.15; //Método más intuitivo
            // cantidadCompra = cantidadCompra*(1-0.15);
            // cantidadCompra*=(1-0.15); //Método más adecuado
            descuento = 15;
            double totalCompra = cantidadCompra -(cantidadCompra * (descuento/100));
            System.out.println("La compra antes del descuento es de: " + cantidadCompra);
            System.out.println("El descuento es del: " + descuento + "%" + " : " + (cantidadCompra * (descuento / 100)));
            System.out.println("El total a pagar es: " + totalCompra);
        } else {
            System.out.println("La compra antes del descuento es de: " + cantidadCompra);
            System.out.println("El descuento es del: " + descuento);
            System.out.println("El total a pagar es: " + cantidadCompra);
        }*/

        //7. Escribe un algoritmo que lea la temperatura en centígrados del día e imprima la sensación térmica, de acuerdo, a la siguiente tabla:

        /*System.out.println("Escriba la temperatura: ");
        int temperatura = sc.nextInt();

        if (temperatura <= 0){
            System.out.println("Muy frío");
        } else if (temperatura <= 10){
            System.out.println("Frío");
        } else if (temperatura <= 20) {
            System.out.println("Neutral");
        } else if (temperatura < 30 && temperatura > 20){
            System.out.println("Caluroso");
        }else {
            System.out.println("Muy caluroso");
        }*/

        // 8. Escribe un algoritmo que determine si un número es múltiplo de 3, de 5 o de ambos. El usuario debe ingresar el número y el programa debe indicar todas las condiciones que se cumplen.
        // IMPORTANTE: EL RESTO DEBE DE SER 0
        // IMPORTANTE: PONER PRIMERO LAS DOS CONDICIONES, SINO SI INTRODUCES UN NÚMERO QUE ES MÚLTIPLO DE LOS DOS TE DIRÁ QUE ES SÓLO MÚLTIPLO DEL PRIMER NÚMERO QUE HAYAS PUESTO.

        /* System.out.println("Ingresa un número: ");
        int numero = sc.nextInt();

        if (numero%3 == 0 && numero%5 == 0) {
            System.out.println("El número: " + numero + " es múltiplo de 3 y de 5");
        } else if (numero%5 == 0) {
            System.out.println("El número: " + numero + " es múltiplo de 5");
        } else if (numero%3 == 0) {
            System.out.println("El número: " + numero + " es múltiplo de 3");
        }else {
            System.out.println("El número: " + numero + " no es múltiplo de 3 ni de 5");
        } */


        //9. Escribe un algoritmo que determine el precio final de una entrada al cine. Si la persona es estudiante [18-25] años, se aplica un descuento del 50%. Si la persona es mayor de 60 años, se aplica un descuento del 30%. El precio de la entrageneral es de 10€.

        /*System.out.println("¿Cuál es la edad de la persona?");
        int edad = sc.nextInt();
        double precio = 10;
        double descuento = 0;

        if (edad <= 25 && edad >=18){
            descuento = 50;
            double precioFinal = precio - (precio * ((descuento)/100));
            System.out.println("Coste de la entrada " + precio);
            System.out.println("Descuento: " + descuento + "%: " + (precio * (descuento/100)));
            System.out.println("Precio final: " + precioFinal);
        } else if (edad > 60) {
            descuento = 30;
            double precioFinal = precio - (precio * ((descuento)/100));
            System.out.println("Coste de la entrada " + precio);
            System.out.println("Descuento: " + descuento + "%: " + (precio * (descuento/100)));
            System.out.println("Precio final: " + precioFinal);
        }else {
            System.out.println("Coste de la entrada " + precio);
            System.out.println("Descuento: " + descuento + "%: " + (precio * (descuento/100)));
            System.out.println("Precio final: " + precio);
        }*/


        // 10. Escribe un algoritmo que determine el índice de masa corporal (IMC) de una persona y clasifique el resultado. El IMC se calcula como el peso en kilogramos dividido por la altura en metros al cuadrado. Las categorías son: • Bajo peso: IMC menor a 18.5. • Peso normal: IMC entre 18.5 y 24.9. • Sobrepeso: IMC entre 25 y 29.9. • Obesidad: IMC 30 o más.
        //El usuario debe ingresar su peso y su altura, y el programa debe calcular el IMC y mostrar la categoría correspondiente.
        //IMPORTANTE: Al meter los datos poner 1,88 en vez de 1.88 en la terminal.

        /*System.out.println("Introduzca su peso: ");
        double peso = sc.nextDouble();
        System.out.println("Introduzca su altura: ");
        double altura = sc.nextDouble();
        double IMC = peso/(altura*altura);

        if (IMC < 18.5){
            System.out.println("Bajo peso");
        } else if (IMC > 18.5 && IMC < 24.9){
            System.out.println("Peso normal");
        } else if (IMC > 25 && IMC < 29.9) {
            System.out.println("Sobrepeso");
        }else{
            System.out.println("Obesidad");
        }*/

        // 11. Escribe un algoritmo que determine el área y el perímetro de una figura geométrica. El usuario puede elegir entre un cuadrado, un rectángulo o un círculo. Según la elección del usuario, el programa debe solicitar las dimensiones correspondientes y calcular el área y el perímetro.
        // IMPORTANTE: Math.PI ES EL NUMERO PI.

        /*System.out.println("Dime una figura geométrica (Cuadrado, Rectángulo o Círculo): ");
        String figura = sc.next();

        if (figura.equalsIgnoreCase("Cuadrado")){
            System.out.println("¿Cuánto miden los lados?: ");
            double lado = sc.nextDouble();
            double area = lado * lado;
            double perimetro = 4 * lado;
            System.out.println("El área es: " + area);
            System.out.println("El perímetro es: " + perimetro);
        }else if (figura.equalsIgnoreCase("Rectángulo")){
            System.out.println("¿Cuánto mide la base?: ");
            double base = sc.nextDouble();
            System.out.println("¿Cuánto mide la altura?: ");
            double altura = sc.nextDouble();
            double area = base * altura;
            double perimetro = 2 * (base + altura);
            System.out.println("El área es: " + area);
            System.out.println("El perímetro es: " + perimetro);
        }else if (figura.equalsIgnoreCase("Círculo")){
            System.out.println("¿Cuál es el radio?: ");
            double radio = sc.nextDouble();
            double area = Math.PI * (radio*radio);
            double perimetro = 2 * Math.PI * radio;
            System.out.println("El área es: " + area);
            System.out.println("El perímetro es: " + perimetro);
        }else{
            System.out.println("No es ninguna figura");
        } */
        System.out.println("Dime una figura geométrica (Cuadrado, Rectángulo o Círculo): ");
        String figura = sc.next();

        double area=0;
        double perimetro=0; //Varias a utilizar

        if (figura.equalsIgnoreCase("Cuadrado")){
            System.out.println("¿Cuánto miden los lados?: ");
            double lado = sc.nextDouble();
            area = lado * lado;
            perimetro = 4 * lado;

        }else if (figura.equalsIgnoreCase("Rectángulo")){
            System.out.println("¿Cuánto mide la base?: ");
            double base = sc.nextDouble();
            System.out.println("¿Cuánto mide la altura?: ");
            double altura = sc.nextDouble();
            area = base * altura;
            perimetro = 2 * (base + altura);

        }else if (figura.equalsIgnoreCase("Círculo")){
            System.out.println("¿Cuál es el radio?: ");
            double radio = sc.nextDouble();
            area = Math.PI * (radio*radio);
            perimetro = 2 * Math.PI * radio;

        }else{
            System.out.println("No es ninguna figura");
        }

        System.out.println("El área de "+figura+" es: " + area);
        System.out.println("El perímetro de "+figura + " es: " + perimetro);


        // 12. Escribe un algoritmo para realizar un programa que simule un cajero automático con un saldo inicial de 1.000€, donde podrás Ingresar dinero, y Retirar Dinero.

        /* System.out.println("¿Qué operación desea realizar? (Ingreso o Retirada)");
        String operacion = sc.next();
        double saldoInicial = 1000;

        if (operacion.equalsIgnoreCase("Ingreso")){
            System.out.println("¿Cuánta cantidad deseas ingresar?: ");
            double cantidad = sc.nextDouble();
            double saldoTotal = saldoInicial + cantidad;
            System.out.println("Te queda " + saldoTotal + " euros en tu cuenta.");
        } else if (operacion.equalsIgnoreCase("Retirada")){
            System.out.println("¿Cuánta cantidad deseas retirarr?: ");
            double cantidad = sc.nextDouble();
            double saldoTotal = saldoInicial - cantidad;
            System.out.println("Te queda " + saldoTotal + " euros en tu cuenta.");
        } else {
            System.out.println("No es una operación válida");
        } */

        // 13. Escribe un algoritmo que simule la entrada de 4 posibles puertas, donde en cada una habrá un escenario diferente (Se imprime por pantalla el escenario):

        /* System.out.println("Selecciona una puerta (Puerta 1, 2, 3 o 4): ");
        String puerta = sc.next();

        if (puerta.equalsIgnoreCase("Puerta 1")){
            System.out.println("Las paredes llenas de números irracionales");
        } else if (puerta.equalsIgnoreCase("Puerta 2")) {
            System.out.println("El suelo lleno de ecuaciones exponenciales");
        } else if (puerta.equalsIgnoreCase("Puerta 3")) {
            System.out.println("El techo lleno de fórmulas trigonométricas");
        } else if (puerta.equalsIgnoreCase("Puerta 4")){
            System.out.println("Las personas solo hablan en binario");
        } else {
            System.out.println("No has elegido una puerta válida");
        } */
    }
}
