Trilhas
/
Julia
Julia
/
Exercícios
/
Montagem de carros
Montagem de carros

Montagem de carros

Exercício de aprendizagem

Introdução

Operadores de comparação

Os operadores de comparação em Julia são parecidos com os de muitas outras linguagens, mas com algumas opções extras para quem gosta de matemática.

Para igualdade, os operadores são == (igual) e != ou ≠ (diferente).

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

Além disso, temos os vários operadores de maior/menor que.

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

Como costuma acontecer com Julia, um editor adequado facilita usar o símbolo matemático. Digite \ne, \le ou \ge e depois TAB para obter ≠, ≤ ou ≥.

O exemplo anterior usa apenas números, mas veremos em outras partes do currículo que vários tipos adicionais têm uma noção de ordenação e podem ser testados quanto a maior/menor que.

Os operadores de comparação podem ser encadeados, o que permite uma sintaxe clara e concisa:

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

O exemplo anterior é sinônimo de 1 ≤ n && n ≤ 5.

Ramificação com if

Esta é a forma completa de uma condicional if:

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

Não é preciso usar parênteses () nem chaves {}, e a indentação serve "só" para melhorar a legibilidade (mas legibilidade é muito importante!).

Tanto elseif quanto else são opcionais, e pode haver vários blocos elseif. Porém, o end é obrigatório.

É possível aninhar condicionais if, mas talvez você queira ajudar a legibilidade com o uso cuidadoso de parênteses, indentação e comentários.

A forma mais curta de uma condicional seria algo assim:

if n < 0
    n = 0
end

Como lembrete: só é possível usar como condicionais expressões que avaliam para true ou false. Julia evita de propósito qualquer conceito de "truthiness", então valores zero, strings vazias e arrays vazios não são equivalentes a false.

Operador ternário

Uma situação simples e comum é escolher um entre dois valores com base em uma condicional.

Julia, como muitas linguagens, tem um operador ternário para deixar isso mais conciso.

A sintaxe é conditional ? value_if_true : value_if_false.

Então o exemplo anterior poderia ser reescrito:

n = n < 0 ? 0 : n

Os parênteses não são exigidos pelo compilador, mas podem melhorar a legibilidade.

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 linearmente com a velocidade. Então, com a velocidade em 4, ela deve produzir 4 * 221 = 884 carros por hora. No entanto, velocidades mais altas aumentam a chance de carros com defeito serem produzidos, que depois precisam ser descartados.

Você tem três tarefas. Cada uma das funções necessárias recebe um único parâmetro inteiro, a velocidade da linha de montagem.

1. Calcule a taxa de sucesso

Implemente o método success_rate() para calcular a probabilidade de um item ser criado sem erro para uma determinada velocidade. 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%.
julia> success_rate(10)
0.77

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

Implemente o método production_rate_per_hour() para calcular a taxa de produção por hora da linha de montagem, levando em conta a taxa de sucesso.

julia> production_rate_per_hour(6)
1193.4

Repare que o valor retornado é um número de ponto flutuante.

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

Implemente o método working_items_per_minute() para calcular quantos carros funcionais são produzidos por minuto:

julia> working_items_per_minute(6)
19

Repare que o valor retornado é um número inteiro: itens incompletos não são incluídos.

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

Tudo pronto para começar Montagem de carros?

Crie sua conta no Exercism para aprender e dominar Julia com 35 conceitos128 exercícios e mentoria humana de verdade, tudo de graça.