İ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ırBu, 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ılarNegatif 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ırMevcut 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ırGereken öğe sayısını biliyorsan bu yöntemi seç, kesin konumları biliyorsan aralıkları kullan.
Görev
KolayÜç girdi okuyun:
- Virgülle ayrılmış tam sayılardan oluşan tek bir satır (ör.
5,10,15,20,25,30,35,40) - Başlangıç dizini (tam sayı)
- Çı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
30Girdiler 100,200,300,400,500, 0 ve 2 ise çıktı şöyle olmalıdır:
100
200Girdiler a,b,c,d,e,f,g, -3 ve 2 ise çıktı şöyle olmalıdır:
e
fGirdiler 10,20,30, 1 ve 10 ise çıktı şöyle olmalıdır:
20
30Kendin 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ırBu 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
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve CollectKendi başına pratik yap: Online Ruby derleyicisi