Not Ekle
Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 50 / 56.
Şimdi sistemi bir add_grade metodu ile genişletin. Bu metot, öğrenci mevcut olduğu sürece, öğrencinin :grades dizisine sayısal bir not ekler.
Eğer isim kayıtlarda yoksa, bunu bildirin ve işlemi sonlandırın.
Görev
KolayÖnceki dersteki $student_records hash yapınızı ve add_student metodunuzu koruyun. Aşağıdaki işlemleri gerçekleştiren bir add_grade(name, grade) metodu ekleyin:
- Eğer isim mevcut değilse
Student '<name>' not found.yazdırır ve geri döner. - Aksi takdirde
gradedeğerini öğrencinin:gradesdizisine ekler veGrade <grade> added for '<name>'.yazdırır.
Alttaki test bloğunu şununla değiştirin:
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)
puts $student_records.inspectBeklenen çıktı:
Student 'Alice' added.
Student 'Bob' added.
Grade 90 added for 'Alice'.
Grade 85 added for 'Alice'.
Grade 75 added for 'Bob'.
Student 'Charlie' not found.
{"Alice"=>{:age=>20, :grades=>[90, 85], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[75], :courses=>["Biology", "Chemistry"]}}Kendin dene
$student_records = {}
def add_student(name, age, courses)
if $student_records.key?(name)
puts "Student '#{name}' already exists."
return
end
$student_records[name] = { age: age, grades: [], courses: courses }
puts "Student '#{name}' added."
end
# YAPILACAK: def add_grade(name, grade)
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)
puts $student_records.inspect
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
1Dizeler Detaylı İnceleme
Dize Metotlarına Genel BakışDize EnterpolasyonuDizeler Üzerinde YinelemeBölme ve BirleştirmeTekrar - Dize Dokuyucu4Bloklar, Proc'lar ve Lambda'lar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar SözcüğüBlok ParametreleriProc'lar ve Lambda'larÖzet - Özel Yineleyici7Hash'ler 2. Bölüm
Varsayılanlarla Hash.newHash'ler Üzerinde Yinelemeİç İçe Hash'lerBirleştirme ve DönüştürmeTekrar - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Seçme ve ReddetmeMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byTekrar - Veri HattıKendi başına pratik yap: Online Ruby derleyicisi