מתכנן תקציב
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 63 מתוך 64.
אתגר
קשההשלימו את 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")
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
תת־מחרוזות עם substr()עיצוב עם sprintf()פיצול וחיבורחיפוש במחרוזותהחלפת טקסטסיכום – בונה שמות משתמש4מטריצות
יצירת מטריצותאינדוקס מטריצותסיכומי שורות ועמודותאריתמטיקה של מטריצותסיכום – תרשים מקומות ישיבהתרגלו בעצמכם: קומפיילר R אונליין