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

المكدّس والدوال

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

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

19. عمليات المكدّس: الأخير دخولًا هو الأول خروجًا

احفظ القيم في مكدّس البيانات واسترجعها بترتيب معكوس.

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

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

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

LOAD 11
PUSH
LOAD 22
PUSH
POP
PRINT
POP
PRINT
HALT

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

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

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

المخرجات: 22, 11

التعليمةPC قبلPC بعدR0 قبلR0 بعدالحالة ذات الصلةالمخرجات
LOAD01011{"registers":[11,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}لا يوجد
PUSH121111{"registers":[11,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":254,"stack":[11],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}لا يوجد
LOAD231122{"registers":[22,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":254,"stack":[11],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}لا يوجد

2. ابنِ وافحص

اقرأ عددين صحيحين، واحفظ كليهما في مكدّس البيانات، ثم اطبعهما بترتيب معكوس. استخدم PUSH وPOP بدل قيم ثابتة.

أنواع التعليمات المطلوبة: INPUT, PUSH, POP

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

INPUT
PUSH
INPUT
PUSH
POP
PRINT
POP
PRINT
HALT

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

الحالة 1
المدخلات
3, 8
الذاكرة الابتدائية
جميع البايتات صفر في البداية
المخرجات المتوقعة
8, 3
الحالة 2
المدخلات
-4, 0
الذاكرة الابتدائية
جميع البايتات صفر في البداية
المخرجات المتوقعة
0, -4
الحالة 3
المدخلات
9, 9
الذاكرة الابتدائية
جميع البايتات صفر في البداية
المخرجات المتوقعة
9, 9

3. اشرح الآلة

لماذا تُطبع القيمة المقدّمة الثانية أولًا؟

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

تتّبع PUSH وPOP ترتيب الأخير دخولًا والأول خروجًا؛ مع المدخلين 3،8 تكون المخرجات 8،3؛ وأطر الاستدعاء ليست بيانات.