Track
/
Clojure
Clojure
/
Esercizi
/
Auto, assemblatevi!
Auto, assemblatevi!

Auto, assemblatevi!

Esercizio di apprendimento

Introduzione

I numeri in Clojure includono:

  • Interi: numeri senza cifre dopo il separatore decimale (numeri interi). Ad esempio -6, 0, 1, 25, 976 e 500000.
  • Numeri in virgola mobile: numeri con zero o più cifre dopo il separatore decimale. Ad esempio -2.4, 0.1, 3.14, 16.984025 e 1024.0.

Due tipi numerici comuni sono int e float. Un int è un numero intero a 32 bit e un float è un numero in virgola mobile a 64 bit.

L'aritmetica si esegue usando gli operatori aritmetici standard. I numeri si possono confrontare usando gli operatori di confronto numerico standard (>, <, <=, >=), l'operatore di uguaglianza (=) e l'operatore di disuguaglianza (not=).

In questo esercizio devi eseguire la logica in modo condizionale. Un modo comune per farlo in Clojure è usare 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

In alcuni casi l'operatore == può essere preferibile a = quando i numeri vanno confrontati a prescindere dal tipo esatto. Per esempio,

(== 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 guida di Clojure sull'uguaglianza, in particolare la sezione sui numeri, entra in maggiori dettagli.

Istruzioni

In questo esercizio scriverai del codice per analizzare la produzione di una catena di montaggio in una fabbrica di automobili. La velocità della catena di montaggio può variare da 0 (spenta) a 10 (massima).

Alla sua velocità minima (1) vengono prodotte 221 automobili ogni ora. La produzione aumenta in modo lineare con la velocità. Quindi, con la velocità impostata a 4, dovrebbe produrre 4 * 221 = 884 automobili all'ora. Tuttavia, velocità più elevate aumentano la probabilità che vengano prodotte automobili difettose, che poi devono essere scartate. La tabella seguente mostra come la velocità influenzi il tasso di successo:

  • 0: tasso di successo dello 0%.
  • da 1 a 4: tasso di successo del 100%.
  • da 5 a 8: tasso di successo del 90%.
  • 9: tasso di successo dell'80%.
  • 10: tasso di successo del 77%.

Hai due attività.

1. Calcola il tasso di produzione orario

Implementa la funzione production-rate per calcolare il tasso di produzione orario della catena di montaggio, tenendo conto del suo tasso di successo:

(production-rate 6)
;;=> 1193.4

Nota che il valore restituito è un double.

2. Calcola il numero di unità funzionanti prodotte al minuto

Implementa la funzione working-items per calcolare quante automobili funzionanti vengono prodotte al minuto:

(working-items 6)
;;=> 19

Nota che il valore restituito è un int.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Clojure Exercism

Vuoi iniziare Auto, assemblatevi!?

Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.