Daftar Berdasarkan Kursus
Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 52 dari 56.
Tambahkan method yang menemukan setiap siswa yang terdaftar di kursus tertentu dan mengembalikan nama mereka sebagai array. Ini adalah jenis rangkaian select/map yang sudah kamu latih.
Tantangan
MudahTambahkan method list_by_course(course) yang mengembalikan array berisi nama siswa yang array :courses-nya mencakup course. Nama harus muncul sesuai urutan penambahannya. Jika tidak ada siswa yang terdaftar, kembalikan [].
Ganti blok pengujian dengan:
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").inspectOutput yang diharapkan:
Student 'Alice' added.
Student 'Bob' added.
Student 'Cara' added.
["Alice", "Bob"]
["Alice", "Cara"]
[]Coba sendiri
$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), kembalikan array berisi nama siswa yang terdaftar di `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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom7Hash Bagian 2
Hash.new dengan Nilai BawaanMenelusuri HashHash BersarangMenggabungkan dan MengubahRangkuman: Penghitung Frekuensi10Proyek: Data Siswa
Gambaran Umum ProyekTambahkan Siswa5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi NilaiLatihan sendiri: Compiler Ruby online