Menu
Coddy logo textTech

סיכום – יומן טמפרטורה

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Swift של Coddy. שיעור 16 מתוך 57.

challenge icon

אתגר

קשה

בנו יומן טמפרטורות קטן. השלימו את המניין Scale (celsius, fahrenheit, עם ערכי raw C ו-F) ואת המבנה Reading, ששומר את הטמפרטורה בצלזיוס. ל-Reading יש מפעל סטטי parse(_:) שקורא טקסט כמו 20C או 68F (ומחזיר nil לכל דבר אחר), מאפיין מחושב fahrenheit, ותווית מחושבת label שמחזירה 20.0C / 68.0F. המחלקה TemperatureLog שומרת מערך של קריאות ומאפיין highest עם צופה didSet שמתעד כל שיא חדש בתור new high 25.0C.

הקוד שסופק מוסיף ליומן כל קריאה שפוענחה (או מדפיס bad reading: x), מדפיס את התווית של כל קריאה, ולבסוף מדפיס את הרשומות שהצופה אסף, אחת בכל שורה.

יש לכתוב את הקוד בקבצים Scale.swift, Reading.swift ו-TemperatureLog.swift. הקובץ main.swift מכיל את קוד הקלט/פלט שסופק, ואי אפשר לערוך אותו.

נסו בעצמכם

// קוד קלט/פלט שסופק: השאירו אותו כפי שהוא
var input: [String] = []
while let line = readLine() { input.append(line) }
let log = TemperatureLog()
for line in input {
    if let r = Reading.parse(line) {
        log.add(r)
        print(r.label)
    } else {
        print("bad reading: \(line)")
    }
}
for record in log.records { print(record) }

כל השיעורים ביחידה תכנות מונחה עצמים

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