Tracks
/
R
R
/
Übungen
/
Lasagne
Lasagne

Lasagne

Lernübung

Einführung

Variablen und Zuweisung

R ist eine dynamisch typisierte Sprache, daher musst du im Allgemeinen den Typ einer Variablen nicht angeben. Der bevorzugte Zuweisungsoperator ist <-

x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"

= statt <- zu verwenden, funktioniert oft, aber nicht immer, und gilt als schlechter Stil. Wenn du in RStudio arbeitest, kannst du es mit dem Tastenkürzel Alt-minus eingeben.

Die Operatoren sind größtenteils konventionell, aber achte auf %/% und %%:

2 + 3   # 5
2 - 3   # -1
2 * 3   # 6
2 / 3   # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3  # 2 (remainder)
2 ^ 3   # 8 (exponential)

In R beginnt # einen einzeiligen Kommentar. Für mehrzeilige Kommentare gibt es keine eigene Syntax.

Funktionen

So definierst du eine Funktion:

squareit <- function(x) {
    x * x
}

Funktionen können null oder mehr Argumente haben, die durch Kommas getrennt werden. Die runden Klammern () sind bei function() nötig, auch wenn es keine Parameter gibt.

Für Funktionsargumente kannst du Standardwerte festlegen, allerdings müssen diese nach allen Argumenten ohne Standardwert stehen, und du weist den Standardwert mit = zu, nicht mit <-. Ein ziemlich sinnloses Beispiel:

squareit <- function(x = 42) {
    x * x
}

squareit()
#> [1] 1764

Die geschweiften Klammern { } sind für einzeilige Funktionsblöcke nicht unbedingt nötig, aber sie mitzuschreiben gilt als guter Stil.

R gibt automatisch den letzten Wert einer Funktion zurück, wie in den Beispielen oben.

Mit return() kannst du überall im Funktionsblock einen Rückgabewert ausdrücklich angeben.

Eine Funktion aufzurufen funktioniert genauso wie in vielen anderen Sprachen:

squareit(3)
#> [1] 9

Anleitung

In dieser Übung schreibst du etwas Code, der dir hilft, eine brillante Lasagne nach deinem Lieblingskochbuch zu kochen.

Du hast vier Aufgaben, die alle mit der Zeit zu tun haben, die du zum Kochen der Lasagne brauchst.

1. Definiere die erwartete Backzeit in Minuten

Definiere die Funktion expected_minutes_in_oven(), die keine Parameter nimmt und zurückgibt, wie viele Minuten die Lasagne im Ofen sein sollte. Laut dem Kochbuch beträgt die erwartete Backzeit 60 Minuten.

> expected_minutes_in_oven()
[1] 60

2. Berechne die verbleibende Backzeit in Minuten

Definiere die Funktion remaining_time_in_minutes, die die tatsächlichen Minuten, die die Lasagne schon im Ofen war, als Parameter nimmt und zurückgibt, wie viele Minuten die Lasagne noch im Ofen bleiben muss, basierend auf der erwarteten Backzeit aus der vorherigen Aufgabe.

> remaining_time_in_minutes(50)
[1] 10

3. Berechne die Vorbereitungszeit in Minuten

Definiere die Funktion prep_time_in_minutes(), die die Anzahl der Schichten, die du zur Lasagne hinzugefügt hast, als Parameter nimmt und zurückgibt, wie viele Minuten du für die Vorbereitung der Lasagne gebraucht hast, wobei jede Schicht 2 Minuten Vorbereitung braucht.

> prep_time_in_minutes(2)
[1] 4

4. Berechne die verstrichene Zeit in Minuten

Definiere die Funktion elapsed_time_in_minutes, die zwei Argumente nimmt: Das erste Argument ist die Anzahl der Schichten, die du zur Lasagne hinzugefügt hast, und der zweite Parameter ist die Anzahl der Minuten, die die Lasagne schon im Ofen war. Die Funktion sollte zurückgeben, wie viele Minuten du insgesamt mit dem Kochen der Lasagne verbracht hast, also die Summe aus der Vorbereitungszeit in Minuten und der Zeit in Minuten, die die Lasagne in diesem Moment im Ofen war.

> elapsed_time_in_minutes(3, 20)
[1] 26
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
R Exercism

Bereit, mit Lasagne zu starten?

Melde dich bei Exercism an, um R mit 21 Konzepte111 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.