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.
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.
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é.
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.
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
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.
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.
Inscris-toi sur Exercism pour apprendre et maîtriser Julia avec 35 concepts128 exercices, et un vrai mentorat humain, le tout gratuitement.