Tracks
/
C#
C#
/
Übungen
/
Autos, montiert!
Autos, montiert!

Autos, montiert!

Lernübung

Einführung

Zahlen

In C# gibt es zwei verschiedene Arten von Zahlen:

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

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

Für Rechnungen verwendest du die üblichen arithmetischen Operatoren. Zahlen kannst du mit den üblichen numerischen Vergleichsoperatoren sowie den Operatoren für Gleichheit (==) und Ungleichheit (!=) vergleichen.

In C# gibt es zwei Arten von numerischen Konvertierungen:

  1. Implizite Konvertierungen: Es gehen keine Daten verloren und du brauchst keine zusätzliche Syntax.
  2. Explizite Konvertierungen: Daten könnten verloren gehen und du brauchst zusätzliche Syntax in Form eines Casts.

Da ein int weniger präzise ist als ein double, ist die Konvertierung von einem int in einen double sicher und damit implizit. Die Konvertierung von einem double in einen int kann jedoch Datenverlust bedeuten, deshalb ist sie explizit.

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

if-Anweisungen

In dieser Übung musst du Logik abhängig von Bedingungen ausführen. Am häufigsten machst du das in C# mit einer if/else-Anweisung:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

Die Bedingung einer if-Anweisung muss vom Typ bool sein. In C# gibt es kein Konzept von truthy-Werten.

Anleitung

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

Bei der niedrigsten Geschwindigkeit (1) werden pro Stunde 221 Autos 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.

Du hast drei Aufgaben.

1. Berechne die Erfolgsrate

Implementiere die (statische) Methode AssemblyLine.SuccessRate(), um für eine gegebene Geschwindigkeit den Anteil der fehlerfrei hergestellten Teile zu berechnen. Die folgende Tabelle zeigt, wie die Geschwindigkeit die Erfolgsrate beeinflusst:

  • 0: 0 % Erfolgsrate.
  • 1 bis 4: 100 % Erfolgsrate.
  • 5 bis 8: 90 % Erfolgsrate.
  • 9: 80 % Erfolgsrate.
  • 10: 77 % Erfolgsrate.
AssemblyLine.SuccessRate(10)
// => 0.77

2. Berechne die Produktionsrate pro Stunde

Implementiere die (statische) Methode AssemblyLine.ProductionRatePerHour(), um die Produktionsrate des Fließbands pro Stunde zu berechnen und dabei die Erfolgsrate zu berücksichtigen:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

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

3. Berechne die Anzahl der pro Minute produzierten funktionierenden Teile

Implementiere die (statische) Methode AssemblyLine.WorkingItemsPerMinute(), um zu berechnen, wie viele funktionierende Autos pro Minute produziert werden:

AssemblyLine.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
C# Exercism

Bereit, mit Autos, montiert! zu starten?

Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.