التقييم المرن
جزء من قسم المنطق وتدفق التنفيذ في رحلة 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 هذا، وهو نفسه المستخدم في الخطوة السابقة:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]اقرأ ثلاثة أسطر من الإدخال القياسي. اطبع لكل سؤال:
- نص السؤال
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'
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift