תמונת מצב של המלאי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 55 מתוך 56.
דוח מלאי שמתרגל hashes, שרשראות Enumerable, את group_by, וקצת עיצוב.
אתגר
בינונינתון המערך inventory. כל פריט הוא hash עם :name, :category, :qty ו־:price.
הדפיסו ארבע שורות:
- הערך הכולל של המלאי בכל הפריטים (
qty * price, בסיכום), מודפס כמספר שלם. - הקטגוריה עם מספר הפריטים הגבוה ביותר, בפורמט
Top category: <name> (<count>). במקרה של תיקו, יש לשבור אותו לפי סדר אלפביתי של שם הקטגוריה. - שמות הפריטים שאזלו מהמלאי (
qty == 0), ממוינים לפי סדר אלפביתי ומחוברים באמצעות,. אם אין כאלה, הדפיסו(none). - שמות של 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 הפריטים בעלי המחיר הגבוה ביותר
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
סקירה של מתודות למחרוזותאינטרפולציה של מחרוזותמעבר על מחרוזותפיצול וחיבורסיכום – שוזר המחרוזות4בלוקים, Procs ו־Lambdas
מהו בלוק?do..end לעומת סוגריים מסולסליםמילת המפתח yieldפרמטרים של בלוקProcs ו־Lambdasסיכום – איטרטור מותאם אישית7Hashes חלק 2
Hash.new עם ערכי ברירת מחדלמעבר על HashesHashes מקונניםמיזוג ושינויסיכום - מונה תדירויות10פרויקט - רשומות תלמידים
סקירת הפרויקטהוספת תלמיד5עוצמת Enumerable
Select ו־Rejectשרשור MapReduce / Injectcount, all?, any?, none?group_by ו־partitionsort_by, min_by, max_byסיכום - צינור נתוניםתרגלו בעצמכם: קומפיילר Ruby אונליין