Trilhas
/
Clojure
Clojure
/
Exercícios
/
Carros, à montagem!
Carros, à montagem!

Carros, à montagem!

Exercício de aprendizagem

Introdução

Os números em Clojure incluem:

  • Inteiros: números sem dígitos depois do separador decimal (números inteiros). Exemplos são -6, 0, 1, 25, 976 e 500000.
  • Números de ponto flutuante: números com zero ou mais dígitos depois do separador decimal. Exemplos são -2.4, 0.1, 3.14, 16.984025 e 1024.0.

Dois tipos numéricos comuns são int e float. Um int é um inteiro de 32 bits e um float é um número de ponto flutuante de 64 bits.

A aritmética é feita usando os operadores aritméticos padrão. Os números podem ser comparados usando os operadores de comparação numérica padrão (>, <, <=, >=), o operador de igualdade (=) e o operador de desigualdade (not=).

Neste exercício, você precisa executar lógica condicionalmente. Uma forma comum de fazer isso em Clojure é usar cond:

(cond (= x 5) "Expression to evaluate when x equals 5"
      (> x 7) "Expression to evaluate when x is greater than 7"
      :else   "Expression to evaluate in all other cases")

Nota

O operador == pode ser preferível ao = em alguns casos em que números precisam ser comparados independentemente do tipo exato. Por exemplo,

(== 5.0 5) ;; true as both numbers are equal when type is ignored
(= 5.0 5) ;; false as the types of numbers are also taken into account here i.e. float is different from int

O guia do Clojure sobre Igualdade, especificamente a seção sobre Números, entra em mais detalhes.

Instruções

Neste exercício, você vai escrever código para analisar a produção de uma linha de montagem em uma fábrica de carros. A velocidade da linha de montagem pode variar de 0 (desligada) a 10 (máxima).

Na velocidade mais baixa (1), são produzidos 221 carros por hora. A produção aumenta de forma linear com a velocidade. Então, com a velocidade em 4, ela deve produzir 4 * 221 = 884 carros por hora. Porém, velocidades mais altas aumentam a chance de carros com defeito serem produzidos, que depois precisam ser descartados. A tabela a seguir mostra como a velocidade influencia a taxa de sucesso:

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

Você tem duas tarefas.

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

Implemente a função production-rate para calcular a taxa de produção da linha de montagem por hora, levando em conta a taxa de sucesso:

(production-rate 6)
;;=> 1193.4

Repare que o valor retornado é um double.

2. Calcule o número de itens funcionais produzidos por minuto

Implemente a função working-items para calcular quantos carros funcionais são produzidos por minuto:

(working-items 6)
;;=> 19

Repare que o valor retornado é um int.

Editar via GitHub O link abre em uma nova janela ou aba
Clojure Exercism

Tudo pronto para começar Carros, à montagem!?

Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.