Menu
Coddy logo textTech

İndeksler ile Dizi Dilimleme

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

Ruby, bir başlangıç dizini ve bir uzunluk kullanarak dizileri dilimlemenin başka bir yolunu sunar. Bir aralık belirtmek yerine iki sayı sağlarsınız: nereden başlanacağı ve kaç öğenin çıkarılacağı.

Söz dizimi, başlangıç dizinini sayıdan ayırmak için virgül kullanır:

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

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

Bu, 1. indeksten başlayarak 3 öğeyi çıkarır. İlk sayı başlangıç konumudur ve ikincisi kaç öğe istediğinizdir.

Bu yaklaşım, tam olarak kaç öğeye ihtiyacınız olduğunu bildiğinizde özellikle yararlıdır:

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

puts first_two  # Çıktı: a, b

Negatif indeksler burada da çalışır. Dizinin sonundan başlayabilirsiniz:

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

puts last_two  # Çıktı: blue, yellow

Mevcut olandan daha fazla öğe isterseniz, Ruby hata vermeden sadece mevcut olanı döndürür:

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

puts slice  # Çıktı: 2, 3

İhtiyaç duyulan öğe sayısını bildiğinizde bu yöntemi seçin ve tam konumları bildiğinizde aralıkları kullanın.

challenge icon

Görev

Kolay

Üç girdi okuyun:

  1. Virgülle ayrılmış tam sayılardan oluşan tek bir satır (örneğin, 5,10,15,20,25,30,35,40)
  2. Bir başlangıç dizini (tam sayı)
  3. Çıkarılacak eleman sayısı (tam sayı)

İlk girdiyi bir tam sayı dizisine bölün. Başlangıç dizinini ve sayısını kullanarak diziyi index-and-length (dizin ve uzunluk) sözdizimiyle dilimleyin, ardından dilimlenen kısmın her bir elemanını kendi satırında yazdırın.

Örneğin, girdiler 5,10,15,20,25,30,35,40, 2 ve 4 ise çıktı şu şekilde olmalıdır:

15
20
25
30

Eğer girdiler 100,200,300,400,500, 0 ve 2 ise çıktı şu şekilde olmalıdır:

100
200

Eğer girdiler a,b,c,d,e,f,g, -3 ve 2 ise çıktı şu şekilde olmalıdır:

e
f

Eğer girdiler 10,20,30, 1 ve 10 ise çıktı şu şekilde olmalıdır:

20
30

Kopya kağıdı

Ruby, bir başlangıç indeksi ve bir uzunluk kullanarak dizileri dilimlemeye (slicing) olanak tanır. Söz dizimi, başlangıç indeksini sayıdan ayırmak için virgül kullanır:

array[start_index, length]

Temel örnek:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice  # Çıktı: 20, 30, 40

İlk sayı başlangıç pozisyonudur ve ikincisi kaç öğenin çıkarılacağını belirtir.

Negatif indeksler bu söz dizimi ile çalışarak dizinin sonundan başlamanıza olanak tanır:

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two  # Çıktı: blue, yellow

Mevcut olandan daha fazla öğe isterseniz, Ruby hata vermeden mevcut olanları döndürür:

nums = [1, 2, 3]
slice = nums[1, 10]
puts slice  # Çıktı: 2, 3

Kendin dene

# Girdileri oku
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# Girdiyi bir diziye böl
arr = input_line.split(',')

# TODO: Diziyi indeks-ve-uzunluk sözdizimini kullanarak dilimlemek
# ve her bir öğeyi kendi satırına yazdırmak için kodunuzu aşağıya yazı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