Ne Almalı
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 88 / 88.
Görev
KolayGirdiden bir alışveriş listesi ve mağaza envanterini okuyun, ardından hangi ürünlerin satın alınabileceğini belirleyin.
Şunları alacaksınız:
- Birinci satır: alışveriş listenizi temsil eden, virgülle ayrılmış ürün adları
- İkinci satır: mağaza envanterindeki ürün sayısı
- Sonraki satırlar: her biri virgülle ayrılmış bir ürün adı ve miktar içerir
Örneğin, apples,5 şeklindeki envanter girdisi, mağazanın stokta 5 elması olduğu anlamına gelir.
Alışveriş listenizdeki her bir ürün için, satın alınabiliyorsa ürün adının ardından - Yes, alınamıyorsa - No yazdırın.
Bir ürün şu durumlarda satın alınabilir:
- Mağaza envanterinde mevcutsa VE
- Miktarı 0'dan büyükse
Bir ürün envanterde hiç yoksa veya miktarı 0 ise, No yazdırın.
Örneğin, girdiler şunlarsa:
apples,bread,milk
3
apples,5
bread,0
milk,3Çıktı şu şekilde olmalıdır:
apples - Yes
bread - No
milk - YesGirdiler şunlarsa:
eggs,butter,cheese,yogurt
2
eggs,12
cheese,0Çıktı şu şekilde olmalıdır:
eggs - Yes
butter - No
cheese - No
yogurt - NoGirdiler şunlarsa:
water
1
water,100Çıktı şu şekilde olmalıdır:
water - YesKendin dene
# Alışveriş listesini oku (virgülle ayrılmış öğeler)
shopping_list = gets.chomp.split(',')
# Envanter öğelerinin sayısını oku
n = gets.to_i
# Mağaza envanterini oku
inventory = {}
n.times do
line = gets.chomp.split(',')
item_name = line[0]
quantity = line[1].to_i
inventory[item_name] = quantity
end
# TODO: Kodunuzu aşağıya yazın
# Alışveriş listesindeki her bir öğe için, satın alınıp alınamayacağını kontrol edin
# Bir öğe, envanterde varsa VE miktarı > 0 ise satın alınabilir
# Her öğe için "item_name - Yes" veya "item_name - No" yazdırınTemeller 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 Collect