Menu
Coddy logo textTech

Fatiamento de Arrays com Índices

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

Ruby oferece outra maneira de fatiar arrays usando um índice inicial e um comprimento. Em vez de especificar um intervalo, você fornece dois números: onde começar e quantos elementos extrair.

A sintaxe usa uma vírgula para separar o índice inicial da contagem:

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

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

Isso extrai 3 elementos começando a partir do índice 1. O primeiro número é a posição inicial, e o segundo é a quantidade de elementos que você deseja.

Esta abordagem é especialmente útil quando você sabe exatamente de quantos elementos precisa:

letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]

puts first_two  # Saída: a, b

Índices negativos também funcionam aqui. Você pode começar pelo final do array:

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]

puts last_two  # Saída: blue, yellow

Se você solicitar mais elementos do que os disponíveis, o Ruby simplesmente retorna o que existe sem gerar um erro:

nums = [1, 2, 3]
slice = nums[1, 10]

puts slice  # Saída: 2, 3

Escolha este método quando você souber a contagem de elementos necessários e use intervalos quando souber as posições exatas.

challenge icon

Desafio

Fácil

Leia três entradas:

  1. Uma única linha de números inteiros separados por vírgulas (ex: 5,10,15,20,25,30,35,40)
  2. Um índice inicial (inteiro)
  3. O número de elementos a serem extraídos (inteiro)

Divida a primeira entrada em um array de inteiros. Use o índice inicial e a contagem para fatiar o array usando a sintaxe de índice e comprimento (index-and-length), depois imprima cada elemento da parte fatiada em sua própria linha.

Por exemplo, se as entradas forem 5,10,15,20,25,30,35,40, 2 e 4, a saída deve ser:

15
20
25
30

Se as entradas forem 100,200,300,400,500, 0 e 2, a saída deve ser:

100
200

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

e
f

Se as entradas forem 10,20,30, 1 e 10, a saída deve ser:

20
30

Experimente você mesmo

# Ler as entradas
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# Dividir a entrada em um array
arr = input_line.split(',')

# TODO: Escreva seu código abaixo para fatiar o array usando a sintaxe de índice e comprimento
# e imprimir cada elemento 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