In Rust gibt es zwei verschiedene Kategorien von Zahlen: Ganzzahlen (die vorzeichenbehaftet oder vorzeichenlos sein können) und Gleitkommazahlen.
Der Name eines numerischen Typs besteht aus zwei Teilen:
Die folgenden Kombinationen sind möglich:
u8, i8
u16, i16
u32, i32, f32
u64, i64, f64
u128, i128
Beachte, dass es für Gleitkommazahlen nur 32-Bit- und 64-Bit-Varianten gibt.
Rust führt keine implizite Typkonvertierung durch.
Das bedeutet: Wenn du einen numerischen Typ in einen anderen umwandeln musst, musst du das explizit tun.
Wenn du von einem größeren Typ in einen kleineren umwandelst (zum Beispiel u64 nach u32), kannst du Daten verlieren.
Die Umwandlung von einer Gleitkommazahl in eine Ganzzahl wird alles hinter dem Dezimaltrennzeichen verlieren, was praktisch abrundet.
In dieser Übung schreibst du Code, um die Produktion einer Montagelinie in einer Autofabrik zu analysieren. Die Geschwindigkeit der Montagelinie kann von 0 (aus) bis 10 (Maximum) reichen.
Bei ihrer niedrigsten Geschwindigkeit (1) werden 221 Autos pro Stunde produziert. Die Produktion steigt linear mit der Geschwindigkeit. Bei der Geschwindigkeit 4 sollten also 4 * 221 = 884 Autos pro Stunde produziert werden. 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:
1 bis 4: 100 % Erfolgsquote.5 bis 8: 90 % Erfolgsquote.9 und 10: 77 % Erfolgsquote.Du hast zwei Aufgaben.
Implementiere eine Methode, die die Produktionsrate der Montagelinie pro Stunde berechnet und dabei ihre Erfolgsquote berücksichtigt:
assembly_line::production_rate_per_hour(6)
// Returns: 1193.4
Beachte, dass der zurückgegebene Wert ein f64 ist.
Implementiere eine Methode, die berechnet, wie viele funktionierende Autos pro Minute produziert werden:
assembly_line::working_items_per_minute(6)
// Returns: 19
Beachte, dass der zurückgegebene Wert ein u32 ist.
Melde dich bei Exercism an, um Rust mit 99 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.