Menu
Coddy logo textTech

מתכנן תקציב

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 63 מתוך 64.

challenge icon

אתגר

קשה

השלימו את budget(lines). השורה הראשונה היא הכותרת month,type,amount, וכל שורה אחרת היא רשומה אחת, כגון 2024-01,income,3000. רשומה תקפה כאשר הסוג שלה הוא income או expense והסכום שלה הוא מספר גדול מ־0; יש לדלג על כל רשומה אחרת.

החזירו שורה אחת לכל חודש ברשומות התקפות, לפי הסדר, 2024-01: income 3000.00, spent 1250.50, saved 1749.50, כאשר saved הוא ההכנסה פחות ההוצאות (בחודש ללא הכנסה או הוצאות, הערך עבור אותו חודש הוא 0). לאחר מכן הוסיפו Best month: עם החודש שבו החיסכון היה הגדול ביותר (הראשון מבין החודשים במקרה של שוויון), ו־Skipped: עם מספר הרשומות שעליהן דילגתם.

אם אין רשומות תקפות, החזירו רק את No valid entries ואת שורת Skipped.

הקוד שסופק מעביר כל שורת קלט אל budget() ומדפיס כל שורה שהפונקציה מחזירה.

נסו בעצמכם

budget <- function(lines) {
  # כתבו כאן את הקוד שלכם
  character(0)
}

# קוד קלט/פלט שסופק: השאירו אותו כפי שהוא
input <- suppressWarnings(readLines(file("stdin")))
cat(budget(input), sep = "\n")

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

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