Menu
CoddyTech

בדיקה מקלה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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
}

זה מסוג העזרים שכדאי להוציא לפונקציה משלהם. לולאת השאלון נעשית ברורה יותר כשיש שורה אחת לכל שאלה, ותיקון הבאג של מחר יתבצע במקום אחד.

challenge icon

אתגר

קל

הגדירו פונקציה grade(_ given: String, _ answer: String) -> Bool שמחזירה true כאשר שתי המחרוזות תואמות לאחר הסרת הרווחים הלבנים והמרת שתי המחרוזות לאותיות קטנות.

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

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("geo", "Capital of France?", "Paris"),
    ("science", "Color of grass?", "green")
]

קראו שלוש שורות מהקלט הסטנדרטי. הדפיסו עבור כל שאלה:

  1. את טקסט השאלה
  2. 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 עם השוואה לאחר trim + lowercase
// לאחר מכן לעבור בלולאה, להדפיס את השאלה, לקרוא את התשובה ולהדפיס נכון/לא נכון;
// לסיים עם 'Score: <n>/3'
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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