Menu
CoddyTech

Öğrenci Ekle

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

Paylaşılan student_records hash'ine yeni bir öğrenci kaydeden add_student yöntemi tanımla.

Yinelenen kayıtları reddetmek tek daldır; öğrenci zaten varsa bunu bildir ve üzerine yazmadan geri dön.

challenge icon

Görev

Kolay

Dosyanın en üstünde student_records = {} ifadesini tut. Ardından şu işlemleri yapan bir add_student(name, age, courses) yöntemi tanımla:

  1. name, student_records içinde zaten bir anahtarsa Student '<name>' already exists. ifadesini yazdırır ve geri döner.
  2. Aksi takdirde { age: age, grades: [], courses: courses } ifadesini name anahtarının altında saklar ve Student '<name>' added. ifadesini yazdırır.

Dosyanın en altındaki test bloğunu şununla değiştir:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts student_records.inspect

Beklenen çıktı:

Student 'Alice' added.
Student 'Bob' added.
Student 'Alice' already exists.
{"Alice"=>{:age=>20, :grades=>[], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[], :courses=>["Biology", "Chemistry"]}}

Yöntemler, kapsayan betikteki yerel değişkenleri göremediğinden, yöntemin bu değişkeni okuyup güncelleyebilmesi için student_records değişkenini global bir değişken olan $student_records ile tanımla. Yöntemin içinde de bu adı kullan.

Kendin dene

$student_records = {}

# TODO: def add_student(name, age, courses) tanımla, yinelenen kayıtları önle,
# { age:, grades: [], courses: } yapısını sakla, eklendi/zaten mevcut mesajını yazdır

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
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

Kendi başına pratik yap: Online Ruby derleyicisi