Menu
Coddy logo textTech

Veri Dönüştürücü

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 56 / 56.

Bitirme projesi meydan okuması: bir veri kümesini özet bir rapora dönüştürün. Filtreleme, eşleme, gruplandırma, hata yönetimi ve metot tanımlamayı tek bir programda birleştirin.

challenge icon

Görev

Orta

students dizisi verilmiştir. Her girdi; :id, :grades (tamsayılardan oluşan, boş olabilen bir dizi) ve :subjects (dizgelerden oluşan bir dizi) anahtarlarını içeren bir hash yapısıdır.

İki anahtar içeren bir hash döndüren transform_dataset(students) metodunu tanımlayın:

  • :qualified_ids: En az bir notu olan ve tüm notları kesinlikle 70 değerinin üzerinde olan (all? kullanın) öğrencilerin :id'lerinden oluşan sıralı dizi.
  • :subject_counts: Kalifiye olan öğrencilerin aldığı her bir dersi, o dersi alan kalifiye öğrenci sayısıyla eşleştiren bir hash.

Eğer bir öğrencinin :grades dizisi boşsa, bu öğrenci kalifiye değildir, sessizce atlayın.

Ardından metodu çağırın ve şunları yazdırın:

  1. Qualified: önekiyle birlikte, aralarına , konularak birleştirilmiş kalifiye ID'ler. Eğer hiç yoksa, Qualified: (none) yazdırın.
  2. Her ders için (alfabetik olarak sıralanmış) <subject>: <count> formatında bir satır.

Varsayılan students verisi için çıktı şöyledir:

Qualified: S1, S4
biology: 1
history: 1
math: 2
physics: 1

Kendin dene

students = [
  { id: "S1", grades: [85, 92, 78], subjects: ["math", "physics"] },
  { id: "S2", grades: [65, 80, 90], subjects: ["math", "biology"] },
  { id: "S3", grades: [],          subjects: ["art"] },
  { id: "S4", grades: [88, 95],    subjects: ["math", "biology", "history"] },
  { id: "S5", grades: [70, 75],    subjects: ["chemistry"] }
]

# YAPILACAK: def transform_dataset(students), { qualified_ids:, subject_counts: } döndür
# YAPILACAK: nitelikli kimlikleri (ID'leri) ve ders sayılarını 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.

Mantık ve Akış bölümündeki tüm dersler