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

¡Autos, ensamblen!

Ejercicio de aprendizaje

Introducción

Los números en Clojure incluyen:

  • Enteros: números sin dígitos después del separador decimal (números enteros). Por ejemplo, -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. Por ejemplo, -2.4, 0.1, 3.14, 16.984025 y 1024.0.

Dos tipos numéricos comunes son int y float. Un int es un entero de 32 bits y un float 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 de comparación numérica estándar (>, <, <=, >=), el operador de igualdad (=) y el operador de desigualdad (not=).

En este ejercicio debes ejecutar lógica de forma condicional. Una forma común de hacer esto en Clojure es usar cond:

(cond (= x 5) "Expression to evaluate when x equals 5"
      (> x 7) "Expression to evaluate when x is greater than 7"
      :else   "Expression to evaluate in all other cases")

Nota

El operador == puede ser preferible a = en algunos casos en los que se necesiten comparar números sin importar el tipo exacto. Por ejemplo,

(== 5.0 5) ;; true as both numbers are equal when type is ignored
(= 5.0 5) ;; false as the types of numbers are also taken into account here i.e. float is different from int

La guía de Clojure sobre igualdad, en concreto la sección sobre números, entra en más detalles.

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).

Con su velocidad más baja (1), se producen 221 autos cada hora. La producción aumenta de forma lineal con la velocidad. Así que 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 después hay que desechar. La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:

  • 0: 0% de tasa de éxito.
  • 1 a 4: 100% de tasa de éxito.
  • 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 la función production-rate para calcular la tasa de producción por hora de la línea de ensamblaje, teniendo en cuenta su tasa de éxito:

(production-rate 6)
;;=> 1193.4

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

2. Calcula la cantidad de autos funcionales producidos por minuto

Implementa la función working-items para calcular cuántos autos funcionales se producen por minuto:

(working-items 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
Clojure Exercism

¿Todo listo para empezar ¡Autos, ensamblen!?

Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.