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

Linha de Montagem

Exercício de aprendizagem

Introdução

Números

Em Rust existem duas categorias diferentes de números: os inteiros (que podem ter sinal ou não ter sinal) e os números de vírgula flutuante.

Inteiros

  • Inteiros: números sem algarismos depois do separador decimal (números inteiros). Os tipos inteiros podem armazenar apenas números positivos (sem sinal) ou tanto números positivos como negativos (com sinal). Exemplos: -6, 0, 1, 25, 976 e 500000.

Números de vírgula flutuante

  • Números de vírgula flutuante: números com zero ou mais algarismos depois do separador decimal. Exemplos: -2.4, 0.1, 3.14, 16.984025 e 1024.0.

Como nomear os tipos numéricos

O nome de um tipo numérico é composto por duas partes:

  • Uma letra que indica se é um inteiro sem sinal (u), um inteiro com sinal (i) ou um número de vírgula flutuante (f).
  • Um número que indica o tamanho do tipo em bits. Os tipos maiores têm um intervalo maior entre os valores mínimo e máximo. Nos números de vírgula flutuante, também permitem mais algarismos depois do separador decimal.

São possíveis as seguintes combinações:

  • 8 bits: u8, i8
  • 16 bits: u16, i16
  • 32 bits: u32, i32, f32
  • 64 bits: u64, i64, f64
  • 128 bits: u128, i128

Repara que só existem as variantes de 32 e 64 bits para os números de vírgula flutuante.

Converter entre tipos numéricos

O Rust não faz nenhuma conversão de tipo implícita. Isto significa que, se precisares de transformar um tipo numérico noutro, tens de o fazer explicitamente. Ao converteres de um tipo maior para um menor (por exemplo, de u64 para u32), podes perder dados. Ao converteres de um número de vírgula flutuante para um inteiro, vais perder tudo o que fica depois do separador decimal, o que arredonda, na prática, por defeito.

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).

À velocidade mais baixa (1), são produzidos 221 automóveis por hora. A produção aumenta linearmente com a velocidade. Assim, com a velocidade definida para 4, devem ser produzidos 4 * 221 = 884 automóveis por hora. No entanto, velocidades mais altas aumentam a probabilidade de se produzirem automóveis com defeito, que depois têm de ser descartados. A lista 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 e 10: 77% de taxa de sucesso.

Tens duas tarefas.

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

Implementa um método para calcular a taxa de produção por hora da linha de montagem, tendo em conta a taxa de sucesso:

assembly_line::production_rate_per_hour(6)
// Returns: 1193.4

Repara que o valor devolvido é um f64.

2. Calcula o número de automóveis funcionais produzidos por minuto

Implementa um método para calcular quantos automóveis funcionais são produzidos por minuto:

assembly_line::working_items_per_minute(6)
// Returns: 19

Repara que o valor devolvido é um u32.

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

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

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