FC ConcursosFC Concursos

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}"


  1. [0, 2, 4, 6, 8, 10]
  2. [0]
  3. [0, 1, 2, 4, 8, 16]
  4. [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

Continue aprendendo