Parcours
/
R
R
/
Exercices
/
Lasagnes
Lasagnes

Lasagnes

Exercice d'apprentissage

Introduction

Variables et affectation

R est un langage à typage dynamique, donc en général il n'est pas nécessaire de préciser le type d'une variable. L'opérateur d'affectation à privilégier est <-

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

Utiliser = à la place de <- fonctionne souvent, mais pas toujours, et est déconseillé car considéré comme un mauvais style. Si on travaille dans RStudio, on peut le saisir avec le raccourci clavier Alt-minus.

Les opérateurs sont pour la plupart conventionnels, mais il faut noter %/% et %% :

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)

En R, # commence un commentaire sur une seule ligne. Il n'existe pas de syntaxe distincte pour les commentaires sur plusieurs lignes.

Fonctions

Pour définir une fonction :

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

Les fonctions peuvent prendre zéro ou plusieurs arguments, séparés par des virgules. Les parenthèses () sont nécessaires avec function(), même s'il n'y a aucun paramètre.

On peut spécifier des valeurs par défaut pour les arguments d'une fonction, mais celles-ci doivent venir après les arguments qui n'en ont pas, et on utilise = et non <- pour affecter la valeur par défaut. Voici un exemple plutôt inutile :

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

squareit()
#> [1] 1764

Les accolades { } ne sont pas strictement obligatoires pour un corps de fonction sur une seule ligne, mais les inclure est considéré comme un bon style.

R renvoie automatiquement la dernière valeur d'une fonction, comme dans les exemples ci-dessus.

On peut utiliser return() n'importe où dans le corps de la fonction pour rendre une valeur de retour explicite.

Appeler une fonction se fait comme dans beaucoup d'autres langages :

squareit(3)
#> [1] 9

Instructions

Dans cet exercice, tu vas écrire du code pour t'aider à cuisiner une excellente lasagne tirée de ton livre de cuisine préféré.

Tu as quatre tâches, toutes liées au temps passé à cuisiner la lasagne.

1. Définis le temps de cuisson attendu en minutes

Définis la fonction expected_minutes_in_oven() qui ne prend aucun paramètre et qui renvoie le nombre de minutes pendant lesquelles la lasagne doit rester au four. D'après le livre de cuisine, le temps de cuisson attendu est de 60 minutes.

> expected_minutes_in_oven()
[1] 60

2. Calcule le temps de cuisson restant en minutes

Définis la fonction remaining_time_in_minutes qui prend comme paramètre le nombre de minutes que la lasagne a déjà passées au four et qui renvoie le nombre de minutes qu'il lui reste à cuire, d'après le temps de cuisson attendu en minutes de la tâche précédente.

> remaining_time_in_minutes(50)
[1] 10

3. Calcule le temps de préparation en minutes

Définis la fonction prep_time_in_minutes() qui prend comme paramètre le nombre de couches que tu as ajoutées à la lasagne et qui renvoie le nombre de minutes que tu as passées à préparer la lasagne, en supposant que chaque couche te prend 2 minutes à préparer.

> prep_time_in_minutes(2)
[1] 4

4. Calcule le temps écoulé en minutes

Définis la fonction elapsed_time_in_minutes qui prend deux arguments : le premier argument est le nombre de couches que tu as ajoutées à la lasagne, et le second paramètre est le nombre de minutes que la lasagne a passées au four. La fonction doit renvoyer le nombre total de minutes que tu as consacrées à la cuisson de la lasagne, c'est-à-dire la somme du temps de préparation en minutes et du temps en minutes que la lasagne a passé au four pour l'instant.

> elapsed_time_in_minutes(3, 20)
[1] 26
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
R Exercism

Prêt à commencer Lasagnes ?

Inscris-toi sur Exercism pour apprendre et maîtriser R avec 21 concepts111 exercices, et un vrai mentorat humain, le tout gratuitement.