סימון כהושלם
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Swift של Coddy. שיעור 34 מתוך 56.
התכונה הראשונה: לעבד רשימה של פעולות "לסמן שההרגל הזה הושלם ביום הזה" ולהפיק מצב סופי.
כל שורת קלט היא פעולה אחת בפורמט habit:day, כאשר day הוא בין 1 ל־7. אם ההרגל עדיין לא קיים, צור אותו עם מערך ריק, ואז הוסף אליו את היום. אם יום כבר נרשם עבור ההרגל הזה, אל תרשום אותו פעמיים.
תסתמך על תבנית ערך ברירת המחדל באמצעות סוגריים מרובעים מהפרק על מילונים: habits[name, default: []].append(day) פועל בין שהמפתח קיים ובין שלא.
אתגר
קלקרא שורת קלט אחת: רשימה מופרדת בפסיקים של ערכי habit:day (למשל, read:1,read:3,workout:2). לאחר החלת כל הפעולות, הדפס את ההרגלים בסדר אלפביתי, אחד בכל שורה, בפורמט:
<habit>: <days_sorted_ascending_joined_with_comma>דלג על זוגות כפולים של habit:day.
עבור הקלט read:1,read:3,workout:2,read:1,read:5,workout:4, הפלט הוא:
read: 1,3,5
workout: 2,4נסו בעצמכם
var habits: [String: [Int]] = [:]
let ops = readLine()!.components(separatedBy: ",")
// TODO: עבור כל op, פענח את name:day, הוסף את day אם הוא עדיין לא קיים;
// לאחר מכן הדפס את habits בסדר אלפביתי, כשהימים ממוינים
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
תרגלו בעצמכם: Swift אונליין