Rutas
/
C#
C#
/
Ejercicios
/
¡Coches, ensamblad!
¡Coches, ensamblad!

¡Coches, ensamblad!

Ejercicio de aprendizaje

Introducción

Números

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

  • Enteros: números que no tienen dígitos detrás del separador decimal (números sin decimales). Algunos ejemplos son -6, 0, 1, 25, 976 y 500000.
  • Números de coma flotante: números con cero o más dígitos detrás del separador decimal. Algunos ejemplos son -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 coma flotante de 64 bits.

La aritmética se realiza con los operadores aritméticos estándar. Los números se pueden comparar con los operadores de comparación numéricos 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 un int a un double es seguro y, por tanto, es una conversión implícita. Sin embargo, convertir de un double a un int podría suponer 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

En este ejercicio tienes que ejecutar lógica de forma condicional. La forma más habitual 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 vas a escribir código para analizar la producción de una cadena de montaje en una fábrica de coches. La velocidad de la cadena de montaje puede ir de 0 (apagada) a 10 (máxima).

A su velocidad más baja (1), se producen 221 coches cada hora. La producción aumenta de forma lineal con la velocidad. Así que, con la velocidad ajustada a 4, debería producir 4 * 221 = 884 coches por hora. Sin embargo, las velocidades más altas aumentan la probabilidad de que se produzcan coches defectuosos, que después 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 artículos que se crean sin errores para una velocidad dada. La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:

  • 0: 0 % de tasa de éxito.
  • 1 a 4: 100 % de tasa de éxito.
  • 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 cadena de montaje, teniendo en cuenta su tasa de éxito:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

Ten en cuenta que el valor devuelto es un double.

3. Calcula el número de artículos en buen estado producidos por minuto

Implementa el método (static) AssemblyLine.WorkingItemsPerMinute() para calcular cuántos coches en buen estado 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 pestaña nueva
C# Exercism

¿Listo para empezar ¡Coches, ensamblad!?

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