Menu
CoddyTech

Fatiamento de Arrays com Intervalos

Parte da seção Fundamentos do Journey de Ruby da Coddy. Lição 69 de 88.

Às vezes, você precisa extrair uma parte de um array em vez de acessar elementos individuais. Ruby permite fatiar arrays usando intervalos, o que cria um novo array contendo apenas os elementos que você especificar.

Para fatiar um array com um intervalo, coloque o intervalo entre colchetes:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]

puts slice  # Exibe: 20, 30, 40

O intervalo 1..3 inclui elementos nos índices 1, 2 e 3. Lembre-se de que os índices de arrays começam em 0, então o índice 1 é o segundo elemento.

Você também pode usar o intervalo de três pontos (...) para excluir o último índice:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]

puts slice  # Exibe: a, b, c

Aqui, 0...3 inclui os índices 0, 1 e 2, mas para antes do índice 3.

Índices negativos também funcionam com intervalos. Eles contam a partir do final do array, onde -1 é o último elemento:

colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]

puts slice  # Exibe: green, blue, yellow

Isso extrai tudo do índice 1 até o último elemento, o que é útil quando você quer pular o primeiro elemento sem saber o tamanho do array.

challenge icon

Desafio

Fácil

Leia duas entradas:

  1. Uma única linha de números inteiros separados por vírgulas (por exemplo, 10,20,30,40,50,60,70)
  2. Uma especificação de intervalo no formato start..end ou start...end (por exemplo, 2..5 ou 1...4)

Divida a primeira entrada em um array de números inteiros. Em seguida, use o intervalo da segunda entrada para fatiar o array e imprimir cada elemento da parte fatiada em uma linha separada.

A entrada de intervalo usará dois pontos (..) para incluir o índice final ou três pontos (...) para excluí-lo.

Por exemplo, se as entradas forem 10,20,30,40,50,60,70 e 2..5, a saída deverá ser:

30
40
50
60

Se as entradas forem 5,10,15,20,25,30 e 0...3, a saída deverá ser:

5
10
15

Se as entradas forem 100,200,300,400,500 e 1..-1, a saída deverá ser:

200
300
400
500

Se as entradas forem a,b,c,d,e,f e -3..-1, a saída deverá ser:

d
e
f

Experimente você mesmo

# Leia os valores separados por vírgulas
input_values = gets.chomp

# Leia a especificação do intervalo
range_spec = gets.chomp

# TODO: Escreva seu código abaixo
# 1. Divida input_values em um array
# 2. Analise range_spec para determinar o início, o fim e se deve usar .. ou ...
# 3. Extraia uma fatia do array usando o intervalo apropriado
# 4. Imprima cada elemento da fatia em sua própria linha
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Ruby online