Tracks
/
C#
C#
/
Übungen
/
Lucians köstliche Lasagne
Lucians köstliche Lasagne

Lucians köstliche Lasagne

Lernübung

Einführung

Grundlagen

C# ist eine statisch typisierte Sprache. Das bedeutet, dass alles zur Kompilierzeit einen Typ hat. Wenn du einem Namen einen Wert zuweist, wird das als Definieren einer Variable bezeichnet. Eine Variable kannst du auf zwei Arten definieren: entweder indem du ihren Typ explizit angibst oder indem du den C#-Compiler den Typ anhand des zugewiesenen Werts ableiten lässt (bekannt als Typinferenz). Die folgenden beiden Variablendefinitionen sind daher äquivalent:

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

Den Wert einer Variable änderst du mit dem Operator =. Sobald eine Variable definiert ist, kann sich ihr Typ nie mehr ändern.

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

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

C# ist eine objektorientierte Sprache und verlangt, dass alle Funktionen in einer Klasse definiert werden. Mit dem Schlüsselwort class definierst du eine Klasse. Objekte (oder Instanzen) erstellst du mit dem Schlüsselwort new.

class Calculator
{
    // ...
}

var calculator = new Calculator();

Eine Funktion innerhalb einer Klasse wird als Methode bezeichnet. Jede Methode kann null oder mehr Parameter haben. Alle Parameter müssen explizit typisiert sein, für Parameter gibt es keine Typinferenz. Genauso muss auch der Rückgabetyp explizit angegeben werden. Werte gibst du mit dem Schlüsselwort return aus Methoden zurück. Damit eine Methode von Code in anderen Dateien aufgerufen werden kann, musst du den Zugriffsmodifizierer public hinzufügen.

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

Methoden rufst du mit der Punkt-Syntax (.) auf einer Instanz auf: Du gibst den Namen der aufzurufenden Methode an und übergibst Argumente für jeden Parameter der Methode. Argumente können optional den Namen des zugehörigen Parameters angeben.

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

Der Gültigkeitsbereich wird in C# zwischen den Zeichen { und } festgelegt.

C# unterstützt zwei Arten von Kommentaren. Einzeilige Kommentare werden mit // eingeleitet, mehrzeilige Kommentare stehen zwischen /* und */.

Anleitung

Lucians Freundin ist auf dem Weg nach Hause und er hat das Abendessen zu ihrem Jahrestag noch nicht gekocht!

In dieser Übung schreibst du etwas Code, um Lucian dabei zu helfen, eine köstliche Lasagne aus seinem Lieblingskochbuch zu kochen.

Es gibt vier Aufgaben und alle drehen sich um die Zeit, die für das Kochen der Lasagne benötigt wird.

1. Definiere die erwartete Backofenzeit in Minuten

Definiere die Methode Lasagna.ExpectedMinutesInOven(), die keine Parameter entgegennimmt und zurückgibt, wie viele Minuten die Lasagne im Ofen sein sollte. Laut dem Kochbuch beträgt die erwartete Backofenzeit 40 Minuten:

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

2. Berechne die verbleibende Backofenzeit in Minuten

Definiere die Methode Lasagna.RemainingMinutesInOven(), die die tatsächlichen Minuten, die die Lasagne bereits im Ofen war, als Parameter entgegennimmt und zurückgibt, wie viele Minuten die Lasagne noch im Ofen bleiben muss. Dabei gehst du von der erwarteten Backofenzeit aus der vorherigen Aufgabe aus.

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

3. Berechne die Vorbereitungszeit in Minuten

Definiere die Methode Lasagna.PreparationTimeInMinutes(), die die Anzahl der Schichten, die du der Lasagne hinzugefügt hast, als Parameter entgegennimmt und zurückgibt, wie viele Minuten du mit der Vorbereitung der Lasagne verbracht hast. Dabei gehst du davon aus, dass jede Schicht 2 Minuten zum Vorbereiten braucht.

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

4. Berechne die verstrichene Zeit in Minuten

Definiere die Methode Lasagna.ElapsedTimeInMinutes(), die zwei Parameter entgegennimmt: Der erste Parameter ist die Anzahl der Schichten, die du der Lasagne hinzugefügt hast, und der zweite Parameter ist die Anzahl der Minuten, die die Lasagne bereits im Ofen war. Die Funktion sollte zurückgeben, wie viele Minuten du mit dem Kochen der Lasagne verbracht hast, also die Summe aus der Vorbereitungszeit in Minuten und der Zeit in Minuten, die die Lasagne gerade im Ofen verbracht hat.

var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
C# Exercism

Bereit, mit Lucians köstliche Lasagne zu starten?

Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.