Menu
Coddy logo textTech

הוספת ציון

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 50 מתוך 56.

כעת הרחב את המערכת באמצעות מתודה בשם add_grade. היא מוסיפה ציון מספרי למערך :grades של התלמיד, כל עוד התלמיד קיים.

אם השם לא מופיע ברשומות, דווח על כך וצא.

challenge icon

אתגר

קל

השאר את ה-hash $student_records ואת add_student מהשיעור הקודם. הוסף מתודה add_grade(name, grade) ש:

  1. מדפיסה Student '<name>' not found. אם השם לא קיים, ומחזירה.
  2. אחרת, מוסיפה את grade למערך :grades של התלמיד ומדפיסה Grade <grade> added for '<name>'.

החלף את בלוק הבדיקות שבתחתית ב:

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

פלט צפוי:

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"]}}

נסו בעצמכם

$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

# TODO: 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
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Ruby אונליין