Tracks
/
Java
Java
/
Ejercicios
/
¡Autos, ensamblen!
¡Autos, ensamblen!

¡Autos, ensamblen!

Ejercicio de aprendizaje

Introducción

Números

En Java hay dos tipos diferentes de números:

  • Enteros: números sin dígitos después del separador decimal, es decir, números enteros. Algunos ejemplos son -6, 0, 1, 25, 976 y -500000.
  • Números de punto flotante: números con cero o más dígitos después del separador decimal. Algunos ejemplos son -20.4, 0.1, 2.72, 16.984025 y 1024.0.

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

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

Java tiene dos tipos de conversiones numéricas:

  1. Conversiones implícitas: no se perderán datos y no se requiere sintaxis adicional.
  2. Conversiones explícitas: se podrían perder datos y se requiere sintaxis adicional en forma de una conversión de tipo.

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

Sentencias if-else

La sentencia if-then

La sentencia de flujo de control más básica en Java es la sentencia if-then. Esta sentencia se usa para ejecutar solo una sección de código si una condición en particular es true. Una sentencia if-then se define usando 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 auto se queda sin combustible, llamar al método Car.drive no hará nada.

La sentencia if-then-else

La sentencia if-then-else proporciona una ruta alternativa de ejecución para cuando la condición en la cláusula if se evalúa como false. Esta ruta alternativa de ejecución sigue a una cláusula if y se define usando la cláusula else:

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

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

La sentencia if-then-else también admite múltiples 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 auto cuando el combustible es menor o igual a 5 hará que el auto avance, pero encenderá la luz de combustible. Cuando el combustible llegue a 0, el auto dejará de avanzar.

Instrucciones

En este ejercicio vas a escribir código para analizar la producción de una línea de ensamblaje en una fábrica de autos. La velocidad de la línea de ensamblaje puede ir desde 0 (apagada) hasta 10 (máxima).

A su velocidad más baja (1), se producen 221 autos por hora. La producción aumenta de forma lineal con la velocidad. Así, con la velocidad en 4, debería producir 4 * 221 = 884 autos por hora. Sin embargo, las velocidades más altas aumentan la probabilidad de que se produzcan autos defectuosos, que luego hay que descartar. 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 línea de ensamblaje, teniendo en cuenta la velocidad actual de la línea de ensamblaje y su tasa de éxito:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

Ten en cuenta que el valor que se devuelve es un double.

2. Calcula la cantidad de artículos funcionales producidos por minuto

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

CarsAssemble.workingItemsPerMinute(6)
// => 19

Ten en cuenta que el valor que se devuelve es un int.

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

¿Todo listo para empezar ¡Autos, ensamblen!?

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