Tracks
/
C#
C#
/
Ejercicios
/
¡Autos, ensamblen!
¡Autos, ensamblen!

¡Autos, ensamblen!

Ejercicio de aprendizaje

Introducción

Números

En C# hay dos tipos diferentes de números:

  • Enteros: números sin dígitos después del separador decimal (números enteros). Por ejemplo: -6, 0, 1, 25, 976 y 500000.
  • Números de punto flotante: números con cero o más dígitos después del separador decimal. Por ejemplo: -2.4, 0.1, 3.14, 16.984025 y 1024.0.

Los dos tipos numéricos más comunes en C# son int y double. Un int es un entero de 32 bits y un double es un número de punto flotante de 64 bits.

La aritmética se hace con los operadores aritméticos estándar. Los números se pueden comparar con los operadores de comparación numérica estándar y con los operadores de igualdad (==) y desigualdad (!=).

C# tiene dos tipos de conversiones numéricas:

  1. Conversiones implícitas: no se pierde ningún dato y no se necesita sintaxis adicional.
  2. Conversiones explícitas: se podrían perder datos y se necesita sintaxis adicional en forma de cast.

Como un int tiene menos precisión que un double, convertir de int a double es seguro y por eso es una conversión implícita. Sin embargo, convertir de double a int podría significar perder datos, así que requiere una conversión 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

Condicionales if

En este ejercicio debes ejecutar lógica de forma condicional. La forma más común de hacerlo en C# es usar un 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
}

La condición de un condicional if debe ser de tipo bool. C# no tiene el concepto de valores truthy.

Instrucciones

En este ejercicio escribirás código para analizar la producción de una línea de ensamblaje en una fábrica de autos. La velocidad de la línea de ensamblaje puede ir desde 0 (apagada) hasta 10 (máxima).

A su velocidad más baja (1), se producen 221 autos cada hora. La producción aumenta linealmente con la velocidad. Así que con la velocidad en 4, debería producir 4 * 221 = 884 autos por hora. Sin embargo, las velocidades más altas aumentan la probabilidad de que se produzcan autos defectuosos, que luego hay que desechar.

Tienes tres tareas.

1. Calcula la tasa de éxito

Implementa el método (static) AssemblyLine.SuccessRate() para calcular la proporción de unidades creadas sin error para una velocidad dada. La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:

  • 0: 0 % de tasa de éxito.
  • De 1 a 4: 100 % de tasa de éxito.
  • De 5 a 8: 90 % de tasa de éxito.
  • 9: 80 % de tasa de éxito.
  • 10: 77 % de tasa de éxito.
AssemblyLine.SuccessRate(10)
// => 0.77

2. Calcula la tasa de producción por hora

Implementa el método (static) AssemblyLine.ProductionRatePerHour() para calcular la tasa de producción por hora de la línea de ensamblaje, teniendo en cuenta su tasa de éxito:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

Ten en cuenta que el valor devuelto es un double.

3. Calcula la cantidad de autos funcionales producidos por minuto

Implementa el método (static) AssemblyLine.WorkingItemsPerMinute() para calcular cuántos autos funcionales se producen por minuto:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

Ten en cuenta que el valor devuelto es un int.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
C# Exercism

¿Todo listo para empezar ¡Autos, ensamblen!?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.