Os dois tipos de números mais comuns em Ruby são:
-6, 0, 1, 25, 976 e 500000.-2.4, 0.1, 3.14, 16.984025 e 1024.0.Eles são implementados por meio das classes Integer e Float.
Essas classes têm métodos que convertem valores de um tipo para o outro. Os números Integer são precisos em relação a uma unidade inteira, enquanto o Float tem precisão fracionária em relação a um número inteiro:
Integer#to_f: Converte para um novo número de ponto flutuanteFloat#ceil: Arredonda para cima até o inteiro mais próximoFloat#floor: Arredonda para baixo até o inteiro mais próximoFloat#round: Arredonda para o inteiro mais próximoFloat#to_i: Trunca até o inteiro mais próximoO Ruby tem o que chamamos de expressões de controle de fluxo. Elas são usadas para controlar a forma como o programa roda e assumem um valor truthy ou falsey. Existem operadores que podem ser usados para criar valores truthy ou falsey, conhecidos como operadores de comparação.
Existem duas expressões de controle principais que determinam qual código será executado e qual não será. Ou seja, qual bloco será executado.
Essas duas são: a expressão if e a expressão unless.
Os operadores de comparação são usados para comparar valores e retornam um valor true ou false.
Os operadores a seguir exigem dois valores do mesmo tipo para serem comparados.
Se os valores não forem do mesmo tipo, o compilador lançará um erro.
Aqui está uma lista dos operadores e um exemplo de quando eles resultam em true:
| Método | Descrição | Exemplo |
|---|---|---|
| < | menor que | 4 < 5 |
| <= | menor ou igual | 4 <= 4 |
| > | maior que | 3 > 1 |
| >= | maior ou igual | 2 >= 2 |
Os operadores de igualdade e de desigualdade podem ser usados para comparar qualquer tipo de valor, ao contrário dos operadores já mencionados.
O operador == é usado para verificar se dois valores são iguais, o que inclui verificar o tipo do valor.
O != funciona da mesma forma, mas retorna true se os valores forem diferentes e false se forem iguais.
Aqui está uma lista dos operadores de igualdade e de desigualdade e um exemplo de quando eles resultam em true:
| Método | Descrição | Exemplo |
|---|---|---|
| == | igual | 4 == 4 |
| != | diferente | 5 != 4 |
if
A condicional if é usada para verificar se uma determinada condição é "truthy" ou "falsey".
Se a condição for truthy, o código dentro da condicional if será executado.
Uma condicional if termina com a palavra-chave 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
A condicional unless funciona de forma muito parecida com a condicional if, mas executa o código dentro da condicional unless se a condição for 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
A cláusula else pode ser usada em conjunto com a condicional if.
A cláusula else será executada se o bloco do if não for executado.
value = 1
if value == 1
"1 is equal to 1"
else
"1 is not equal to 1"
end
# => "1 is equal to 1"
A condicional elsif pode ser usada em conjunto com a condicional if.
A condicional elsif será executada se o bloco do if não for executado e a condição da condicional elsif for truthy.
As condicionais elsif podem ser encadeadas, e a primeira condição truthy será executada.
Também pode haver uma cláusula else no fim da condicional if, que será executada se nenhuma das condicionais anteriores tiver sido verdadeira.
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"
Neste exercício, você vai escrever código para analisar a produção de uma linha de montagem em uma fábrica de carros.
A velocidade da linha de montagem pode variar de 0 (desligada) a 10 (máxima).
Na velocidade mais baixa (1), são produzidos 221 carros por hora.
A produção aumenta linearmente com a velocidade.
Então, com a velocidade em 4, ela deve produzir 4 * 221 = 884 carros por hora.
Porém, velocidades mais altas aumentam a chance de saírem carros com defeito, que depois precisam ser descartados.
A tabela a seguir mostra como a velocidade influencia a taxa de sucesso:
1 a 4: 100% de taxa de sucesso.5 a 8: 90% de taxa de sucesso.9: 80% de taxa de sucesso.10: 77% de taxa de sucesso.Você tem duas tarefas.
Implemente o método AssemblyLine#production_rate_per_hour para calcular a taxa de produção por hora da linha de montagem, levando em conta a taxa de sucesso dela.
Repare que o valor retornado é uma instância de Float.
AssemblyLine.new(6).production_rate_per_hour
#=> 1193.4
Implemente o método AssemblyLine#working_items_per_minute para calcular quantos carros prontos e funcionais são produzidos por minuto.
Repare que o valor retornado é uma instância de Integer.
AssemblyLine.new(6).working_items_per_minute
#=> 19
Crie sua conta no Exercism para aprender e dominar Ruby com 21 conceitos121 exercícios e mentoria humana de verdade, tudo de graça.