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

¡Coches, ensamblad!

Ejercicio de aprendizaje

Introducción

Los números en Clojure incluyen:

  • Enteros: números que no tienen dígitos después del separador decimal (números enteros). Ejemplos: -6, 0, 1, 25, 976 y 500000.
  • Números de coma flotante: números con cero o más dígitos después del separador decimal. Ejemplos: -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 coma flotante de 64 bits.

La aritmética se realiza usando los operadores aritméticos estándar. Los números se pueden comparar usando 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 habitual de hacerlo 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 == podría ser preferible a = en algunos casos en los que es necesario comparar números independientemente de su 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 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).

A su velocidad mínima (1), se producen 221 coches cada hora. La producción aumenta de forma lineal 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 descartar. La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:

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

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 cadena de montaje, teniendo en cuenta su tasa de éxito:

(production-rate 6)
;;=> 1193.4

Ten en cuenta que el valor devuelto es un double.

2. Calcula el número de coches en buen estado producidos por minuto

Implementa la función working-items para calcular cuántos coches en buen estado se producen por minuto:

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

¿Listo para empezar ¡Coches, ensamblad!?

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