مفتاح إجابات المعلّم

خوارزميات ذات حالة

اجمع أربعة أنواع من الأدلة: توقّع الحالة ذات الصلة؛ السلوك عبر حالات متنوعة تشمل الحدود؛ تفسير يستند إلى سجلّ التنفيذ والحالة؛ وتصحيح معلّل لاختلاف واحد. صنّف كل جانب بأنه ناشئ، أو متحقّق بمساعدة، أو مستقل، على الورق أو وفق آلية مدرستك المعتمدة. اجتياز التحدّي دليل على سلوك الآلة، وليس إثباتًا لتأليف الشيفرة أو إتقان شامل. اقبل البرامج الصحيحة المكافئة؛ المفتاح العام نموذج، لا الإجابة الوحيدة الممكنة.

مادة تعليمية متاحة للجميع. الحلول أمثلة؛ قد تجتاز البرامج الصحيحة المكافئة الفحوص الفعلية أيضًا.

16. المضروب وخاصية ثبات الحلقة

استخدم مُجمِّعًا للضرب واشرح لماذا 0! يساوي 1.

فتح هذا الدرس →

1. توقّع وتتبّع

قبل تشغيل برنامج التجربة، توقّع مخرجاته وتتبّع أول ثلاث تعليمات تُنفّذ. راقب السجلات أو الرايات أو الذاكرة ذات الصلة حسب الحاجة. ثم نفّذ البرنامج خطوةً خطوة للمقارنة.

LOAD 4 R1
LOAD 1 R2
LOOP 4
LOAD R2
MUL R1
COPY R0 R2
LOAD R1
SUB 1
COPY R0 R1
RETURN
LOAD R2
PRINT
HALT

أضف المدخلات إلى الطابور: لا يوجد

هيّئ الذاكرة: جميع البايتات صفر في البداية

إجابات توقّع التجربة

المخرجات: 24

التعليمةPC قبلPC بعدR0 قبلR0 بعدالحالة ذات الصلةالمخرجات
LOAD0100{"registers":[0,4,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}لا يوجد
LOAD1200{"registers":[0,4,1,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}لا يوجد
LOOP2300{"registers":[0,4,1,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[{"start":2,"end":9,"remaining":4,"callDepth":0}],"memoryReads":[],"memoryWrites":[]}لا يوجد

2. ابنِ وافحص

اقرأ N من 0 إلى 6 واطبع N!. استخدم حلقةً ومُجمِّعًا للضرب.

أنواع التعليمات المطلوبة: INPUT, LOOP, MUL

مثال لحل التحدّي

INPUT
COPY R0 R1
COPY R0 R3
LOAD 1 R2
LOOP R3
LOAD R2
MUL R1
COPY R0 R2
LOAD R1
SUB 1
COPY R0 R1
RETURN
LOAD R2
PRINT
HALT

حالات الفاحص الفعلية

الحالة 1
المدخلات
0
الذاكرة الابتدائية
جميع البايتات صفر في البداية
المخرجات المتوقعة
1
الحالة 2
المدخلات
4
الذاكرة الابتدائية
جميع البايتات صفر في البداية
المخرجات المتوقعة
24
الحالة 3
المدخلات
6
الذاكرة الابتدائية
جميع البايتات صفر في البداية
المخرجات المتوقعة
720

3. اشرح الآلة

لماذا يبدأ مُجمِّع الضرب بالقيمة 1؟

ملاحظة الاستدلال والتعليم

1 هو العنصر المحايد للضرب؛ وتعطي صفر دورات 0!=1. البداية بصفر تجعل كل حاصل ضرب صفرًا.