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 exactos hasta la unidad entera, mientras que la precisión de Float es fraccionaria con respecto a un número entero:
Integer#to_f: Convierte a un nuevo número de coma flotanteFloat#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; se usan para controlar cómo se ejecutará el programa y toman un valor truthy o falsey. Hay operadores que se pueden usar para crear valores truthy o falsey; se conocen como operadores de comparación.
Hay dos expresiones de control principales que se usan para controlar qué código se ejecutará y cuál no. Es decir, cuál de las ramas se ejecutará.
Esas dos son: la expresión 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 se comparen dos valores del mismo tipo.
Si los valores no son del mismo tipo, el compilador lanzará 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, lo que incluye comprobar el tipo del valor.
El != funciona igual, 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 |
if
El condicional if se usa para comprobar si una condición dada es «truthy» o «falsey».
Si la condición es truthy, se ejecutará el código dentro del condicional if.
Un condicional 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
unless
La instrucción unless funciona de forma muy parecida al condicional if, pero ejecutará el código dentro de la instrucción unless si la condición es falsey.
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"
else
La instrucción else se puede usar junto con el condicional if.
La instrucción else se ejecutará si no se ejecuta la rama if.
value = 1
if value == 1
"1 is equal to 1"
else
"1 is not equal to 1"
end
# => "1 is equal to 1"
La instrucción elsif se puede usar junto con el condicional if.
La instrucción elsif se ejecutará si no se ejecuta la rama if y la condición de la instrucción elsif es truthy.
Las instrucciones elsif se pueden encadenar y se ejecutará la primera condición truthy.
También puede haber una instrucción else al final del condicional if que se ejecutará si ninguna de las instrucciones anteriores ha sido 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 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 lenta (1), se producen 221 coches cada hora.
La producción aumenta de forma lineal con la velocidad.
Así, 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.
La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:
1 al 4: 100 % de tasa de éxito.5 al 8: 90 % de tasa de éxito.9: 80 % de tasa de éxito.10: 77 % de tasa de éxito.Tienes dos tareas.
Implementa el método AssemblyLine#production_rate_per_hour para calcular la tasa de producción por hora de la cadena de montaje, 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 coches terminados y funcionales 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.