Kurzusok
/
Java
Java
/
Feladatok
/
Autók, összeállni!
Autók, összeállni!

Autók, összeállni!

Tanulófeladat

Bevezetés

Számok

A Javában két különböző típusú szám létezik:

  • Egész számok: olyan számok, amelyeknél a tizedesjel mögött nincs számjegy (egész értékek). Például: -6, 0, 1, 25, 976 és -500000.
  • Lebegőpontos számok: olyan számok, amelyeknél a tizedesjel mögött nulla vagy több számjegy áll. Például: -20.4, 0.1, 2.72, 16.984025 és 1024.0.

A Javában a két leggyakoribb numerikus típus az int és a double. Az int egy 32 bites egész szám, a double pedig egy 64 bites lebegőpontos szám.

A számtani műveleteket a szokásos aritmetikai operátorokkal végezzük el. A számokat össze lehet hasonlítani a szokásos numerikus összehasonlító operátorokkal (pl. 5 > 4 és 4 <= 5), valamint az egyenlőség (==) és az egyenlőtlenség (!=) operátorokkal.

A Javában kétféle numerikus konverzió létezik:

  1. Implicit konverziók: nem vész el adat, és nincs szükség további szintaxisra.
  2. Explicit konverziók: adat veszhet el, ezért további szintaxisra, egy cast-ra van szükség.

Mivel az int kevésbé pontos, mint a double, az int-ből double-be való átalakítás biztonságos, ezért implicit konverzió. A double-ből int-be való átalakítás viszont adatvesztéssel járhat, ezért explicit konverziót igényel.

If-else elágazások

Az if-then elágazás

A Java legalapvetőbb vezérlési utasítása az if-then elágazás. Ezzel az elágazással csak akkor fut le egy kódrészlet, ha egy adott feltétel true. Az if-then elágazást az if ág adja meg:

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--;
        }
    }
}

A fenti példában, ha az autóban nincs üzemanyag, a Car.drive metódus meghívása nem tesz semmit.

Az if-then-else elágazás

Az if-then-else elágazás arra az esetre kínál alternatív végrehajtási utat, amikor az if ágban lévő feltétel false értékűre értékelődik ki. Ez az alternatív végrehajtási út az if ág után következik, és az else ág adja meg:

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

A fenti példában, ha az autóban nincs üzemanyag, a Car.drive metódus meghívása egy másik metódust hív meg, amely leállítja az autót.

Az if-then-else elágazás több feltételt is támogat az else if ág használatával:

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

A fenti példában, ha az üzemanyag kevesebb vagy egyenlő, mint 5, az autó továbbra is halad, de felgyullad az üzemanyaglámpa. Amikor az üzemanyag eléri a 0-t, az autó megáll.

Utasítások

Ebben a feladatban egy autógyár összeszerelősorának termelését elemző kódot írsz. Az összeszerelősor sebessége 0 (kikapcsolva) és 10 (maximum) között lehet.

A legalacsonyabb sebességén (1) óránként 221 autó készül. A termelés lineárisan nő a sebességgel. Ha tehát a sebesség 4, akkor óránként 4 * 221 = 884 autót kell gyártania. A nagyobb sebesség viszont növeli a hibás autók arányát, amelyeket aztán ki kell dobni. Az alábbi táblázat mutatja, hogyan befolyásolja a sebesség a sikerességi arányt:

  • 1-től 4-ig: 100%-os sikerességi arány.
  • 5-től 8-ig: 90%-os sikerességi arány.
  • 9: 80%-os sikerességi arány.
  • 10: 77%-os sikerességi arány.

Két részfeladat vár rád.

1. Számítsd ki az óránkénti termelési rátát

Valósítsd meg a CarsAssemble.productionRatePerHour() metódust, amely kiszámítja az összeszerelősor óránkénti termelési rátáját, figyelembe véve az összeszerelősor aktuális sebességét és sikerességi arányát:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

Ügyelj rá, hogy a visszaadott érték egy double.

2. Számítsd ki a percenként legyártott működő autók számát

Valósítsd meg a CarsAssemble.workingItemsPerMinute() metódust, amely kiszámítja, hogy hány működő autó készül percenként:

CarsAssemble.workingItemsPerMinute(6)
// => 19

Ügyelj rá, hogy a visszaadott érték egy int.

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

Készen állsz elkezdeni a(z) Autók, összeállni! feladatot?

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