Los dos tipos de números más comunes en Ruby son:
-6, 0, 1, 25, 976 y 500000.-2.4, 0.1, 3.14, 16.984025 y 1024.0.Se implementan mediante las clases Integer y Float.
Estas clases tienen métodos que convierten valores de un tipo al otro. Los números Integer son precisos a una unidad entera, mientras que Float tiene una precisión fraccionaria respecto de un número entero:
Integer#to_f: convierte a un nuevo floatFloat#ceil: redondea hacia arriba al entero más cercanoFloat#floor: redondea hacia abajo al entero más cercanoFloat#round: redondea al entero más cercanoFloat#to_i: trunca al entero más cercanoRuby tiene lo que se conoce como expresiones de control de flujo; estas se usan para controlar la forma en que se ejecutará el programa y toman un valor verdadero o falso. Existen operadores que se pueden usar para crear valores verdaderos o falsos; estos se conocen como operadores de comparación.
Hay dos expresiones de control principales que se usan para controlar qué código se ejecutará y qué código no. Es decir, qué rama en particular se ejecutará.
Esas dos son: if y la expresión unless.
Los operadores de comparación se usan para comparar valores y devolver un valor true o false.
Los siguientes operadores requieren que los dos valores que se comparan sean del mismo tipo.
Si los valores no son del mismo tipo, el compilador arrojará un error.
Aquí tienes una lista de los operadores y un ejemplo de cuándo dan un valor true:
| Método | Descripción | Ejemplo |
|---|---|---|
| < | menor que | 4 < 5 |
| <= | menor o igual que | 4 <= 4 |
| > | mayor que | 3 > 1 |
| >= | mayor o igual que | 2 >= 2 |
Los operadores de igualdad y desigualdad se pueden usar para comparar cualquier tipo de valor, a diferencia de los operadores ya mencionados.
El operador == se usa para comprobar si dos valores son iguales, y eso incluye comprobar el tipo del valor.
El != funciona de la misma manera, pero devolverá true si los valores no son iguales y false si son iguales.
Aquí tienes una lista de los operadores de igualdad y desigualdad, y un ejemplo de cuándo dan un valor true:
| Método | Descripción | Ejemplo |
|---|---|---|
| == | igual | 4 == 4 |
| != | distinto | 5 != 4 |
La sentencia if se usa para comprobar si una condición dada es «verdadera» o «falsa».
Si la condición es verdadera, el código dentro de la sentencia if se ejecutará.
Una sentencia if termina con la palabra clave end.
value = 1
if value == 1
"1 is equal to 1"
end
# => "1 is equal to 1"
if value > 2
"1 is greater than 2"
end
# => nil
La sentencia unless funciona de manera muy similar a la sentencia if, pero ejecutará el código dentro de la sentencia unless si la condición es falsa.
value = 1
unless value == 1
"1 is not equal to 1"
end
# => nil
unless value > 2
"1 is not greater than 2"
end
# => "1 is not greater than 2"
La sentencia else se puede usar junto con la sentencia if.
La sentencia else se ejecutará si la rama if no se ejecuta.
value = 1
if value == 1
"1 is equal to 1"
else
"1 is not equal to 1"
end
# => "1 is equal to 1"
La sentencia elsif se puede usar junto con la sentencia if.
La sentencia elsif se ejecutará si la rama if no se ejecuta y la condición de la sentencia elsif es verdadera.
Las sentencias elsif se pueden encadenar y se ejecutará la primera condición verdadera.
También puede haber una sentencia else al final de la sentencia if, que se ejecutará si ninguna de las sentencias anteriores fue verdadera.
value = 1
if value != 1
"1 is not equal to 1"
elsif value > 2
"1 is greater than 2"
else
"1 is not equal to 1 and 1 is not greater than 2"
end
# => "1 is not equal to 1 and 1 is not greater than 2"
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 lenta (1), se producen 221 autos cada hora.
La producción aumenta linealmente con la velocidad.
Entonces, 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.
La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:
1 a 4: tasa de éxito del 100 %.5 a 8: tasa de éxito del 90 %.9: tasa de éxito del 80 %.10: tasa de éxito del 77 %.Tienes dos tareas.
Implementa el método AssemblyLine#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.
Ten en cuenta que el valor devuelto es una instancia de Float.
AssemblyLine.new(6).production_rate_per_hour
#=> 1193.4
Implementa el método AssemblyLine#working_items_per_minute para calcular cuántos autos terminados y en buen estado se producen por minuto.
Ten en cuenta que el valor devuelto es una instancia de Integer.
AssemblyLine.new(6).working_items_per_minute
#=> 19
Regístrate en Exercism para aprender y dominar Ruby con 21 conceptos121 ejercicios y mentoría humana real, todo gratis.