Track
/
Java
Java
/
Esercizi
/
Auto, assemblatevi!
Auto, assemblatevi!

Auto, assemblatevi!

Esercizio di apprendimento

Introduzione

Numeri

In Java ci sono due tipi diversi di numeri:

  • Interi: numeri senza cifre dopo il separatore decimale (numeri interi). Alcuni esempi sono -6, 0, 1, 25, 976 e -500000.
  • Numeri in virgola mobile: numeri con zero o più cifre dopo il separatore decimale. Alcuni esempi sono -20.4, 0.1, 2.72, 16.984025 e 1024.0.

I due tipi numerici più comuni in Java sono int e double. Un int è un intero a 32 bit, mentre un double è un numero in virgola mobile a 64 bit.

Le operazioni aritmetiche si eseguono con i normali operatori aritmetici. I numeri si possono confrontare con i normali operatori di confronto numerico (ad es. 5 > 4 e 4 <= 5) e con gli operatori di uguaglianza (==) e disuguaglianza (!=).

Java ha due tipi di conversione numerica:

  1. Conversioni implicite: non si perde nessun dato e non serve alcuna sintassi aggiuntiva.
  2. Conversioni esplicite: si potrebbero perdere dei dati e serve una sintassi aggiuntiva, sotto forma di cast.

Poiché un int ha meno precisione di un double, convertire da int a double è sicuro ed è quindi una conversione implicita. Al contrario, convertire da double a int potrebbe significare perdere dei dati, quindi richiede una conversione esplicita.

Istruzioni if-else

L'istruzione if-then

L'istruzione di controllo del flusso più semplice in Java è l'istruzione if-then. Questa istruzione serve a eseguire una sezione di codice solo se una particolare condizione è true. Un'istruzione if-then si definisce usando la clausola if:

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

Nell'esempio qui sopra, se l'auto è senza carburante, chiamare il metodo Car.drive non farà nulla.

L'istruzione if-then-else

L'istruzione if-then-else fornisce un percorso di esecuzione alternativo per quando la condizione nella clausola if si valuta come false. Questo percorso di esecuzione alternativo segue una clausola if e si definisce usando la clausola else:

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

Nell'esempio qui sopra, se l'auto è senza carburante, chiamare il metodo Car.drive chiamerà un altro metodo per fermare l'auto.

L'istruzione if-then-else supporta anche più condizioni usando la clausola else if:

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

Nell'esempio qui sopra, guidare l'auto quando il carburante è minore o uguale a 5 farà muovere l'auto, ma accenderà la spia del carburante. Quando il carburante arriva a 0, l'auto smetterà di muoversi.

Istruzioni

In questo esercizio scriverai del codice per analizzare la produzione di una catena di montaggio in una fabbrica di automobili. La velocità della catena di montaggio può andare da 0 (spenta) a 10 (massima).

Alla velocità più bassa (1), vengono prodotte 221 auto all'ora. La produzione aumenta in modo lineare con la velocità. Quindi, con la velocità impostata a 4, dovrebbe produrre 4 * 221 = 884 auto all'ora. Tuttavia, velocità più alte aumentano la probabilità che vengano prodotte auto difettose, che poi devono essere scartate. La tabella seguente mostra come la velocità influisce sul tasso di successo:

  • da 1 a 4: tasso di successo del 100%.
  • da 5 a 8: tasso di successo del 90%.
  • 9: tasso di successo dell'80%.
  • 10: tasso di successo del 77%.

Hai due attività da svolgere.

1. Calcola la produzione oraria

Implementa il metodo CarsAssemble.productionRatePerHour() per calcolare la produzione oraria della catena di montaggio, tenendo conto della velocità attuale della catena e del tasso di successo:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

Nota che il valore restituito è un double.

2. Calcola il numero di pezzi funzionanti prodotti al minuto

Implementa il metodo CarsAssemble.workingItemsPerMinute() per calcolare quante auto funzionanti vengono prodotte al minuto:

CarsAssemble.workingItemsPerMinute(6)
// => 19

Nota che il valore restituito è un int.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Java Exercism

Vuoi iniziare Auto, assemblatevi!?

Iscriviti a Exercism per imparare e padroneggiare Java con 26 concetti158 esercizi e il mentoring di persone reali, tutto gratis.