طرح الأسئلة
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 50 من 56.
الميزة الأولى: طرح كل سؤال بالترتيب وطباعة ما إذا كانت كل إجابة صحيحة.
بنك الأسئلة مكتوب برمجياً بشكل ثابت لهذا الدرس، وتأتي إجابات اللاعب من stdin (واحدة في كل سطر، بالترتيب).
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
for (_, text, answer) in questions {
print(text)
let given = readLine()!
print(given == answer ? "correct" : "wrong")
}اقرأ من الأعلى إلى الأسفل: اطبع السؤال، اقرأ سطراً واحداً، ثم قارن. الدرس التالي يخفف من حدة تلك المقارنة الصارمة حتى لا تفشل بسبب حالة الأحرف أو المسافات البيضاء الزائدة.
التحدي
سهلبنك الأسئلة questions معطى. اقرأ ثلاثة أسطر من stdin (إجابات اللاعب، بالترتيب). لكل سؤال، اطبع:
- نص السؤال في سطر منفصل
correctعندما تكون الإجابة المعطاة مساوية تماماً للإجابة المخزنة، وإلاwrong
بعد الأسئلة الثلاثة، اطبع Score: <n>/3 مع عدد الإجابات الصحيحة.
للمدخلات 4 / Paris / red، المخرجات هي:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3ورقة مرجعية
قم بالتكرار عبر مصفوفة من الصفوف (tuples) تحتوي على أسئلة، واقرأ الإجابات من الإدخال القياسي (stdin)، ثم قارنها:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
var score = 0
for (_, text, answer) in questions {
print(text)
let given = readLine()!
if given == answer {
print("correct")
score += 1
} else {
print("wrong")
}
}
print("Score: \(score)/\(questions.count)")جرّب بنفسك
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// مهام مطلوبة: لكل سؤال، اطبع النص، اقرأ الإجابة، اطبع صحيح/خطأ؛
// ثم اطبع 'النتيجة: <n>/3'
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات