Track
/
C#
C#
/
Esercizi
/
Auto, assemblatevi!
Auto, assemblatevi!

Auto, assemblatevi!

Esercizio di apprendimento

Introduzione

Numeri

In C# esistono due tipi diversi di numeri:

  • Interi: numeri senza cifre dopo il separatore decimale (numeri interi). Ad esempio -6, 0, 1, 25, 976 e 500000.
  • Numeri in virgola mobile: numeri con zero o più cifre dopo il separatore decimale. Ad esempio -2.4, 0.1, 3.14, 16.984025 e 1024.0.

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

L'aritmetica si esegue usando gli operatori aritmetici standard. I numeri si possono confrontare usando gli operatori di confronto numerico standard e gli operatori di uguaglianza (==) e disuguaglianza (!=).

In C# esistono due tipi di conversione numerica:

  1. Conversioni implicite: non verrà perso alcun dato e non è richiesta alcuna sintassi aggiuntiva.
  2. Conversioni esplicite: si potrebbero perdere dei dati ed è richiesta una sintassi aggiuntiva sotto forma di cast.

Poiché un int ha meno precisione di un double, convertire da un int a un double è sicuro ed è quindi una conversione implicita. Tuttavia, convertire da un double a un int potrebbe comportare la perdita di dati, quindi richiede una conversione esplicita.

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

Istruzioni if

In questo esercizio devi eseguire della logica in modo condizionale. Il modo più comune per farlo in C# è usare un'istruzione if/else:

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
}

La condizione di un'istruzione if deve essere di tipo bool. C# non ha il concetto di valori truthy.

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ò variare da 0 (spenta) a 10 (massima).

Alla sua velocità minima (1), vengono prodotte 221 automobili ogni ora. La produzione aumenta in modo lineare con la velocità. Quindi, con la velocità impostata a 4, dovrebbe produrre 4 * 221 = 884 automobili all'ora. Tuttavia, velocità più alte aumentano la probabilità che vengano prodotte automobili difettose, che poi vanno scartate.

Hai tre compiti da svolgere.

1. Calcola il tasso di successo

Implementa il metodo (static) AssemblyLine.SuccessRate() per calcolare la proporzione di articoli prodotti senza errori per una data velocità. La tabella seguente mostra come la velocità influisce sul tasso di successo:

  • 0: tasso di successo dello 0%.
  • 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%.
AssemblyLine.SuccessRate(10)
// => 0.77

2. Calcola il tasso di produzione orario

Implementa il metodo (static) AssemblyLine.ProductionRatePerHour() per calcolare il tasso di produzione orario della catena di montaggio, tenendo conto del suo tasso di successo:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

Nota che il valore restituito è un double.

3. Calcola il numero di automobili funzionanti prodotte al minuto

Implementa il metodo (static) AssemblyLine.WorkingItemsPerMinute() per calcolare quante automobili funzionanti vengono prodotte al minuto:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

Nota che il valore restituito è un int.

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

Vuoi iniziare Auto, assemblatevi!?

Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.