Questão FC266149
A linguagem Ruby é uma linguagem de script, de tipagem dinâmica. Ela possui gerenciamento automático de memória e é multiparadigma, suportando programação funcional e também orient
Linguagens de Programação
IDECAN · 2022
A linguagem Ruby é uma linguagem de script, de tipagem dinâmica. Ela possui gerenciamento automático de memória e é multiparadigma, suportando programação funcional e também orientada a objetos. Além disso, a linguagem possui diversos operadores aritméticos, lógicos e de comparação.
A respeito desses operadores, analise o código Ruby abaixo e marque a alternativa que indica, corretamente, o que será apresentado em tela pelo comando puts.
a=1
b=1
if !(a<=> b)
x = Array.new(6%8) {lal a *= 2}
else
x = Array.new(6%8) {lal a **= 2}
end
outs "#{x}"
- [0, 2, 4, 6, 8, 10]
- [0]
- [0, 1, 2, 4, 8, 16]
- [0, 1, 4, 9, 16, 251]
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A expressão !(a <=> b) usa o operador <=>> (spaceship) que retorna 0 quando os operandos são iguais. Em Ruby, 0 é truthy, então !0 resulta em false — logo executa-se o else.
Em seguida vem Array.new(6%8). Como \(6 \bmod 8 = 6\), cria-se um array com 6 elementos. O bloco passado a Array.new recebe, por padrão, o índice do elemento (0..5) quando declarado como parâmetro.
Dentro do bloco ocorre a operação |i| i **= 2, que calcula o quadrado do índice. Assim os elementos gerados são os quadrados de 0 a 5: \(0^2,1^2,2^2,3^2,4^2,5^2\).
Portanto, a saída produzida por puts "#{x}" é o array:
[0, 1, 4, 9, 16, 25]
Conteúdo do catálogo FC Concursos · Atualizado em