בדיקה מקלה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Swift של Coddy. שיעור 51 מתוך 56.
שוויון מחמיר הוא נוקשה. חידונים אמיתיים מקבלים את paris, את Paris ואת PARIS כתשובות זהות.
המתכון מפרק 1: הסרת רווחים לבנים, המרת שני הצדדים לאותיות קטנות והשוואה:
func grade(_ given: String, _ answer: String) -> Bool {
let g = given.trimmingCharacters(in: .whitespaces).lowercased()
let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
return g == a
}זה מסוג פונקציות העזר שכדאי להוציא לפונקציה נפרדת. קוד הלולאה של החידון קריא יותר כשיש שורה אחת לכל שאלה, ומחר יהיה אפשר לתקן באג במקום אחד.
אתגר
קלהגדירו פונקציה grade(_ given: String, _ answer: String) -> Bool שמחזירה true כאשר שתי המחרוזות תואמות לאחר הסרת רווחים ושינוי שתי המחרוזות לאותיות קטנות.
מאגר questions נתון. קראו שלוש שורות מ־stdin. הדפיסו עבור כל שאלה:
- את נוסח השאלה
correctאוwrongעל סמך ההשוואה המקלה
לאחר הריצה, הדפיסו Score: <n>/3.
עבור הקלט 4 / PARIS / Green, הפלט הוא:
2 + 2?
correct
Capital of France?
correct
Color of grass?
correct
Score: 3/3נסו בעצמכם
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: לממש את func grade(_:_:)->Bool עם הסרת רווחים והשוואה באותיות קטנות
// לאחר מכן לעבור בלולאה, להדפיס את השאלה, לקרוא את התשובה ולהדפיס נכון/לא נכון;
// לסיים עם 'Score: <n>/3'
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
תרגלו בעצמכם: Swift אונליין