Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

قائمة حسب المادة

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy. الدرس 52 من 56.

أضف طريقة (method) تعثر على كل طالب مسجل في دورة معينة وتعيد أسماءهم كمصفوفة (array). هذا هو نوع سلسلة select/map التي تدربت عليها بالفعل.

challenge icon

التحدي

سهل

أضف طريقة list_by_course(course) التي تُرجع مصفوفة من أسماء الطلاب الذين تتضمن مصفوفة :courses الخاصة بهم القيمة course. يجب أن تظهر الأسماء بترتيب الإدراج؛ وإذا لم يكن هناك أي شخص مسجل، فقم بإرجاع [].

استبدل كتلة الاختبار بـ:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob",   22, ["Biology", "Math"])
add_student("Cara",  19, ["Physics"])
puts list_by_course("Math").inspect
puts list_by_course("Physics").inspect
puts list_by_course("Art").inspect

المخرجات المتوقعة:

Student 'Alice' added.
Student 'Bob' added.
Student 'Cara' added.
["Alice", "Bob"]
["Alice", "Cara"]
[]

جرّب بنفسك

$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

def add_grade(name, grade)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return
  end
  $student_records[name][:grades] << grade
  puts "Grade #{grade} added for '#{name}'."
end

def average_grade(name)
  unless $student_records.key?(name)
    puts "Student '#{name}' not found."
    return nil
  end
  grades = $student_records[name][:grades]
  return 0 if grades.empty?
  grades.sum.to_f / grades.length
end

# TODO: def list_by_course(course)، إرجاع مصفوفة من الأسماء المسجلة في `course`

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob",   22, ["Biology", "Math"])
add_student("Cara",  19, ["Physics"])
puts list_by_course("Math").inspect
puts list_by_course("Physics").inspect
puts list_by_course("Art").inspect
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق العمليات

تدرّب بنفسك: مترجم Ruby عبر الإنترنت