Menu
CoddyTech

İndeksler ile Dizi Dilimleme

Coddy'nin Ruby Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 70 / 88.

Ruby, başlangıç indeksi ve uzunluk kullanarak dizileri dilimlemenin başka bir yolunu sunar. Bir aralık belirtmek yerine iki sayı verirsin: nereden başlayacağını ve kaç öğe çıkaracağını.

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  # 20, 30 ve 40 değerlerini, her birini ayrı bir satırda yazdırır

Bu, 1. indeksten başlayarak 3 öğe çıkarır. İlk sayı başlangıç konumunu, ikinci sayı ise istediğin öğe sayısını belirtir.

Bu yaklaşım, özellikle tam olarak kaç öğeye ihtiyacın olduğunu bildiğinde kullanışlıdır:

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

puts first_two  # a ve b'yi her birini ayrı bir satırda olacak şekilde çıktılar

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

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

puts last_two  # blue ve yellow değerlerini ayrı satırlarda yazdırır

Mevcut olandan daha fazla öğe istersen Ruby, hata vermeden yalnızca var olanları döndürür:

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

puts slice  # 2 ve 3'ü, her biri ayrı bir satırda olacak şekilde ekrana yazdırır

Gereken öğe sayısını biliyorsan bu yöntemi seç, kesin konumları biliyorsan aralıkları kullan.

challenge icon

Görev

Kolay

Üç girdi okuyun:

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

İlk girdiyi bir tam sayı dizisine ayırın. Dizini ve uzunluğu belirten söz dizimini kullanarak başlangıç dizini ve sayıyı kullanıp diziyi dilimleyin, ardından dilimlenen bölümdeki her öğeyi kendi satırında yazdırın.

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

15
20
25
30

Girdiler 100,200,300,400,500, 0 ve 2 ise çıktı şöyle olmalıdır:

100
200

Girdiler a,b,c,d,e,f,g, -3 ve 2 ise çıktı şöyle olmalıdır:

e
f

Girdiler 10,20,30, 1 ve 10 ise çıktı şöyle olmalıdır:

20
30

Kendin dene

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

# Girdiyi bir diziye ayır
arr = input_line.split(',')

# TODO: Diziyi indeks ve uzunluk sözdizimini kullanarak dilimlemek için kodunu aşağıya yaz
# ve her öğeyi ayrı bir satırda yazdır
quiz iconKendini test et

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

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi