Menu
Coddy logo textTech

Aralıklar ile Dizi Dilimleme

Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 69 / 88.

Bazen tek tek öğelere erişmek yerine bir dizinin bir bölümünü çıkarmanız gerekir. Ruby, aralıkları kullanarak dizileri dilimlemenize olanak tanır; bu işlem, yalnızca belirttiğiniz öğeleri içeren yeni bir dizi oluşturur.

Bir diziyi bir aralıkla dilimlemek için, aralığı köşeli parantezlerin içine yerleştirin:

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

puts slice  # Çıktı: 20, 30, 40

1..3 aralığı 1, 2 ve 3 numaralı dizinlerdeki öğeleri içerir. Dizi dizinlerinin 0'dan başladığını unutmayın, bu nedenle dizin 1 ikinci öğedir.

Son dizini hariç tutmak için üç noktalı aralığı (...) da kullanabilirsiniz:

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

puts slice  # Çıktı: a, b, c

Burada, 0...3 0, 1 ve 2 dizinlerini içerir, ancak 3. dizinden önce durur.

Negatif indeksler aralıklarla da çalışır. Dizinin sonundan geriye doğru sayarlar; -1 son öğedir:

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

puts slice  # Çıktı: green, blue, yellow

Bu, dizinin uzunluğunu bilmeden ilk öğeyi atlamak istediğinizde yararlı olan, dizin 1'den son öğeye kadar her şeyi çıkarır.

challenge icon

Görev

Kolay

İki girdi okuyun:

  1. Virgülle ayrılmış tam sayılardan oluşan tek bir satır (örneğin, 10,20,30,40,50,60,70)
  2. start..end veya start...end formatında bir aralık belirtimi (örneğin, 2..5 veya 1...4)

İlk girdiyi bir tam sayı dizisine bölün. Ardından, diziyi dilimlemek için ikinci girdideki aralığı kullanın ve dilimlenen kısmın her bir öğesini kendi satırında yazdırın.

Aralık girdisi, bitiş dizinini dahil etmek için iki nokta (..) veya hariç tutmak için üç nokta (...) kullanacaktır.

Örneğin, girdiler 10,20,30,40,50,60,70 ve 2..5 ise çıktı şu şekilde olmalıdır:

30
40
50
60

Girdiler 5,10,15,20,25,30 ve 0...3 ise çıktı şu şekilde olmalıdır:

5
10
15

Girdiler 100,200,300,400,500 ve 1..-1 ise çıktı şu şekilde olmalıdır:

200
300
400
500

Girdiler a,b,c,d,e,f ve -3..-1 ise çıktı şu şekilde olmalıdır:

d
e
f

Kopya kağıdı

Bir dizinin bir bölümünü ayıklamak için köşeli parantez içinde aralıkları kullanın:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
# [20, 30, 40] döner (1, 2 ve 3. indeksler)

Bitiş indeksini dahil etmek için iki nokta (..) kullanın:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0..2]
# ["a", "b", "c"] döner (0, 1 ve 2. indeksler)

Bitiş indeksini hariç tutmak için üç nokta (...) kullanın:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
# ["a", "b", "c"] döner (0, 1 ve 2. indeksler, 3'ten önce durur)

Negatif indeksler dizinin sonundan geriye doğru sayar (-1 son elemandır):

colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
# ["green", "blue", "yellow"] döner (indeks 1'den son elemana kadar)

Kendin dene

# Virgülle ayrılmış değerleri oku
input_values = gets.chomp

# Aralık belirtecini oku
range_spec = gets.chomp

# TODO: Kodunuzu aşağıya yazın
# 1. input_values değerini bir diziye ayırın
# 2. Başlangıç, bitiş ve .. mı yoksa ... mı kullanılacağını belirlemek için range_spec'i ayrıştırın
# 3. Uygun aralığı kullanarak diziyi dilimleyin
# 4. Dilimlenen kısmın her bir öğesini kendi satırında yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler