Menu
CoddyTech

تقرير ملخص

جزء من قسم المنطق وتدفق التنفيذ في رحلة Swift على Coddy. الدرس 53 من 56.

الميزة الأخيرة: بدلًا من فئة واحدة، شغّل الاختبار كاملًا وأنشئ في النهاية ملخصًا لكل فئة.

ستعتمد على جميع الفصول دفعة واحدة: تفكيك الصفوف للتكرار، والتقييم المتساهل من فصل السلاسل النصية، والقواميس ذات الفهرسة الفرعية الافتراضية من فصل القواميس، والتكرار المرتب لإخراج حتمي.

أنشئ العدّادات لكل فئة على هيئة قاموسين متوازيين:

var totals: [String: Int] = [:]
var rights: [String: Int] = [:]

زِد totals[cat, default: 0] += 1 لكل سؤال؛ وزِد rights[cat, default: 0] عند الإجابة الصحيحة فقط. في النهاية، استعرض الفئات بالترتيب الأبجدي لطباعة التقرير.

challenge icon

التحدي

متوسط

ابدأ برنامجك بقاعدة الأسئلة المكوّنة من ستة أسئلة هذه، وهي نفسها المستخدمة في الخطوة السابقة:

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")
]

اقرأ ست إجابات من الإدخال القياسي، واحدة في كل سطر، وبالترتيب نفسه لقاعدة الأسئلة. استخدم تصحيحًا متساهلًا.

اطبع بالترتيب التالي:

  1. سطرًا واحدًا لكل فئة، مرتبة أبجديًا، بالتنسيق <category>: <right>/<total>
  2. سطرًا أخيرًا واحدًا: 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
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: Playground لـ Swift