Menu
Coddy logo textTech

תמונת מצב של המלאי

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

דוח מלאי שמתרגל hashes, שרשראות Enumerable, את group_by, וקצת עיצוב.

challenge icon

אתגר

בינוני

נתון המערך inventory. כל פריט הוא hash עם :name, :category, :qty ו־:price.

הדפיסו ארבע שורות:

  1. הערך הכולל של המלאי בכל הפריטים (qty * price, בסיכום), מודפס כמספר שלם.
  2. הקטגוריה עם מספר הפריטים הגבוה ביותר, בפורמט Top category: <name> (<count>). במקרה של תיקו, יש לשבור אותו לפי סדר אלפביתי של שם הקטגוריה.
  3. שמות הפריטים שאזלו מהמלאי (qty == 0), ממוינים לפי סדר אלפביתי ומחוברים באמצעות , . אם אין כאלה, הדפיסו (none).
  4. שמות של 3 הפריטים היקרים ביותר לפי מחיר ליחידה, מהיקר ביותר תחילה, ומחוברים באמצעות , . במקרה של תיקו, יש לשבור אותו לפי סדר אלפביתי של השם.

עבור מלאי ברירת המחדל, הפלט הוא:

232
Top category: food (3)
milk
chair, lamp, milk

נסו בעצמכם

inventory = [
  { name: "apple",  category: "food",        qty: 10, price: 2 },
  { name: "bread",  category: "food",        qty: 4,  price: 3 },
  { name: "milk",   category: "food",        qty: 0,  price: 4 },
  { name: "chair",  category: "furniture",   qty: 2,  price: 35 },
  { name: "lamp",   category: "furniture",   qty: 5,  price: 20 },
  { name: "pencil", category: "stationery",  qty: 30, price: 1 }
]

# TODO: להדפיס את הערך הכולל, הקטגוריה המובילה, שמות הפריטים שאזלו מהמלאי ו-3 הפריטים בעלי המחיר הגבוה ביותר
quiz iconבחנו את עצמכם

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

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

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