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

Autos, montiert!

Lernübung

Einführung

Zahlen

In Java gibt es zwei verschiedene Arten von Zahlen:

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

Die beiden häufigsten numerischen Typen in Java sind int und double. Ein int ist eine 32-Bit-Ganzzahl und ein double ist eine 64-Bit-Gleitkommazahl.

Für Rechenoperationen verwendest du die üblichen Rechenoperatoren. Zahlen kannst du mit den üblichen numerischen Vergleichsoperatoren vergleichen (z. B. 5 > 4 und 4 <= 5) sowie mit den Operatoren für Gleichheit (==) und Ungleichheit (!=).

In Java gibt es zwei Arten von numerischen Konvertierungen:

  1. Implizite Konvertierungen: Es gehen keine Daten verloren und es ist keine zusätzliche Syntax nötig.
  2. Explizite Konvertierungen: Es könnten Daten verloren gehen und es ist zusätzliche Syntax in Form eines Casts erforderlich.

Da ein int weniger präzise ist als ein double, ist die Umwandlung von einem int in ein double sicher und damit eine implizite Konvertierung. Die Umwandlung von einem double in ein int kann jedoch bedeuten, dass Daten verloren gehen, deshalb ist dafür eine explizite Konvertierung nötig.

if-else-Anweisungen

Die if-then-Anweisung

Die grundlegendste Kontrollfluss-Anweisung in Java ist die if-then-Anweisung. Mit dieser Anweisung führst du einen Codeabschnitt nur dann aus, wenn eine bestimmte Bedingung true ist. Eine if-then-Anweisung wird mit der if-Klausel definiert:

class Car {
    void drive() {
        // the "if" clause: the car needs to have fuel left to drive
        if (fuel > 0) {
            // the "then" clause: the car drives, consuming fuel
            fuel--;
        }
    }
}

Im obigen Beispiel passiert nichts, wenn du die Methode Car.drive aufrufst und das Auto keinen Kraftstoff mehr hat.

Die if-then-else-Anweisung

Die if-then-else-Anweisung bietet einen alternativen Ausführungspfad für den Fall, dass die Bedingung in der if-Klausel false ergibt. Dieser alternative Ausführungspfad folgt auf eine if-Klausel und wird mit der else-Klausel definiert:

class Car {
    void drive() {
        if (fuel > 0) {
            fuel--;
        } else {
            stop();
        }
    }
}

Im obigen Beispiel ruft der Aufruf der Methode Car.drive eine andere Methode auf, um das Auto anzuhalten, wenn das Auto keinen Kraftstoff mehr hat.

Die if-then-else-Anweisung unterstützt auch mehrere Bedingungen, indem du die else if-Klausel verwendest:

class Car {
    void drive() {
        if (fuel > 5) {
            fuel--;
        } else if (fuel > 0) {
            turnOnFuelLight();
            fuel--;
        } else {
            stop();
        }
    }
}

Im obigen Beispiel fährt das Auto, wenn der Kraftstoffstand kleiner oder gleich 5 ist, aber dabei geht die Tankwarnleuchte an. Wenn der Kraftstoff 0 erreicht, hält das Auto an.

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 einer Geschwindigkeit von 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: 80 % Erfolgsquote.
  • 10: 77 % Erfolgsquote.

Du hast zwei Aufgaben.

1. Berechne die Produktionsrate pro Stunde

Implementiere die Methode CarsAssemble.productionRatePerHour(), um die Produktionsrate des Fließbands pro Stunde zu berechnen. Dabei berücksichtigst du die aktuelle Geschwindigkeit des Fließbands und die Erfolgsquote:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

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

2. Berechne die Anzahl der funktionierenden Autos, die pro Minute produziert werden

Implementiere die Methode CarsAssemble.workingItemsPerMinute(), um zu berechnen, wie viele funktionierende Autos pro Minute produziert werden:

CarsAssemble.workingItemsPerMinute(6)
// => 19

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

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

Bereit, mit Autos, montiert! zu starten?

Melde dich bei Exercism an, um Java mit 26 Konzepte158 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.