Διαδρομές
/
Clojure
Clojure
/
Ασκήσεις
/
Αυτοκίνητα, συναρμολογηθείτε!
Αυτοκίνητα, συναρμολογηθείτε!

Αυτοκίνητα, συναρμολογηθείτε!

Άσκηση εκμάθησης

Εισαγωγή

Οι αριθμοί στη Clojure περιλαμβάνουν:

  • Ακέραιους: αριθμούς χωρίς ψηφία μετά το δεκαδικό διαχωριστικό (ακέραιοι αριθμοί). Παραδείγματα είναι τα -6, 0, 1, 25, 976 και 500000.
  • Αριθμούς κινητής υποδιαστολής: αριθμούς με μηδέν ή περισσότερα ψηφία μετά το δεκαδικό διαχωριστικό. Παραδείγματα είναι τα -2.4, 0.1, 3.14, 16.984025 και 1024.0.

Δύο συνηθισμένοι αριθμητικοί τύποι είναι ο int και ο float. Ο int είναι ένας ακέραιος 32 bit και ο float είναι ένας αριθμός κινητής υποδιαστολής 64 bit.

Η αριθμητική γίνεται με τους τυπικούς αριθμητικούς τελεστές. Οι αριθμοί μπορούν να συγκριθούν με τους τυπικούς τελεστές σύγκρισης αριθμών (>, <, <=, >=), τον τελεστή ισότητας (=) και τον τελεστή ανισότητας (not=).

Σε αυτή την άσκηση πρέπει να εκτελέσεις λογική υπό συνθήκη. Ένας συνηθισμένος τρόπος για να το κάνεις αυτό στη Clojure είναι να χρησιμοποιήσεις το 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")

Σημείωση

Ο τελεστής == μπορεί να είναι προτιμότερος από τον = σε ορισμένες περιπτώσεις, όπου οι αριθμοί πρέπει να συγκριθούν ανεξάρτητα από τον ακριβή τύπο τους. Για παράδειγμα,

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

Ο οδηγός της Clojure για την ισότητα, και συγκεκριμένα η ενότητα για τους αριθμούς, αναφέρει περισσότερες λεπτομέρειες.

Οδηγίες

Σε αυτή την άσκηση θα γράψεις κώδικα για να αναλύσεις την παραγωγή μιας γραμμής συναρμολόγησης σε ένα εργοστάσιο αυτοκινήτων. Η ταχύτητα της γραμμής συναρμολόγησης μπορεί να κυμαίνεται από 0 (σβηστή) έως 10 (μέγιστη).

Στη χαμηλότερη ταχύτητά της (1), παράγονται 221 αυτοκίνητα την ώρα. Η παραγωγή αυξάνεται γραμμικά με την ταχύτητα. Έτσι, με την ταχύτητα ρυθμισμένη στο 4, θα πρέπει να παράγει 4 * 221 = 884 αυτοκίνητα την ώρα. Ωστόσο, οι υψηλότερες ταχύτητες αυξάνουν την πιθανότητα να παραχθούν ελαττωματικά αυτοκίνητα, τα οποία στη συνέχεια πρέπει να απορριφθούν. Ο παρακάτω πίνακας δείχνει πώς η ταχύτητα επηρεάζει το ποσοστό επιτυχίας:

  • 0: ποσοστό επιτυχίας 0%.
  • 1 έως 4: ποσοστό επιτυχίας 100%.
  • 5 έως 8: ποσοστό επιτυχίας 90%.
  • 9: ποσοστό επιτυχίας 80%.
  • 10: ποσοστό επιτυχίας 77%.

Έχεις δύο εργασίες.

1. Υπολόγισε τον ρυθμό παραγωγής ανά ώρα

Υλοποίησε τη συνάρτηση production-rate για να υπολογίσεις τον ρυθμό παραγωγής της γραμμής συναρμολόγησης ανά ώρα, λαμβάνοντας υπόψη το ποσοστό επιτυχίας της:

(production-rate 6)
;;=> 1193.4

Σημείωσε ότι η τιμή που επιστρέφεται είναι double.

2. Υπολόγισε τον αριθμό των λειτουργικών αυτοκινήτων που παράγονται ανά λεπτό

Υλοποίησε τη συνάρτηση working-items για να υπολογίσεις πόσα λειτουργικά αυτοκίνητα παράγονται ανά λεπτό:

(working-items 6)
;;=> 19

Σημείωσε ότι η τιμή που επιστρέφεται είναι int.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Clojure Exercism

Έτοιμος να ξεκινήσεις την άσκηση Αυτοκίνητα, συναρμολογηθείτε!;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Clojure με 12 έννοιες105 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.