Percursos
/
jq
jq
/
Exercícios
/
Linha de Montagem
Linha de Montagem

Linha de Montagem

Exercício de aprendizagem

Introdução

Números

Do manual

O jq suporta o mesmo conjunto de tipos de dados que o JSON: números, strings, Boolean, arrays, objetos (que, em linguagem JSON, são hashes com apenas chaves do tipo string) e "null".

Vamos concentrar-nos nos números.

Números e operadores numéricos

Todos os números, sejam inteiros ou não, são números de vírgula flutuante de dupla precisão IEEE754. Isto limita-nos a 53 bits de precisão.

Com números, podes usar os operadores habituais:

  • aritmética: +, -, *, /, %

  • comparação: ==, !=, <, <=, >=, >

  • as funções matemáticas habituais

    Nas funções com um único parâmetro de entrada, canaliza o valor para a função

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

    Nas funções com dois parâmetros de entrada, a função ignora o valor de entrada e espera receber esses valores como parâmetros (lembra-te de que os parâmetros são separados por ponto e vírgula)

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

    O ponto e vírgula é o separador dos argumentos da função, não a vírgula.

Outras expressões de jq

Para resolveres o exercício, vais precisar de saber o que são expressões condicionais.

Expressões condicionais

O jq usa uma expressão if-then-else para as expressões condicionais. Enquanto expressão, é colocada num pipeline.

A sintaxe é: if CONDITION then TRUE_EXPR else FALSE_EXPR end.

A cláusula else é opcional.

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

As condições adicionais usam elif

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

Instruções

Neste exercício vais escrever código para analisar a produção de uma linha de montagem numa fábrica de automóveis. A velocidade da linha de montagem pode variar entre 0 (desligada) e 10 (máxima).

À sua velocidade mais lenta (1), são produzidos 221 carros por hora. A produção aumenta linearmente com a velocidade. Por isso, com a velocidade definida como 4, a linha deve produzir 4 * 221 = 884 carros por hora. No entanto, velocidades mais altas aumentam a probabilidade de se produzirem carros com defeito, que depois têm de ser descartados. A tabela seguinte mostra como a velocidade influencia a taxa de sucesso:

  • 1 a 4: 100% de taxa de sucesso.
  • 5 a 8: 90% de taxa de sucesso.
  • 9: 80% de taxa de sucesso.
  • 10: 77% de taxa de sucesso.

Tens duas tarefas.

1. Calcula a taxa de produção por hora

Calcula a taxa de produção da linha de montagem por hora, tendo em conta a taxa de sucesso.

2. Calcula o número de carros funcionais produzidos por minuto

Calcula quantos carros completos e funcionais são produzidos por minuto.

Editar via GitHub A ligação abre numa nova janela ou separador
jq Exercism

Estás pronto para começar Linha de Montagem?

Inscreve-te no Exercism para aprenderes e dominares jq com 12 conceitos75 exercícios, e mentoria humana real, tudo grátis.