در این برنامه از شما خواسته شده است تا یک ماشین متنی کوچک با مجموعهای از قابلیت های ساده را پیادهسازی نمایید. روال کار بدین صورت است که در آغاز کار برنامه یک رشته متنی اولیه (به طول حداکثر ۱۰۰۰) را از ورودی دریافت میکند. در ادامه تا زمانیکه دستور خروج را دریافت کند در هر نوبت کاربر درخواست یک عملیات بر روی رشته متنی میدهد.
عملیاتها به شرح زیر تعریف شدهاند:
SHIFT-R N
🔗تمام کاراکترهای عبارت را به صورت چرخشی N واحد به سمت راست منتقل میکند.
SHIFT-L N
🔗تمام کاراکترهای عبارت را به صورت چرخشی N واحد به سمت چپ منتقل میکند.
EXTEND N
🔗به انتهای رشته موجود N کاراکتر جدید اضافه میکند و به عنوان مقدار پیشفرض کاراکترها، ستاره (*
) قرار میدهد.
SHRINK N
🔗از انتهای رشته، N کاراکتر حذف میکند. درصورتی که طول رشته کمتر از N بود،رشته حاصل یک رشته خالی خواهد بود.
REVERSE
🔗رشته را معکوس میکند.
PUT I C
🔗حرف مکان I
ام رشته را با حروف C
جایگزین میکند.توجه داشته باشید که شماره مکانها از یک آغاز میشود و I
همواره کوچکتر مساوی طول رشته خواهد بود.
PRINT
🔗رشته فعلی را چاپ میکند و به خط بعد میرود.
EXIT
🔗اتمام برنامه
در سطر اول ورودی رشته اولیه ورودی داده میشود. تضمین میشود طول این رشته حداکثر ۱۰۰۰ کاراکتر باشد.
در سطرهای بعدی، در هر سطر، یکی از عملیاتهای بالا که در متن سوال گفته شده، داده میشود. تضمین میشود که همواره آخرین عملیات EXIT
باشد. همچنین تضمین میشود حداکثر ۱۰۰۰ عملیات ورودی داده میشود.
برنامه شما تنها به ازای عملیات چاپ خروجی خواهد داشت و به ازای سایر دستورات صرفاً عملیات موردنظر را برروی رشته متنی انجام میدهد.