Track
/
C#
C#
/
Esercizi
/
Le deliziose lasagne di Lucian
Le deliziose lasagne di Lucian

Le deliziose lasagne di Lucian

Esercizio di apprendimento

Introduzione

Le basi

C# è un linguaggio a tipizzazione statica, il che significa che tutto ha un tipo in fase di compilazione. Assegnare un valore a un nome si chiama definire una variabile. Una variabile può essere definita specificando esplicitamente il suo tipo oppure lasciando che il compilatore C# inferisca il suo tipo in base al valore assegnato (nota come inferenza di tipo). Pertanto, le due definizioni di variabile seguenti sono equivalenti:

int explicitVar = 10; // Explicitly typed
var implicitVar = 10; // Implicitly typed

L'aggiornamento del valore di una variabile si effettua tramite l'operatore =. Una volta definita una variabile, il suo tipo non può mai cambiare.

var count = 1; // Assign initial value
count = 2;     // Update to new value

// Compiler error when assigning different type
// count = false;

C# è un linguaggio orientato agli oggetti e richiede che tutte le funzioni siano definite in una classe. La parola chiave class si usa per definire una classe. Gli oggetti (o istanze) vengono creati usando la parola chiave new.

class Calculator
{
    // ...
}

var calculator = new Calculator();

Una funzione all'interno di una classe è detta metodo. Ogni metodo può avere zero o più parametri. Tutti i parametri devono essere tipizzati esplicitamente; non c'è inferenza di tipo per i parametri. Allo stesso modo, anche il tipo restituito deve essere reso esplicito. I valori vengono restituiti dai metodi usando la parola chiave return. Per consentire a codice in altri file di chiamare un metodo, è necessario aggiungere il modificatore di accesso public.

class Calculator
{
    public int Add(int x, int y)
    {
        return x + y;
    }
}

I metodi vengono chiamati usando la sintassi con il punto (.) su un'istanza, specificando il nome del metodo da chiamare e passando argomenti per ciascuno dei parametri del metodo. Gli argomenti possono specificare facoltativamente il nome del parametro corrispondente.

var calculator = new Calculator();
var sum_v1 = calculator.Add(1, 2);
var sum_v2 = calculator.Add(x: 1, y: 2);

Lo scope in C# è definito tra i caratteri { e }.

C# supporta due tipi di commenti. I commenti a riga singola sono preceduti da // e i commenti multilinea sono inseriti tra /* e */.

Istruzioni

La fidanzata di Lucian sta tornando a casa e lui non ha ancora preparato la cena per il loro anniversario!

In questo esercizio, scriverai un po' di codice per aiutare Lucian a preparare una squisita lasagna dal suo libro di ricette preferito.

Hai quattro compiti, tutti legati al tempo impiegato per cucinare la lasagna.

1. Definisci il tempo di cottura previsto in minuti

Definisci il metodo Lasagna.ExpectedMinutesInOven() che non prende alcun parametro e restituisce per quanti minuti la lasagna deve stare in forno. Secondo il libro di ricette, il tempo di cottura previsto in minuti è 40:

var lasagna = new Lasagna();
lasagna.ExpectedMinutesInOven();
// => 40

2. Calcola il tempo di cottura rimanente in minuti

Definisci il metodo Lasagna.RemainingMinutesInOven() che prende come parametro i minuti effettivi che la lasagna è già stata in forno e restituisce per quanti minuti la lasagna deve ancora restare in forno, in base al tempo di cottura previsto in minuti del compito precedente.

var lasagna = new Lasagna();
lasagna.RemainingMinutesInOven(30);
// => 10

3. Calcola il tempo di preparazione in minuti

Definisci il metodo Lasagna.PreparationTimeInMinutes() che prende come parametro il numero di strati che hai aggiunto alla lasagna e restituisce quanti minuti hai impiegato a preparare la lasagna, supponendo che ogni strato richieda 2 minuti di preparazione.

var lasagna = new Lasagna();
lasagna.PreparationTimeInMinutes(2);
// => 4

4. Calcola il tempo trascorso in minuti

Definisci il metodo Lasagna.ElapsedTimeInMinutes() che prende due parametri: il primo parametro è il numero di strati che hai aggiunto alla lasagna, e il secondo parametro è il numero di minuti che la lasagna è stata in forno. La funzione deve restituire quanti minuti hai lavorato alla cottura della lasagna, cioè la somma del tempo di preparazione in minuti e del tempo in minuti che la lasagna ha passato in forno fino a quel momento.

var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
C# Exercism

Vuoi iniziare Le deliziose lasagne di Lucian?

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