Menu
Coddy logo textTech

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. O Ruby permite fatiar arrays usando intervalos (ranges), o que cria um novo array contendo apenas os elementos que você especificar.

Para fatiar um array com um intervalo, coloque o intervalo dentro de colchetes:

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

puts slice  # Saída: 20, 30, 40

O intervalo 1..3 inclui elementos nos índices 1, 2 e 3. Lembre-se de que os índices de array 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  # Saída: 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  # Saída: green, blue, yellow

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

challenge icon

Desafio

Fácil

Leia duas entradas:

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

Divida a primeira entrada em um array de inteiros. Em seguida, use o intervalo da segunda entrada para fatiar o array e imprimir cada elemento da parte fatiada em sua própria linha.

A entrada do 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 deve ser:

30
40
50
60

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

5
10
15

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

200
300
400
500

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

d
e
f

Experimente você mesmo

# Lê os valores separados por vírgula
input_values = gets.chomp

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

# TODO: Escreva seu código abaixo
# 1. Divide input_values em um array
# 2. Analisa range_spec para determinar o início, o fim e se deve usar .. ou ...
# 3. Fatiar o array usando o intervalo apropriado
# 4. Imprime cada elemento da parte fatiada 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