Trilhas
/
C#
C#
/
Exercícios
/
Carros, à montagem!
Carros, à montagem!

Carros, à montagem!

Exercício de aprendizagem

Introdução

Números

Existem dois tipos diferentes de números em C#:

  • Inteiros: números sem nenhum dígito depois do separador decimal (números inteiros). Exemplos: -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: -2.4, 0.1, 3.14, 16.984025 e 1024.0.

Os dois tipos numéricos mais comuns em C# são int e double. Um int é um inteiro de 32 bits e um double é um número de ponto flutuante de 64 bits.

A aritmética é feita com os operadores aritméticos padrão. Números podem ser comparados usando os operadores padrão de comparação numérica e os operadores de igualdade (==) e desigualdade (!=).

O C# tem dois tipos de conversão numérica:

  1. Conversões implícitas: nenhum dado é perdido e nenhuma sintaxe adicional é necessária.
  2. Conversões explícitas: dados podem ser perdidos e é necessária uma sintaxe adicional na forma de um cast.

Como um int tem menos precisão que um double, converter de int para double é seguro e, portanto, é uma conversão implícita. Já converter de double para int pode significar perda de dados, então isso exige uma conversão explícita.

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

Condicionais

Neste exercício, você precisa executar uma lógica condicional. A forma mais comum de fazer isso em C# é usar uma condicional if/else:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

A condição de uma condicional if precisa ser do tipo bool. O C# não tem o conceito de valores truthy.

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 sua velocidade mais baixa (1), são produzidos 221 carros por hora. A produção aumenta linearmente com a velocidade. Então, com a velocidade definida em 4, ela deve produzir 4 * 221 = 884 carros por hora. No entanto, velocidades mais altas aumentam a chance de que carros com defeito sejam produzidos, e esses carros precisam ser descartados.

Você tem três tarefas.

1. Calcule a taxa de sucesso

Implemente o método (static) AssemblyLine.SuccessRate() para calcular a proporção de itens criados 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%.
AssemblyLine.SuccessRate(10)
// => 0.77

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

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

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

Observe que o valor retornado é um double.

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

Implemente o método (static) AssemblyLine.WorkingItemsPerMinute() para calcular quantos carros funcionais são produzidos por minuto:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

Observe que o valor retornado é um int.

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

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

Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.