تقرير ملخص
جزء من قسم المنطق وتدفق التنفيذ في رحلة Swift على Coddy. الدرس 53 من 56.
الميزة الأخيرة: بدلًا من فئة واحدة، شغّل الاختبار كاملًا وأنشئ في النهاية ملخصًا لكل فئة.
ستعتمد على جميع الفصول دفعة واحدة: تفكيك الصفوف للتكرار، والتقييم المتساهل من فصل السلاسل النصية، والقواميس ذات الفهرسة الفرعية الافتراضية من فصل القواميس، والتكرار المرتب لإخراج حتمي.
أنشئ العدّادات لكل فئة على هيئة قاموسين متوازيين:
var totals: [String: Int] = [:]
var rights: [String: Int] = [:]زِد totals[cat, default: 0] += 1 لكل سؤال؛ وزِد rights[cat, default: 0] عند الإجابة الصحيحة فقط. في النهاية، استعرض الفئات بالترتيب الأبجدي لطباعة التقرير.
التحدي
متوسطابدأ برنامجك بقاعدة الأسئلة المكوّنة من ستة أسئلة هذه، وهي نفسها المستخدمة في الخطوة السابقة:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("math", "Value of pi to 2 decimals?", "3.14"),
("geo", "Capital of France?", "Paris"),
("geo", "Largest ocean?", "Pacific"),
("science", "Color of grass?", "green"),
("science", "H2O is?", "water")
]اقرأ ست إجابات من الإدخال القياسي، واحدة في كل سطر، وبالترتيب نفسه لقاعدة الأسئلة. استخدم تصحيحًا متساهلًا.
اطبع بالترتيب التالي:
- سطرًا واحدًا لكل فئة، مرتبة أبجديًا، بالتنسيق
<category>: <right>/<total> - سطرًا أخيرًا واحدًا:
Total: <right>/<total>لمجموع التشغيل بأكمله
بالنسبة إلى الإدخال 4 / 3.14 / Paris / Atlantic / green / WATER، يكون الناتج:
geo: 1/2
math: 2/2
science: 2/2
Total: 5/6جرّب بنفسك
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("math", "Value of pi to 2 decimals?", "3.14"),
("geo", "Capital of France?", "Paris"),
("geo", "Largest ocean?", "Pacific"),
("science", "Color of grass?", "green"),
("science", "H2O is?", "water")
]
// TODO: اقرأ 6 إجابات؛ صحّح بتساهل؛ احسب الإجمالي والإجابات الصحيحة لكل فئة؛
// اطبع أسطر الملخص المرتبة + Total
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift