Kurzusok
/
C++
C++
/
Feladatok
/
Járművásárlás
Járművásárlás

Járművásárlás

Tanulófeladat

Bevezetés

Összehasonlítások

A C++-ban összehasonlító operátorokkal hasonlíthatsz össze értékeket.

Összehasonlítás Operátor
egyenlő ==
nem egyenlő !=
kisebb <
kisebb vagy egyenlő <=
nagyobb >
nagyobb vagy egyenlő >=

Ezeknek az összehasonlításoknak az eredménye mindig egy Boolean érték:

int a{3};

bool eq1 = a != 4; // true

bool eq2 = a > 5;  // false

A == és a != operátorok rendre azt ellenőrzik, hogy egy érték egyenlő-e egy másikkal vagy sem. Íme néhány gyakori példa:

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

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

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

A többi operátor azt vizsgálja, hogy az egyik érték nagyobb-e (>), nagyobb vagy egyenlő-e (>=), kisebb-e (<), illetve kisebb vagy egyenlő-e (<=), mint egy másik érték. Ez a fajta összehasonlítás számokra és stringekre érhető el. Stringek összehasonlításakor a szótári sorrendet (más néven lexikográfiai sorrendet) követjük.

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

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

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

Elágazások

A C++ feltételes szerkezetei hasonlóak más nyelvekéhez. Bármely feltételes művelet mögöttes típusa a bool típus, amelynek értéke true vagy false lehet. A feltételes szerkezeteket gyakran vezérlési mechanizmusként használjuk különböző feltételek ellenőrzésére.

Használhatsz if utasítást, amely akkor futtatja a kódját, ha a mögöttes feltétel true, például így:

std::string value{"val"};

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

Ha egynél több esetről van szó, több if utasítást is összefűzhetsz az else if és az else utasításokkal.

int number{33};

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

A C++17 óta az if utasítások tartalmazhatnak egy rövid kezdőértéket megadó utasítást is, amellyel egy vagy több változót inicializálhatsz az if utasításhoz. Például:

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

Megjegyzés: a kezdőértékadásban létrehozott változókra az if utasítás végén túl már nem lehet hivatkozni.

Utasítások

Ebben a feladatban olyan kódot írsz, amely segít felkészülni egy jármű megvásárlására.

Három részfeladat vár rád: az egyikben eldöntöd, hogy kell-e jogosítvány, a másikban segítesz választani két jármű közül, a harmadikban pedig megbecsülöd egy használt jármű elfogadható árát.

1. Döntsd el, hogy szükséged lesz-e jogosítványra

Egyes járműfajták vezetéséhez jogosítvány kell. Tételezd fel, hogy csak a "car" és a "truck" típushoz kell jogosítvány, minden más vezethető jogosítvány nélkül.

Valósítsd meg a needs_license(kind) függvényt, amely a jármű fajtáját stringként kapja, és egy Boolean értékkel tér vissza, ami megmutatja, hogy szükség van-e jogosítványra az adott járműfajtához.

needs_license("car")
// => true

needs_license("bike")
// => false

needs_license("truck")
// => true

2. Válassz két lehetséges jármű közül, amelyiket megvásárolod

Mérlegeled a rendelkezésre álló járműveket. Sikerül kettőre szűkítened a kört, de segítségre van szükséged a végső döntéshez. Ehhez valósítsd meg a choose_vehicle(option1, option2) függvényt, amely két járművet kap argumentumként, és egy döntést ad vissza, amelyben az szerepel, amelyik lexikográfiai sorrendben előrébb van.

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."

A visszaadott string kövesse a „<CHOSEN_VEHICLE> is clearly the better choice.” mintát, ahol a <CHOSEN_VEHICLE> a kapott argumentumok közül kiválasztott opció.

3. Becsüld meg egy használt jármű árát

Most, hogy döntöttél, szeretnéd biztosítani, hogy tisztességes árat fizetsz a kereskedésben. Mivel használt járművet szeretnél venni, az ár attól függ, milyen idős a jármű. Durva becsléshez tételezd fel, hogy ha a jármű kevesebb mint 3 éves, az új kori eredeti ára 80%-ába kerül. Ha legalább 10 éves, akkor 50%-ába. Ha a jármű legalább 3 éves, de kevesebb mint 10 éves, az eredeti ár 70%-ába kerül.

Valósítsd meg a calculate_resell_price(original_price, age) függvényt, amely ezt a logikát if, else if és else segítségével alkalmazza (más megoldások is léteznek, ha gyakorolni szeretnél). Az eredeti árat és a jármű korát kapja argumentumként, és a kereskedésben becsült árat adja vissza.

calculate_resell_price(1000, 1)
// => 800

calculate_resell_price(1000, 5)
// => 700

calculate_resell_price(1000.0, 15)
// => 500

Megjegyzés: a visszatérési érték típusa double.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C++ Exercism

Készen állsz elkezdeni a(z) Járművásárlás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C++ nyelvet 19 fogalom100 feladat segítségével, valódi emberi mentorálással, mindez ingyen.