Kurzusok
/
Clojure
Clojure
/
Feladatok
/
Autók, összeállni!
Autók, összeállni!

Autók, összeállni!

Tanulófeladat

Bevezetés

A Clojure számai a következők:

  • Egész számok: olyan számok, amelyeknél a tizedeselválasztó mögött nincs számjegy (egész számok). Például: -6, 0, 1, 25, 976 és 500000.
  • Lebegőpontos számok: olyan számok, amelyeknél a tizedeselválasztó mögött nulla vagy több számjegy áll. Például: -2.4, 0.1, 3.14, 16.984025 és 1024.0.

Két gyakori számtípus az int és a float. Az int egy 32 bites egész szám, a float pedig egy 64 bites lebegőpontos szám.

A számításokat a szokásos aritmetikai operátorokkal végezzük. A számokat a szokásos numerikus összehasonlító operátorokkal (>, <, <=, >=), az egyenlőségoperátorral (=) és a nem egyenlőség operátorral (not=) lehet összehasonlítani.

Ebben a feladatban feltételesen kell végrehajtanod a logikát. A Clojure-ban erre gyakran a cond-ot használjuk:

(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")

Megjegyzés

Bizonyos esetekben a == operátor előnyösebb lehet a =-nél, mégpedig amikor a számokat a pontos típusuktól függetlenül kell összehasonlítani. Például:

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

A Clojure egyenlőségről szóló útmutatója, egész pontosan a számokról szóló szakasz további részletekkel szolgál.

Utasítások

Ebben a feladatban egy autógyár összeszerelősorának termelését elemző kódot fogsz írni. Az összeszerelősor sebessége 0 (kikapcsolva) és 10 (maximum) között változhat.

A legkisebb sebességen (1) óránként 221 autó készül. A termelés lineárisan nő a sebességgel. Ha tehát a sebesség 4, akkor óránként 4 * 221 = 884 autót kell gyártania. A nagyobb sebesség viszont növeli annak az esélyét, hogy hibás autók készülnek, amelyeket aztán ki kell dobni. A következő táblázat azt mutatja, hogyan befolyásolja a sebesség a sikerességi arányt:

  • 0: 0%-os sikerességi arány.
  • 1-től 4-ig: 100%-os sikerességi arány.
  • 5-től 8-ig: 90%-os sikerességi arány.
  • 9: 80%-os sikerességi arány.
  • 10: 77%-os sikerességi arány.

Két részfeladatod van.

1. Számítsd ki az óránkénti termelési rátát

Valósítsd meg a production-rate függvényt, amely kiszámítja az összeszerelősor óránkénti termelési rátáját, figyelembe véve a sikerességi arányt:

(production-rate 6)
;;=> 1193.4

Figyelj rá, hogy a visszaadott érték double típusú.

2. Számítsd ki a percenként legyártott működő darabok számát

Valósítsd meg a working-items függvényt, amely kiszámítja, hogy percenként hány működő autó készül:

(working-items 6)
;;=> 19

Figyelj rá, hogy a visszaadott érték int típusú.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Clojure Exercism

Készen állsz elkezdeni a(z) Autók, összeállni! feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Clojure nyelvet 12 fogalom105 feladat segítségével, valódi emberi mentorálással, mindez ingyen.