Parcours
/
Clojure
Clojure
/
Exercices
/
Voitures, assemble !
Voitures, assemble !

Voitures, assemble !

Exercice d'apprentissage

Introduction

Les nombres en Clojure comprennent :

  • Les entiers : nombres sans chiffre après le séparateur décimal (nombres entiers). Par exemple -6, 0, 1, 25, 976 et 500000.
  • Les nombres à virgule flottante : nombres avec zéro ou plusieurs chiffres après le séparateur décimal. Par exemple -2.4, 0.1, 3.14, 16.984025 et 1024.0.

Deux types numériques courants sont int et float. Un int est un entier de 32 bits et un float est un nombre à virgule flottante de 64 bits.

L'arithmétique se fait à l'aide des opérateurs arithmétiques standard. On peut comparer les nombres à l'aide des opérateurs de comparaison numériques standard (>, <, <=, >=), de l'opérateur d'égalité (=) et de l'opérateur de non-égalité (not=).

Dans cet exercice, tu dois exécuter de la logique de manière conditionnelle. Une façon courante de faire cela en Clojure consiste à utiliser 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")

Note

L'opérateur == peut être préférable à = dans certains cas où l'on doit comparer des nombres indépendamment de leur type exact. Par exemple,

(== 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

Le guide de Clojure sur l'égalité, et plus particulièrement la section sur Numbers, entre dans plus de détails.

Instructions

Dans cet exercice, tu vas écrire du code pour analyser la production d'une chaîne de montage dans une usine de voitures. La vitesse de la chaîne de montage peut aller de 0 (à l'arrêt) à 10 (maximum).

À sa vitesse la plus basse (1), 221 voitures sont produites chaque heure. La production augmente linéairement avec la vitesse. Ainsi, avec la vitesse réglée sur 4, elle devrait produire 4 * 221 = 884 voitures par heure. Cependant, des vitesses plus élevées augmentent la probabilité que des voitures défectueuses soient produites, et celles-ci doivent ensuite être écartées. Le tableau suivant montre comment la vitesse influence le taux de réussite :

  • 0 : 0 % de réussite.
  • 1 à 4 : 100 % de réussite.
  • 5 à 8 : 90 % de réussite.
  • 9 : 80 % de réussite.
  • 10 : 77 % de réussite.

Tu as deux tâches à accomplir.

1. Calcule le taux de production par heure

Implémente la fonction production-rate pour calculer le taux de production horaire de la chaîne de montage, en tenant compte de son taux de réussite :

(production-rate 6)
;;=> 1193.4

Note que la valeur renvoyée est un double.

2. Calcule le nombre d'éléments fonctionnels produits par minute

Implémente la fonction working-items pour calculer combien de voitures fonctionnelles sont produites par minute :

(working-items 6)
;;=> 19

Note que la valeur renvoyée est un int.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Clojure Exercism

Prêt à commencer Voitures, assemble ! ?

Inscris-toi sur Exercism pour apprendre et maîtriser Clojure avec 12 concepts105 exercices, et un vrai mentorat humain, le tout gratuitement.