Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تقرير ملخص

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

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

ستعتمد على كل فصل في آن واحد: تفكيك الصفوف (tuple destructuring) من أجل التكرار، والتقييم المتساهل من فصل السلاسل النصية، والقواميس ذات الفهارس الافتراضية من فصل القواميس، والتكرار المرتب للحصول على مخرجات حتمية.

قم ببناء عدادات لكل فئة كقاموسين متوازيين:

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

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

challenge icon

التحدي

متوسط

نفس بنك الأسئلة المكون من ستة أسئلة من الدرس السابق. اقرأ ست إجابات من stdin، واحدة في كل سطر، بنفس ترتيب البنك. استخدم التقييم المتساهل (lenient grading).

اطبع، بهذا الترتيب:

  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

ورقة مرجعية

استخدم قاموسين متوازيين لتتبع الدرجات لكل فئة:

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

// لكل سؤال مع الفئة cat:
totals[cat, default: 0] += 1
// عند الإجابة الصحيحة:
rights[cat, default: 0] += 1

قم بالمرور على الفئات بترتيب أبجدي باستخدام sorted() للحصول على مخرجات محددة:

for cat in totals.keys.sorted() {
    let r = rights[cat, default: 0]
    let t = totals[cat]!
    print("\(cat): \(r)/\(t)")
}

احسب الإجماليات عبر جميع الفئات بجمع قيم القاموس:

let totalRight = rights.values.reduce(0, +)
let totalAll = totals.values.reduce(0, +)
print("Total: \(totalRight)/\(totalAll)")

جرّب بنفسك

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اختبر نفسك

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

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