Parcours
/
Julia
Julia
/
Exercices
/
Assemble des voitures
Assemble des voitures

Assemble des voitures

Exercice d'apprentissage

Introduction

Opérateurs de comparaison

Les opérateurs de comparaison en Julia sont similaires à ceux de nombreux autres langages, même s'ils offrent quelques options supplémentaires aux amateurs de mathématiques.

Pour tester l'égalité, on dispose des opérateurs == (égal) et != ou ≠ (différent).

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

On trouve également les différents opérateurs supérieur/inférieur.

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

Comme souvent avec Julia, un éditeur adapté facilite l'utilisation des symboles mathématiques. Tape \ne, \le ou \ge puis TAB pour obtenir ≠, ≤ ou ≥.

L'exemple précédent n'utilise que des nombres, mais nous verrons dans d'autres parties du programme que divers autres types possèdent une relation d'ordre et peuvent être comparés avec les opérateurs supérieur/inférieur.

Les opérateurs de comparaison peuvent être enchaînés, ce qui permet une syntaxe claire et concise :

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

L'exemple précédent est un synonyme de 1 ≤ n && n ≤ 5.

Les branchements avec if

Voici la forme complète d'une instruction if :

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

Nul besoin de parenthèses () ou d'accolades {}, et l'indentation ne sert « uniquement » à améliorer la lisibilité (mais la lisibilité est très importante !).

elseif et else sont tous les deux facultatifs, et il peut y avoir plusieurs blocs elseif. En revanche, le end est obligatoire.

Il est possible d'imbriquer des instructions if, même s'il peut être utile de favoriser la lisibilité par un usage réfléchi des parenthèses, des indentations et des commentaires.

La forme la plus courte d'une instruction if ressemblerait à ceci :

if n < 0
    n = 0
end

Pour rappel : seules les expressions qui s'évaluent à true ou false peuvent servir de condition. Julia évite délibérément toute notion de « truthiness », donc les valeurs nulles, les strings vides et les tableaux vides ne sont pas équivalents à false.

L'opérateur ternaire

Une situation simple et courante consiste à choisir l'une de deux valeurs en fonction d'une condition.

Julia, comme beaucoup de langages, dispose d'un opérateur ternaire pour rendre cela plus concis.

La syntaxe est conditional ? value_if_true : value_if_false.

L'exemple précédent peut donc se réécrire ainsi :

n = n < 0 ? 0 : n

Les parenthèses ne sont pas exigées par le compilateur, mais elles peuvent améliorer la lisibilité.

Instructions

Dans cet exercice, tu vas écrire du code pour analyser la production d'une chaîne de montage dans une usine automobile. La vitesse de la chaîne de montage peut aller de 0 (arrêt) à 10 (maximum).

À sa vitesse la plus basse (1), 221 voitures sont produites chaque heure. La production augmente de façon linéaire avec la vitesse. Ainsi, avec une vitesse de 4, elle devrait produire 4 * 221 = 884 voitures par heure. Cependant, des vitesses plus élevées augmentent la probabilité que des voitures défectueuses soient produites, et celles-ci doivent alors être mises au rebut.

Tu as trois tâches. Chacune des fonctions demandées prend un unique paramètre entier, la vitesse de la chaîne de montage.

1. Calcule le taux de réussite

Implémente la méthode success_rate() pour calculer la probabilité qu'un élément soit créé sans erreur pour une vitesse donnée. Le tableau suivant montre comment la vitesse influence le taux de réussite :

  • 0 : taux de réussite de 0 %.
  • 1 à 4 : taux de réussite de 100 %.
  • 5 à 8 : taux de réussite de 90 %.
  • 9 : taux de réussite de 80 %.
  • 10 : taux de réussite de 77 %.
julia> success_rate(10)
0.77

2. Calcule le taux de production horaire

Implémente la méthode production_rate_per_hour() pour calculer le taux de production horaire de la chaîne de montage, en tenant compte de son taux de réussite.

julia> production_rate_per_hour(6)
1193.4

Note que la valeur renvoyée est un nombre à virgule flottante.

3. Calcule le nombre de voitures fonctionnelles produites par minute

Implémente la méthode working_items_per_minute() pour calculer combien de voitures fonctionnelles sont produites par minute :

julia> working_items_per_minute(6)
19

Note que la valeur renvoyée est un entier : les éléments incomplets ne sont pas comptés.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Julia Exercism

Prêt à commencer Assemble des voitures ?

Inscris-toi sur Exercism pour apprendre et maîtriser Julia avec 35 concepts128 exercices, et un vrai mentorat humain, le tout gratuitement.