Tracks
/
C++
C++
/
Übungen
/
Fahrzeugkauf
Fahrzeugkauf

Fahrzeugkauf

Lernübung

Einführung

Vergleiche

In C++ kannst du Werte mit den Vergleichsoperatoren vergleichen.

Vergleich Operator
gleich ==
ungleich !=
kleiner <
kleiner oder gleich <=
größer >
größer oder gleich >=

Das Ergebnis dieser Vergleiche ist immer ein boolescher Wert:

int a{3};

bool eq1 = a != 4; // true

bool eq2 = a > 5;  // false

Die Operatoren == und != prüfen, ob ein Wert gleich einem anderen ist oder nicht. Hier sind einige gängige Beispiele:

bool eq3 = 2 == 3; // false, integer comparison

bool eq4 = 2.1 != 2.2; // true, float comparison

bool eq5 = "hello" == "hello"; // true, string comparison

Die anderen Operatoren prüfen, ob ein Wert größer als (>), größer oder gleich (>=), kleiner als (<) oder kleiner oder gleich (<=) einem anderen Wert ist. Diese Art des Vergleichs gibt es für Zahlen und Strings. Beim Vergleichen von Strings wird die Wörterbuchordnung (auch lexikografische Ordnung genannt) verwendet.

bool eq6 = 2 > 3; // false, integer comparison

bool eq7 = 1.2 < 1.3; // true, float comparison

bool eq8 = "Hello" < "World"; // true, string comparison

if-Anweisungen

Bedingte Anweisungen in C++ ähneln denen in anderen Sprachen. Der zugrunde liegende Typ jeder bedingten Operation ist der Typ bool, der den Wert true oder false annehmen kann. Bedingte Anweisungen werden oft als Ablaufsteuerung verwendet, um verschiedene Bedingungen zu prüfen.

Du kannst eine if-Anweisung verwenden, die ihren Code ausführt, wenn die zugrunde liegende Bedingung true ist, etwa so:

std::string value{"val"};

if (value == "val") {
    return "was val";
}

Wenn mehr als ein Fall abgedeckt werden muss, kannst du viele if-Anweisungen mit den else if- und else-Anweisungen verketten.

int number{33};

if (number > 0) {
   return "positive";
} else if (number < 0) {
    return "negative";
} else {
   return "zero";
}

Seit C++17 können if-Anweisungen auch eine kurze Initialisierungsanweisung enthalten, mit der du eine oder mehrere Variablen für die if-Anweisung initialisieren kannst. Zum Beispiel:

int num{7};
if (int v{2 * num}; v > 10) {
    return v;
} else {
    return num;
}
// => 14

Hinweis: Auf Variablen, die in der Initialisierung erstellt wurden, kannst du nach dem Ende der if-Anweisung nicht mehr zugreifen.

Anleitung

In dieser Übung schreibst du etwas Code, der dir bei der Vorbereitung auf den Kauf eines Fahrzeugs hilft.

Du hast drei Aufgaben: eine, um festzustellen, ob du einen Führerschein brauchst, eine, die dir bei der Wahl zwischen zwei Fahrzeugen hilft, und eine, um den angemessenen Preis für ein gebrauchtes Fahrzeug zu schätzen.

1. Feststellen, ob du einen Führerschein brauchst

Einige Fahrzeugarten erfordern zum Führen einen Führerschein. Geh davon aus, dass nur die Arten "car" und "truck" einen Führerschein erfordern; alles andere kann ohne Führerschein gefahren werden.

Implementiere die Funktion needs_license(kind), die die Fahrzeugart als String entgegennimmt und einen booleschen Wert zurückgibt, der angibt, ob du für diese Fahrzeugart einen Führerschein brauchst.

needs_license("car")
// => true

needs_license("bike")
// => false

needs_license("truck")
// => true

2. Zwischen zwei möglichen Fahrzeugen wählen

Du vergleichst die Fahrzeuge, die dir zur Verfügung stehen. Am Ende bleiben zwei Optionen übrig, aber für die endgültige Entscheidung brauchst du Hilfe. Dafür implementierst du die Funktion choose_vehicle(option1, option2), die zwei Fahrzeuge als Argumente entgegennimmt und eine Entscheidung mit der Option zurückgibt, die in lexikografischer Reihenfolge zuerst kommt.

choose_vehicle("Wuling Hongguang", "Toyota Corolla")
// => "Toyota Corolla is clearly the better choice."

choose_vehicle("Volkswagen Beetle", "Volkswagen Golf")
// => "Volkswagen Beetle is clearly the better choice."

Der zurückgegebene String sollte dem Muster „<CHOSEN_VEHICLE> is clearly the better choice." folgen, wobei <CHOSEN_VEHICLE> die gewählte Option aus den übergebenen Argumenten ist.

3. Eine Schätzung für den Preis eines gebrauchten Fahrzeugs berechnen

Jetzt, wo du dich entschieden hast, willst du sichergehen, dass du beim Händler einen fairen Preis bekommst. Da du ein gebrauchtes Fahrzeug kaufen willst, hängt der Preis davon ab, wie alt das Fahrzeug ist. Für eine grobe Schätzung geh davon aus, dass das Fahrzeug 80 % des ursprünglichen Neupreises kostet, wenn es weniger als 3 Jahre alt ist. Ist es mindestens 10 Jahre alt, kostet es 50 %. Ist das Fahrzeug mindestens 3 Jahre alt, aber weniger als 10 Jahre, kostet es 70 % des ursprünglichen Preises.

Implementiere die Funktion calculate_resell_price(original_price, age), die diese Logik mit if, else if und else umsetzt (es gibt auch andere Möglichkeiten, wenn du üben möchtest). Sie nimmt den ursprünglichen Preis und das Alter des Fahrzeugs als Argumente entgegen und gibt den geschätzten Preis beim Händler zurück.

calculate_resell_price(1000, 1)
// => 800

calculate_resell_price(1000, 5)
// => 700

calculate_resell_price(1000.0, 15)
// => 500

Hinweis: Der Rückgabewert hat den Typ double.

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

Bereit, mit Fahrzeugkauf zu starten?

Melde dich bei Exercism an, um C++ mit 19 Konzepte100 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.