یک ماشینحساب در اختیار داریم که دارای ۴ حافظه است که با شمارههای ۱ تا ۴ مشخص میشوند. هر یک از این حافظهها میتواند یک عدد صحیح مثبت را در خود نگهداری کند (محدودیتی در مقدار این عدد وجود ندارد). این ماشینحساب میتواند یک برنامه را اجرا کند. هر برنامه شامل تعدادی دستور است که به ترتیب مشخصی قرار گرفتهاند. این ماشینحساب تنها سه نوع دستور را قبول میکند. این سه نوع دستور عبارتاند از:
اجرای یک برنامه از دستور اول آن شروع میشود و با توجه به شرایط فوق تا وقتی که دستوری که باید اجرا شود وجود داشته باشد، ادامه مییابد. برای مثال این برنامه را در نظر بگیرید:
D 2
T 2
T -2
D 1
T 3
I 2
T -3
این برنامه ابتدا حافظهی شمارهی ۲ را پاک میکند و سپس مقدار حافظهی شمارهی ۱ را در حافظهی شمارهی ۲ ذخیره میکند و مقدار حافظهی شمارهی ۱ را مساوی با صفر میکند. اجرای برنامه پس از اجرای دستور T 3 تمام میشود؛ چون دستوری که باید اجرا شود وجود ندارد.
۱) برنامه زیر را در نظر بگیرید:
D 1
T 6
D 1
T 3
I 2
T -5
I 3
D 2
T 5
I 1
D 2
T -11
T -3
اگر مقدار حافظهی شمارهی ۱ برابر با ۱۳۷۴ و مقدار بقیهی حافظهها برابر با صفر باشد، پس از اجرای این برنامه این مقادیر به چه صورت خواهند بود؟
۲) فرض کنیدan تعداد اعدادی باشد که از ارقام ۱ و ۲ تشکیل شدهاند و مجموع ارقام آنها برابر باn است. برنامهای برای این ماشینحساب بنویسید که مقدارan را محاسبه کند. مقدارn قبل از اجرای برنامه در حافظهی شماره ۱ قرار داده میشود و مقدار بقیهی حافظهها در ابتدا برابر صفر است. در انتهای اجرای برنامه مقدارan باید در حافظهی شمارهی ۱ ذخیره شده باشد. تعداد دستورهای برنامهی شما نباید از ۳۰ بیشتر باشد.
۳) فرض کنیدbn تعداد اعدادی باشد که از ارقام ۱ و ۲ و ۳ تشکیل شدهاند و مجموع ارقام آنها برابر باn است و همچنین ارقام یکان و دهگان آنها هر دو همزمان یک نیستند. (برای مثال b4=5است چون تنها عددهای ۳۱ و ۲۲ و ۱۲۱ و ۱۱۲ و ۱۳ وجود دارند که دارای این شرایط هستند.) برنامهای برای این ماشینحساب بنویسید که مقدارbn را محاسبه کند. مقدارn قبل از اجرای برنامه در حافظهی شمارهی ۱ قرار داده میشود و مقدار بقیهی حافظهها در ابتدا برابر با صفر است. در انتهای اجرای برنامه مقدارbn باید در حافظهی شمارهی ۱ ذخیره شده باشد.
توجه کنید که در قسمتهای ۲ و ۳ باید در مورد ایدهی برنامهای که مینویسید توضیح دهید.