Parcours
/
jq
jq
/
Exercices
/
Chaîne de montage
Chaîne de montage

Chaîne de montage

Exercice d'apprentissage

Introduction

Les nombres

D'après le manuel

jq prend en charge le même ensemble de types de données que JSON : les nombres, les strings, les booléens, les tableaux, les objets (que l'on appelle en JSON des tables de hachage dont les clés sont uniquement des strings) et « null ».

Concentrons-nous sur les nombres.

Les nombres et les opérateurs numériques

Tous les nombres, qu'ils soient entiers ou non, sont des nombres à virgule flottante en double précision IEEE754. Cela nous limite à 53 bits de précision.

Les opérateurs habituels sont disponibles pour les nombres :

  • arithmétiques : +, -, *, /, %

  • comparaison : ==, !=, <, <=, >=, >

  • les fonctions mathématiques standard

    Pour les fonctions à une seule entrée, on envoie la valeur dans la fonction à l'aide d'un pipe

    $ jq -n '(1 | atan) * 4'
    3.141592653589793
    

    Pour les fonctions à deux entrées, la fonction ignore l'entrée et attend ces entrées sous forme de paramètres (rappel : les paramètres sont séparés par des points-virgules)

    $ jq -n 'pow(2; 10)'
    1024
    

    Le point-virgule est le séparateur des arguments d'une fonction, et non la virgule.

D'autres expressions jq

Pour résoudre cet exercice, tu auras besoin de connaître les expressions conditionnelles.

Les expressions conditionnelles

jq utilise une expression if-then-else pour les expressions conditionnelles. En tant qu'expression, elle s'insère dans un pipeline.

La syntaxe est la suivante : if CONDITION then TRUE_EXPR else FALSE_EXPR end.

La clause else est facultative.

42 | if . < 33 then "small" else "larger" end
# => "larger"

On ajoute d'autres conditions avec elif

42 | if . < 33 then "small"
     elif . < 67 then "medium"
     else "large"
     end
# => "medium"

Instructions

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

À sa vitesse la plus lente (1), 221 voitures sont produites chaque heure. La production augmente linéairement avec la vitesse. Ainsi, avec une vitesse réglée sur 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 qu'il faille ensuite les écarter. Le tableau suivant montre comment la vitesse influence le taux de réussite :

  • 1 à 4 : 100 % de réussite.
  • 5 à 8 : 90 % de réussite.
  • 9 : 80 % de réussite.
  • 10 : 77 % de réussite.

Tu as deux tâches.

1. Calculer le taux de production horaire

Calcule le taux de production horaire de la chaîne de montage, en tenant compte de son taux de réussite.

2. Calculer le nombre de voitures fonctionnelles produites par minute

Calcule combien de voitures terminées et fonctionnelles sont produites par minute.

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

Prêt à commencer Chaîne de montage ?

Inscris-toi sur Exercism pour apprendre et maîtriser jq avec 12 concepts75 exercices, et un vrai mentorat humain, le tout gratuitement.