Rutas
/
Java
Java
/
Ejercicios
/
¡Coches, ensamblad!
¡Coches, ensamblad!

¡Coches, ensamblad!

Ejercicio de aprendizaje

Introducción

Números

En Java hay dos tipos diferentes de números:

  • Enteros: números sin dígitos detrás del separador decimal (números enteros). Por ejemplo, -6, 0, 1, 25, 976 y -500000.
  • Números de coma flotante: números con cero o más dígitos detrás del separador decimal. Por ejemplo, -20.4, 0.1, 2.72, 16.984025 y 1024.0.

Los dos tipos numéricos más comunes de Java son int y double. Un int es un entero de 32 bits y un double es un número de coma flotante de 64 bits.

La aritmética se hace con los operadores aritméticos estándar. Los números se pueden comparar con los operadores de comparación numéricos estándar (por ejemplo, 5 > 4 y 4 <= 5) y con los operadores de igualdad (==) y desigualdad (!=).

Java tiene dos tipos de conversiones numéricas:

  1. Conversiones implícitas: no se pierde ningún dato y no se necesita sintaxis adicional.
  2. Conversiones explícitas: se pueden perder datos y se necesita sintaxis adicional en forma de cast.

Como un int tiene menos precisión que un double, convertir de int a double es seguro y, por tanto, es una conversión implícita. Sin embargo, convertir de double a int podría implicar perder datos, así que requiere una conversión explícita.

Condicionales if-else

El condicional if-then

La instrucción de control de flujo más básica de Java es el condicional if-then. Esta instrucción se usa para ejecutar una sección de código solo cuando una condición concreta es true. Un condicional if-then se define con la cláusula if:

class Car {
    void drive() {
        // the "if" clause: the car needs to have fuel left to drive
        if (fuel > 0) {
            // the "then" clause: the car drives, consuming fuel
            fuel--;
        }
    }
}

En el ejemplo anterior, si el coche se queda sin combustible, llamar al método Car.drive no hará nada.

El condicional if-then-else

El condicional if-then-else ofrece una ruta de ejecución alternativa para cuando la condición de la cláusula if se evalúa como false. Esta ruta de ejecución alternativa sigue a una cláusula if y se define con la cláusula else:

class Car {
    void drive() {
        if (fuel > 0) {
            fuel--;
        } else {
            stop();
        }
    }
}

En el ejemplo anterior, si el coche se queda sin combustible, llamar al método Car.drive llamará a otro método para detener el coche.

El condicional if-then-else también admite varias condiciones usando la cláusula else if:

class Car {
    void drive() {
        if (fuel > 5) {
            fuel--;
        } else if (fuel > 0) {
            turnOnFuelLight();
            fuel--;
        } else {
            stop();
        }
    }
}

En el ejemplo anterior, conducir el coche cuando el combustible es menor o igual que 5 hará que el coche avance, pero se encenderá la luz de combustible. Cuando el combustible llegue a 0, el coche dejará de avanzar.

Instrucciones

En este ejercicio vas a escribir código para analizar la producción de una cadena de montaje en una fábrica de coches. La velocidad de la cadena de montaje puede ir de 0 (apagada) a 10 (máxima).

Con su velocidad más baja (1), se producen 221 coches cada hora. La producción aumenta linealmente con la velocidad. Así que con la velocidad ajustada a 4, debería producir 4 * 221 = 884 coches por hora. Sin embargo, las velocidades más altas aumentan la probabilidad de que se produzcan coches defectuosos, que después hay que desechar. La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:

  • De 1 a 4: 100 % de tasa de éxito.
  • De 5 a 8: 90 % de tasa de éxito.
  • 9: 80 % de tasa de éxito.
  • 10: 77 % de tasa de éxito.

Tienes dos tareas.

1. Calcula la tasa de producción por hora

Implementa el método CarsAssemble.productionRatePerHour() para calcular la tasa de producción por hora de la cadena de montaje, teniendo en cuenta la velocidad actual de la cadena de montaje y su tasa de éxito:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

Ten en cuenta que el valor devuelto es un double.

2. Calcula el número de unidades funcionales producidas por minuto

Implementa el método CarsAssemble.workingItemsPerMinute() para calcular cuántos coches funcionales se producen por minuto:

CarsAssemble.workingItemsPerMinute(6)
// => 19

Ten en cuenta que el valor devuelto es un int.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Java Exercism

¿Listo para empezar ¡Coches, ensamblad!?

Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.