سجل سؤال { سؤال_نصي: نص, جواب: ص64 } دالة هل_صحيح(السؤال: سؤال, جواب: ص64) -> منطقي { أرجع جواب يطابق السؤال::جواب. } دالة ملخص(عنوان: نص, صحيح: ص64, عدد_المجاب: ص64, إجمالي: ص64) -> وحدة { اطبع(عنوان + ". Correct: " + نسق_ص64(صحيح) + "; answered: " + نسق_ص64(عدد_المجاب) + "; total: " + نسق_ص64(إجمالي) + ".\س"). } دالة ابدأ_الرئيسية() -> ص64 { دع أسئلة: قائمة<سؤال> = [ سؤال { سؤال_نصي: "2 + 3?", جواب: 5 }, سؤال { سؤال_نصي: "9 - 4?", جواب: 5 }, سؤال { سؤال_نصي: "3 * 4?", جواب: 12 }, سؤال { سؤال_نصي: "12 / 3?", جواب: 4 }, سؤال { سؤال_نصي: "7 + 8?", جواب: 15 } ]. دع إجمالي: ص64 = طول(أسئلة). متغير فهرس: ص64 = 0. متغير عدد_المجاب: ص64 = 0. متغير صحيح: ص64 = 0. اطبع("Quiz: " + نسق_ص64(إجمالي) + " questions. Type q to stop.\س"). طالما (فهرس < إجمالي) { دع السؤال: سؤال = أسئلة[فهرس]. اطبع("Question " + نسق_ص64(فهرس + 1) + "/" + نسق_ص64(إجمالي) + ": " + السؤال::سؤال_نصي + " "). دع سطر: نص = اقرأ_سطر(). إذا (سطر يطابق "q") { ملخص("Stopped early", صحيح, عدد_المجاب, إجمالي). أرجع 0. } دع محلل: نتيجة<ص64> = حلل_ص64(سطر). إذا (محلل::نجاح) { إذا (هل_صحيح(السؤال, محلل::قيمة)) { اطبع("Correct.\س"). // أضف واحدا إلى العداد صحيح هنا. } وإلا { اطبع("Wrong. Expected " + نسق_ص64(السؤال::جواب) + ".\س"). } عدد_المجاب = عدد_المجاب + 1. فهرس = فهرس + 1. } وإلا { اطبع("Retry: " + محلل::الخطأ::الرمز + ". Use ASCII digits, for example 5, or q.\س"). } } ملخص("Completed", صحيح, عدد_المجاب, إجمالي). أرجع 0. }