Tracks
/
Julia
Julia
/
Ejercicios
/
Ensamblaje de autos
Ensamblaje de autos

Ensamblaje de autos

Ejercicio de aprendizaje

Introducción

Operadores de comparación

Los operadores de comparación en Julia son similares a los de muchos otros lenguajes, aunque con algunas opciones extra para los amantes de las matemáticas.

Para la igualdad, los operadores son == (igual) y != o ≠ (distinto).

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

Además, están los distintos operadores de mayor y 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 suele pasar con Julia, un editor adecuado facilita el uso del símbolo matemático. Escribe \ne, \le o \ge y luego TAB para obtener ≠, ≤ o ≥.

El ejemplo anterior usa solo números, pero veremos en otras partes del temario que varios tipos adicionales tienen una noción de orden y se pueden comparar con mayor o menor que.

Los operadores de comparación se pueden encadenar, lo que permite una sintaxis clara y concisa:

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

El ejemplo anterior es sinónimo de 1 ≤ n && n ≤ 5.

Bifurcación con if

Esta es la forma completa de una sentencia if:

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

No se necesitan paréntesis (()) ni llaves ({}), y la indentación es «solo» para mejorar la legibilidad (¡pero la legibilidad es muy importante!).

Tanto elseif como else son opcionales, y puede haber varios bloques elseif. Sin embargo, el end es obligatorio.

Es posible anidar sentencias if, aunque quizá quieras ayudar a la legibilidad con un uso cuidadoso de paréntesis, indentaciones y comentarios.

La forma más corta de una sentencia if sería algo así:

if n < 0
    n = 0
end

Como recordatorio: solo las expresiones que se evalúan a true o false se pueden usar como condicionales. Julia evita deliberadamente cualquier concepto de «truthiness», así que los valores cero, los strings vacíos y los arrays vacíos no son equivalentes a false.

Operador ternario

Una situación simple y común es elegir uno de dos valores según un condicional.

Julia, como muchos lenguajes, tiene un operador ternario para hacer esto más conciso.

La sintaxis es conditional ? value_if_true : value_if_false.

Así que el ejemplo anterior se puede reescribir:

n = n < 0 ? 0 : n

El compilador no requiere paréntesis, pero pueden mejorar la legibilidad.

Instrucciones

En este ejercicio vas a escribir 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 de 0 (apagada) a 10 (máxima).

A su velocidad más baja (1), se producen 221 autos cada hora. La producción aumenta de forma lineal 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 descartar.

Tienes tres tareas. Cada una de las funciones requeridas recibe un solo parámetro entero, la velocidad de la línea de ensamblaje.

1. Calcula la tasa de éxito

Implementa el método success_rate() para calcular la probabilidad de que un artículo se cree 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.
julia> success_rate(10)
0.77

2. Calcula la tasa de producción por hora

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

julia> production_rate_per_hour(6)
1193.4

Ten en cuenta que el valor devuelto es un número de punto flotante.

3. Calcula la cantidad de artículos que funcionan producidos por minuto

Implementa el método working_items_per_minute() para calcular cuántos autos que funcionan se producen por minuto:

julia> working_items_per_minute(6)
19

Ten en cuenta que el valor devuelto es un número entero: los artículos incompletos no se incluyen.

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

¿Todo listo para empezar Ensamblaje de autos?

Regístrate en Exercism para aprender y dominar Julia con 35 conceptos128 ejercicios y mentoría humana real, todo gratis.