Menu
Coddy logo textTech

הוספת תלמיד

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

הגדירו מתודה בשם add_student שרושמת תלמיד חדש במילון המשותף student_records.

סירוב לקבל כפילויות הוא הענף היחיד: ברגע שתלמיד קיים, דווחו על כך והחזירו בלי לדרוס את הרשומה.

challenge icon

אתגר

קל

בראש הקובץ שלך השאר את student_records = {}. לאחר מכן הגדר מתודה add_student(name, age, courses) ש:

  1. אם name כבר קיים כמפתח ב־student_records, מדפיסה Student '<name>' already exists. ומחזירה.
  2. אחרת מאחסנת את { age: age, grades: [], courses: courses } תחת name ומדפיסה Student '<name>' added.

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

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

הפלט הצפוי הוא:

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

מכיוון שמתודות לא יכולות לראות משתנים מקומיים מהסקריפט העוטף, הצהר על student_records באמצעות $student_records (משתנה גלובלי), כדי שהמתודה תוכל לקרוא אותו ולעדכן אותו. השתמש באותו שם גם בתוך המתודה.

נסו בעצמכם

$student_records = {}

# TODO: להגדיר def add_student(name, age, courses), למנוע כפילויות,
# לשמור { age:, grades: [], courses: }, להדפיס נוסף/כבר קיים

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
quiz iconבחנו את עצמכם

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

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

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