Tracks
/
Clojure
Clojure
/
Übungen
/
Autos, montiert!
Autos, montiert!

Autos, montiert!

Lernübung

Einführung

Zahlen in Clojure umfassen:

  • Ganzzahlen: Zahlen ohne Ziffern nach dem Dezimaltrennzeichen (ganze Zahlen). Beispiele sind -6, 0, 1, 25, 976 und 500000.
  • Gleitkommazahlen: Zahlen mit null oder mehr Ziffern nach dem Dezimaltrennzeichen. Beispiele sind -2.4, 0.1, 3.14, 16.984025 und 1024.0.

Zwei häufige numerische Typen sind int und float. Ein int ist eine 32-Bit-Ganzzahl und ein float ist eine 64-Bit-Gleitkommazahl.

Für Berechnungen verwendest du die üblichen Rechenoperatoren. Zahlen lassen sich mit den üblichen numerischen Vergleichsoperatoren (>, <, <=, >=), dem Gleichheitsoperator (=) und dem Ungleichheitsoperator (not=) vergleichen.

In dieser Übung musst du Logik bedingt ausführen. Ein üblicher Weg dafür in Clojure ist 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")

Hinweis

Der Operator == kann in manchen Fällen besser geeignet sein als =, wenn Zahlen unabhängig von ihrem genauen Typ verglichen werden sollen. Zum Beispiel:

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

Der Clojure-Leitfaden zur Gleichheit, insbesondere der Abschnitt über Zahlen, geht genauer darauf ein.

Anleitung

In dieser Übung schreibst du Code, um die Produktion eines Fließbands in einer Autofabrik zu analysieren. Die Geschwindigkeit des Fließbands reicht von 0 (aus) bis 10 (Maximum).

Bei der niedrigsten Geschwindigkeit (1) werden 221 Autos pro Stunde produziert. Die Produktion steigt linear mit der Geschwindigkeit. Bei Geschwindigkeit 4 werden also 4 * 221 = 884 Autos pro Stunde produziert. Höhere Geschwindigkeiten erhöhen jedoch die Wahrscheinlichkeit, dass fehlerhafte Autos produziert werden, die dann aussortiert werden müssen. Die folgende Tabelle zeigt, wie die Geschwindigkeit die Erfolgsquote beeinflusst:

  • 0: 0 % Erfolgsquote.
  • 1 bis 4: 100 % Erfolgsquote.
  • 5 bis 8: 90 % Erfolgsquote.
  • 9: 80 % Erfolgsquote.
  • 10: 77 % Erfolgsquote.

Du hast zwei Aufgaben.

1. Berechne die Produktionsrate pro Stunde

Implementiere die Funktion production-rate, um die Produktionsrate des Fließbands pro Stunde zu berechnen und dabei die Erfolgsquote zu berücksichtigen:

(production-rate 6)
;;=> 1193.4

Beachte, dass der zurückgegebene Wert ein double ist.

2. Berechne die Anzahl der pro Minute produzierten funktionierenden Autos

Implementiere die Funktion working-items, um zu berechnen, wie viele funktionierende Autos pro Minute produziert werden:

(working-items 6)
;;=> 19

Beachte, dass der zurückgegebene Wert ein int ist.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Clojure Exercism

Bereit, mit Autos, montiert! zu starten?

Melde dich bei Exercism an, um Clojure mit 12 Konzepte105 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.