اختياري: التثبيت والتشغيل محليا
لبات 0.7.0 · الإصدار الحالي
اتبع تثبيت ابدأ ثم احفظ الاختبار المكتمل وافحصه وشغله محليا.
محتويات الصفحة
ما الذي ستتعلمه
يحفظ هذا الدرس الأصلي الاختياري الاختبار المكتمل في ملف واحد ويفحصه ويشغله محليا باستخدام لبات 0.7.0. تعرف على الإدخال والإخراج وحالة العملية نفسها مع الاحتفاظ باختبار المتصفح.
قبل أن تبدأ
أكمل اختبار المتصفح أو افهمه، واعرف كيف تفتح الطرفية وتغير المجلد. لا تحتاج دورة المتصفح إلى تثبيت. يمكنك تجاوز هذه الصفحة واختيار خطوات أخرى.
اتبع التثبيت المعتمد
استخدم تنزيلات ابدأ ومتطلبات النظام والتثبيت الأصلي واختيار النسخة. تلك الصفحات هي المرجع للتحقق من الأرشيف والتثبيت واختيار PATH وفحص الإصدار. اختر تنفيذ لبات 0.7.0 المنشور قبل المتابعة. Console اختياري؛ يستخدم هذا الدرس أداة الطرفية. راجع الفحص والتشغيل والبناء لتفاصيل الأوامر.
احفظ المصدر الكامل
صدّر مسودة اختبارك المكتمل من الرئيسية عبر تصدير المصدر، أو نزّل نسخة مطابقة مما هو متاح أدناه. يحفظ التصدير تعديلاتك الحالية كمصدر UTF-8؛ أما التنزيل المقدم فهو نسخة الفهرس. احفظه باسم اختبار.لبات في مجلد محلي جديد واحتفظ بمسودة المتصفح الأصلية. لا تحتاج هذه النسخة ذات الملف الواحد إلى مساعد أو ملف بيانات أو مكتبة أصلية. تستخدم النسخة العربية أسماء عربية وامتداد .لبات، والنسخة الإنجليزية أسماء إنجليزية وامتداد .aspl مع نصوص الإخراج نفسها. للنسخة الإنجليزية استخدم quiz.aspl في أوامر هذا الدرس. لا تترجم لغة التوثيق ملفك المصدّر.
يعرّف المصدر الكامل سجلات سؤال الخمسة في قائمة محددة النوع، والدالتين هل_صحيح وملخص والمدخل الجذري. يقرأ سطرا ويتحقق من q الحرفية قبل التحليل ويعيد المحاولة عند خطأ التحليل ويعد كل إجابة رقمية مرة واحدة. يبدأ كل تشغيل بعدادات جديدة؛ لا يحفظ المصدر درجة.
التنفيذ: المضيف الأصلي فقط · لبات 0.7.0
- متابعة محلية اختيارية. اختر لبات 0.7.0 الأصلي عبر ابدأ. احفظ هذا الملف باسم quiz.aspl؛ لا وحدات ولا ملفات بيانات مطلوبة.
أسطر الإدخال: ["5","5","12","4","15"]
سجل سؤال { سؤال_نصي: نص, جواب: ص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.\س").
صحيح = صحيح + 1.
} وإلا {
اطبع("Wrong. Expected " + نسق_ص64(السؤال::جواب) + ".\س").
}
عدد_المجاب = عدد_المجاب + 1.
فهرس = فهرس + 1.
} وإلا {
اطبع("Retry: " + محلل::الخطأ::الرمز + ". Use ASCII digits, for example 5, or q.\س").
}
}
ملخص("Completed", صحيح, عدد_المجاب, إجمالي).
أرجع 0.
}
اتبع تعليمات Linux لتنفيذ هذا المثال. نزّل المصدر لحفظه.
تنزيل اختبار-النتيجة-حل.لباتالنتائج المتوقعة
{
"native": {
"check": 0,
"status": 0,
"output": "Quiz: 5 questions. Type q to stop.\nQuestion 1/5: 2 + 3? Correct.\nQuestion 2/5: 9 - 4? Correct.\nQuestion 3/5: 3 * 4? Correct.\nQuestion 4/5: 12 / 3? Correct.\nQuestion 5/5: 7 + 8? Correct.\nCompleted. Correct: 5; answered: 5; total: 5.\n"
}
}افحص وشغل محليا
افتح الطرفية في المجلد الذي يحتوي اختبار.لبات أو انتقل إليه أولا. نفذ هذه الأوامر بالترتيب:
aspl check اختبار.لبات
aspl run اختبار.لبات
echo $?لا يطبع الفحص الناجح إخراج الاختبار ويرجع 0 ولا يقرأ الإدخال. يطبع التشغيل المطالبات ويقرأ أسطر الطرفية. أدخل 5 و5 و12 و4 و15 مع Enter بعد كل منها. توقع خمسة أسطر Correct. ثم Completed. Correct: 5; answered: 5; total: 5. وسطر نهاية. تنهي الإجابة الخامسة التشغيل دون قراءة أخرى. يطبع echo $? مباشرة بعد التشغيل 0. هذه حالة العملية وليست الدرجة المطبوعة. تستخدم التشخيصات لغة الأداة المختارة؛ لا تتغير نصوص الإخراج.
توقع المطالبة الأولى والملخص الأخير قبل التشغيل. يتقدم العدد الخاطئ الصالح أيضا؛ يعيد 12x المحاولة؛ وتنهي q الصغيرة الحرفية التشغيل مبكرا بحالة 0. ينهي EOF أثناء الانتظار التنفيذ بفخ input-exhausted مع إبقاء الإخراج السابق، دون ملخص مضمون. قطع العملية المحلية عبر Ctrl+C في الطرفية مقاطعة من المضيف وليس رجوعا عاديا للاختبار؛ يبلغ زر إيقاف المتصفح عن الإلغاء. كلاهما ليس إكمالا للاختبار. يشرح مرجع الإدخال الأصلي stdin وEOF.
مجلد العمل والمسارات
اختبار.لبات في الأمر مسار أصلي نسبي إلى مجلد عمل الطرفية الحالي. يعرض pwd ذلك المجلد. تحل عمليات الملفات النصية الأصلية مسارات البيانات النسبية انطلاقا من مجلد عمل العملية أيضا؛ أما استيراد وحدة مصدر فيحل نسبة إلى ملف المصدر المستورِد. يشير المسار الأصلي المطلق إلى موضع في نظام الملفات المحلي.
تسمي أسماء ملفات المتصفح الافتراضية بيانات تشغيل مؤقتة مسطحة في مسودة واحدة. ليست نظام ملفات Linux ولا ملفات المصدر المصدرة ولا محملا لوحدات المصدر. لا ينشئ استيراد ملفات تشغيل المتصفح ملفات محلية؛ يحفظ تنزيل ملف تشغيل أو تصدير المصدر نسخة بطلب صريح. يستخدم الاختبار stdin وstdout ولا يحتاج بيانات ملفات. راجع دليل الملفات النصية قبل إضافة عمليات ملفات أصلية.
عدل رسالة البداية وجرب توقفا مبكرا
في نسخة محفوظة من اختبار.لبات، غير نص الإخراج الأول Quiz: فقط إلى Local quiz: . أبق المسافة الأخيرة والعدادات والمساعد وقيم الرجوع. افحص المصدر المعدل ثم شغله. توقع Local quiz: 5 questions. Type q to stop. كأول سطر مع سطر نهاية. يغير تعديل الرسالة النص المطبوع دون العد أو حالة العملية.
في هذا التشغيل المحلي الجديد، أدخل 5 و5 و0 ثم q. توقع إجابتين صحيحتين وثلاث إجابات معدودة. توقع Wrong. Expected 12. بعد العدد الثالث وStopped early. Correct: 2; answered: 3; total: 5. بعد q بحالة 0.
غير رسالة البداية إلى Local quiz: في نسخة من اختبار.لبات وافحصها ثم شغل بالأسطر 5 و5 و0 وq. اشرح لماذا لا يغير النص المعدل ولا الدرجة المطبوعة حالة العملية الصفرية.
تلميح: عدل النص في استدعاء print / اطبع الأول مع إبقاء المسافة الأخيرة. نفذ الفحص قبل التشغيل. تتبع صحيح وعدد_المجاب منفصلين؛ ترجع q قبل عد السؤال الرابع.
اعرض الإجابة المشروحة
يغير المصدر المعدل الكامل أدناه رسالة البداية فقط إلى Local quiz: 5 questions. Type q to stop. مع سطر نهاية. تزيد الإجابتان الأوليان العدادين. تزيد الثالثة عدد_المجاب فقط وتتقدم. تطبع q Stopped early. Correct: 2; answered: 3; total: 5. وترجع 0. لا الرسالة ولا الدرجة تضبط حالة العملية. لا يطبع الفحص شيئا ويرجع 0؛ ويطبع echo $? مباشرة بعد التشغيل 0 أيضا. ابدأ تشغيلا آخر لتصفير كل العدادات واحتفظ باختبار المتصفح الأصلي دون تغيير.
التنفيذ: المضيف الأصلي فقط · لبات 0.7.0
- متابعة محلية اختيارية. اختر لبات 0.7.0 الأصلي عبر ابدأ. احفظ هذا الملف باسم quiz.aspl؛ لا وحدات ولا ملفات بيانات مطلوبة.
أسطر الإدخال: ["5","5","12","4","15"]
سجل سؤال { سؤال_نصي: نص, جواب: ص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.
اطبع("Local quiz: " + نسق_ص64(إجمالي) + " questions. Type q to stop.\س").
طالما (فهرس < إجمالي) {
دع السؤال: سؤال = أسئلة[فهرس].
اطبع("Question " + نسق_ص64(فهرس + 1) + "/" + نسق_ص64(إجمالي) + ": " + السؤال::سؤال_نصي + " ").
دع سطر: نص = اقرأ_سطر().
إذا (سطر يطابق "q") {
ملخص("Stopped early", صحيح, عدد_المجاب, إجمالي).
أرجع 0.
}
دع محلل: نتيجة<ص64> = حلل_ص64(سطر).
إذا (محلل::نجاح) {
إذا (هل_صحيح(السؤال, محلل::قيمة)) {
اطبع("Correct.\س").
صحيح = صحيح + 1.
} وإلا {
اطبع("Wrong. Expected " + نسق_ص64(السؤال::جواب) + ".\س").
}
عدد_المجاب = عدد_المجاب + 1.
فهرس = فهرس + 1.
} وإلا {
اطبع("Retry: " + محلل::الخطأ::الرمز + ". Use ASCII digits, for example 5, or q.\س").
}
}
ملخص("Completed", صحيح, عدد_المجاب, إجمالي).
أرجع 0.
}
اتبع تعليمات Linux لتنفيذ هذا المثال. نزّل المصدر لحفظه.
تنزيل اختبار-محلي-حل.لباتالنتائج المتوقعة
{
"native": {
"check": 0,
"status": 0,
"output": "Local quiz: 5 questions. Type q to stop.\nQuestion 1/5: 2 + 3? Correct.\nQuestion 2/5: 9 - 4? Correct.\nQuestion 3/5: 3 * 4? Correct.\nQuestion 4/5: 12 / 3? Correct.\nQuestion 5/5: 7 + 8? Correct.\nCompleted. Correct: 5; answered: 5; total: 5.\n"
}
}تحقق من فهمك
اشرح لماذا لا يطبع الفحص مطالبات الاختبار ولماذا لا يحفظ التصدير درجة ولماذا لا يكون اسم ملف المتصفح الافتراضي مسارا أصليا. لا درجة ولا تقدم مخزنا، والتنقل مفتوح. تابع اختياريا إلى وحدات المصدر أو عد إلى اختبار المتصفح في ملف واحد.