Parcours
/
JavaScript
JavaScript
/
Exercices
/
Les lasagnes délicieuses de Lucian
Les lasagnes délicieuses de Lucian

Les lasagnes délicieuses de Lucian

Exercice d'apprentissage

Introduction

JavaScript est un langage dynamique, qui prend en charge les styles orienté objet, impératif et déclaratif (par exemple la programmation fonctionnelle).

Variables

Il existe plusieurs façons principales d'affecter des valeurs à des noms en JavaScript : avec des variables ou des constantes. Sur Exercism, les variables s'écrivent toujours en camelCase ; les constantes s'écrivent en SCREAMING_SNAKE_CASE. Il n'existe pas de guide officiel à suivre, et chaque entreprise ou organisation a son propre guide de style. Tu peux écrire tes variables comme tu le souhaites. L'avantage d'écrire les variables comme les exercices les préparent, c'est qu'elles seront mises en évidence différemment dans l'interface web et dans la plupart des IDE.

En JavaScript, on peut définir des variables avec le mot-clé const, let ou var.

Une variable peut référencer différentes valeurs au cours de sa vie quand on utilise let ou var. Par exemple, myFirstVariable peut être définie et redéfinie plusieurs fois avec l'opérateur d'affectation = :

let myFirstVariable = 1;
myFirstVariable = 'Some string';
myFirstVariable = new SomeComplexClass();

Contrairement à let et var, une variable définie avec const ne peut être affectée qu'une seule fois. C'est ainsi que l'on définit les constantes en JavaScript.

const MY_FIRST_CONSTANT = 10;

// Can not be re-assigned.
MY_FIRST_CONSTANT = 20;
// => TypeError: Assignment to constant variable.
Note

💡 Dans un prochain exercice d'apprentissage, la différence entre l'affectation d'une constante, la liaison d'une constante et la valeur d'une constante est étudiée et expliquée.

Déclarations de fonctions

En JavaScript, les unités de fonctionnalité sont encapsulées dans des fonctions, que l'on regroupe généralement dans un même fichier quand elles vont ensemble. Ces fonctions prennent des paramètres (afin de pouvoir recevoir des arguments) et peuvent renvoyer une valeur avec le mot-clé return. On appelle les fonctions avec la syntaxe ().

function add(num1, num2) {
  return num1 + num2;
}

add(1, 3);
// => 4

Dans cet exemple, le nom de la fonction est add. Elle prend deux paramètres, num1 et num2. Elle renvoie une valeur : le résultat de l'expression num1 + num2

Ensuite, la fonction add est appelée avec deux arguments : 1 et 3. Le résultat de la fonction, la valeur de retour, est 4.

Note

💡 En JavaScript, il existe de nombreuses façons différentes de déclarer une fonction. Certaines de ces autres façons sont différentes de l'utilisation du mot-clé function. Le parcours essaie de les introduire progressivement, mais si tu les connais déjà, n'hésite pas à utiliser l'une ou l'autre. Dans la plupart des cas, utiliser l'une ou l'autre n'est ni mieux ni pire.

Expose du code aux autres fichiers

Pour rendre une function, une constante ou une variable disponible dans d'autres fichiers, il faut les exporter avec le mot-clé export. Un autre fichier peut ensuite les importer avec le mot-clé import. C'est ce qu'on appelle aussi le système de modules.

Un bon exemple est le fonctionnement de tous les tests. Chaque exercice a au moins un fichier, par exemple lasagna.js, qui contient l'implémentation. L'implémentation est exportée depuis le fichier, ce qui la rend importable dans un autre fichier. Il y a en plus au moins un autre fichier, par exemple lasagna.spec.js, qui contient les tests. Ce fichier importe les entités publiques (c'est-à-dire exportées) afin de tester l'implémentation :

// file.js
export const MY_VALUE = 10;

export function add(num1, num2) {
  return num1 + num2;
}

// file.spec.js
import { MY_VALUE, add } from './file';

add(MY_VALUE, 5);
// => 15

Instructions

La petite amie de Lucian est en route pour rentrer à la maison, et il n'a pas préparé leur dîner d'anniversaire !

Dans cet exercice, tu vas écrire du code pour aider Lucian à cuisiner une lasagne exquise tirée de son livre de recettes préféré.

Quatre tâches t'attendent, toutes liées au temps passé à cuisiner la lasagne.

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

Définis la constante EXPECTED_MINUTES_IN_OVEN qui représente le nombre de minutes pendant lesquelles la lasagne doit rester au four. Elle doit être exportée. D'après le livre de recettes, le temps de cuisson attendu en minutes est 40.

2. Calcule le temps de cuisson restant en minutes

Implémente la fonction remainingMinutesInOven qui prend les minutes réelles pendant lesquelles la lasagne a déjà été au four comme paramètre et qui renvoie combien de minutes la lasagne doit encore rester au four, d'après le temps de cuisson attendu en minutes de la tâche précédente.

remainingMinutesInOven(30);
// => 10

3. Calcule le temps de préparation en minutes

Implémente la fonction preparationTimeInMinutes qui prend le nombre de couches que tu as ajoutées à la lasagne comme paramètre et qui renvoie combien de minutes tu as passées à préparer la lasagne, en partant du principe que chaque couche demande 2 minutes de préparation.

preparationTimeInMinutes(2);
// => 4

4. Calcule le temps de travail total en minutes

Implémente la fonction totalTimeInMinutes qui prend deux paramètres : le paramètre numberOfLayers est le nombre de couches que tu as ajoutées à la lasagne, et le paramètre actualMinutesInOven est le nombre de minutes pendant lesquelles la lasagne a été au four. La fonction doit renvoyer le nombre total de minutes que tu as passées à cuisiner la lasagne, c'est-à-dire la somme du temps de préparation en minutes et du temps en minutes que la lasagne a déjà passé au four sur le moment.

totalTimeInMinutes(3, 20);
// => 26
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
JavaScript Exercism

Prêt à commencer Les lasagnes délicieuses de Lucian ?

Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.