سلام دوست عزیز😃👋

به آزمون ورودی کارآموزی تابستانه Software Engineering کداستار خوش آمدید!

مسابقه به مدت ۶ ساعت ادامه خواهد داشت و در مجموع شامل ۵ سوال است که سطح آن‌ها از آسان به سخت متفاوت خواهد بود به طوری که ۳ سوال اول الگوریتمی هستند و ۲ سوال آخر پیاده‌سازی می‌باشند. برای حل سوالات الگوریتمی می‌توانید از زبان‌های C++، Java و Python استفاده کنید اما سوالات پیاده‌سازی را فقط می‌توانید با Java یا Python حل کنید.

سوالات به گونه‌ای تنظیم شده‌اند که با توجه به دانشی که دارید بتوانید بخشی از نمرۀ سوال را بگیرید. به عنوان مثال اگر نتوانید سوال ۳ را به طور کامل حل کنید، این امکان وجود دارد که بتوانید بخشی از سوال ۴ را حل کنید؛ بنابراین حتما به تمام سوالات مراجعه کنید.

رتبه‌بندی بر اساس مجموع امتیازاتی که از سوالات کسب می‌کنید صورت می‌گیرد؛ همچنین در صورتی که امتیاز دو نفر یکسان شود، کسی که سوالات را در مدت‌زمان کمتری حل کرده باشد، رتبۀ بهتری کسب می‌کند.

در صورتی که درمورد سوالی ابهام داشتید، می‌توانید از قسمت «سوال بپرسید» آن را مطرح کنید.

برای کسب اطلاعات بیشتر به لینک‌های زیر مراجعه کنید:

موفق باشید 😉✌

پیاده‌سازی - کیک‌پزی


  • محدودیت زمان جاوا: ۲ ثانیه
  • محدودیت زمان پایتون: ۳ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

می‌خواهیم یک بازی کیک‌پزی بسازیم که در آن یک کیک ساده با اندازۀ مشخص به بازیکن داده می‌شود و او باید با انجام دستورالعمل برنامه‌ریزی شده، کیک نهایی را تحویل دهد.

دستورات🔗

پختن کیک با اندازۀ داده‌شده🔗

BAKE height width
Plain text

کیک اولیه را که مستطیلی با ارتفاع height و طول width از ooهاست، با توجه به دستورالعمل می‌پزد و آن را چاپ می‌‎کند.

1height<100 1 \leq height < 100 1width<100 1 \leq width < 100

مثال

با اجرای دستور زیر:

BAKE 3 5
Plain text

کیک اولیه، به این شکل خواهد شد:

ooooo
ooooo
ooooo
Plain text

فرمان‌های افزودن عملیات به دستورالعمل🔗

در ابتدای برنامه دستورالعمل خالی است. در نتیجه با اجرای فرمان پختن کیک، همان کیک اولیه خروجی داده می‌شود. با اجرای فرمان‌های زیر می‌توانیم به دستورالعمل، عملیات اضافه کنیم. حال اگر فرمان پخت کیک صادر شد، عملیات‌های افزوده شده به ترتیب روی کیک اولیه اجرا می‌شوند.

۱. افزودن خامه🔗

ADD OPERATION => ADD CREAM
Plain text

به بالا و طرفین آخرین طبقه کیک خامه (C) اضافه و عبارت Done را در خروجی چاپ می‌کند.

مثال

اگر کیک به این شکل باشد:

ooo
ooo
Plain text

پس از انجام عملیات، به این شکل خواهد شد:

CCCCC
CoooC
CoooC
Plain text

۲. افزودن طعم🔗

ADD OPERATION => ADD flavor TO where
Plain text

قسمت‌هایِ موردِ نظرِ آخرینِ طبقۀ کیک را به طعم مشخص‌شده آغشته و عبارت Done را در خروجی چاپ می‌کند.

flavor می‌تواند شکلات (K)، توت فرنگی (S) یا موز (B) باشد. where می‌تواند بالا (TOP) یا طرفین (SIDES) باشد.

مثال

اگر کیک به این شکل باشد:

oooo
oooo
oooo
Plain text

با اجرای دستور زیر:

ADD S TO TOP
Plain text

به این شکل خواهد شد:

SSSS
oooo
oooo
Plain text

۳. افزودن طبقه🔗

ADD OPERATION => ADD LAYER
Plain text

یک طبقه را با ابعاد کیک اولیه، بر روی کیک فعلی قرار می‌دهد و عبارت Done را در خروجی چاپ می‌کند.

مثال

اگر کیک اولیه ارتفاع ۲ و طول ۴ داشته و کیک فعلی به شکل زیر باشد:

CCCCCC
CBBBBC
CooooC
Plain text

به این شکل خواهد شد:

 oooo 
 oooo 
CCCCCC
CBBBBC
CooooC
Plain text

پایان برنامه🔗

END
Plain text

با اجرای این دستور، برنامه پایان می‌یابد.

نکات🔗

  • در نظر داشته باشید که دستورها همواره روی آخرین طبقه کیک اعمال می‌شوند. برای مثال اگر بخواهیم یک لایه خامه اضافه کنیم، تنها روی آخرین طبقه آن را انجام می‌دهیم.
  • کیک همواره متقارن است. بنابراین امکان یکسان نبودن طول طبقه‌ها را در نظر داشته باشید و فضای خالی را با space پر کنید. همچنین این امکان وجود دارد که طبقات بالایی طول بیشتری داشته باشند.
مثال

اگر کیک اولیه ارتفاع ۲ و طول ۳ داشته و کیک فعلی به شکل زیر باشد:

KKK
ooo
Plain text

با اجرای ادامه دستوالعمل به شکل زیر ممکن است بشود:

CCCCC
CoooC
CoooC
 KKK
 ooo
Plain text

ورودی🔗

در هر خط ورودی، یکی از دستوراتی که در بالا توضیح داده شد، می‌آید. برنامه با دستور END خاتمه می‌یابد.

خروجی🔗

با توجه به توضیحات بالا، به ازای هر دستور، خروجی مورد نظر را چاپ کنید.

ورودی نمونه ۱🔗

BAKE 1 1
ADD OPERATION => ADD CREAM
BAKE 2 3
ADD OPERATION => ADD K TO SIDES
BAKE 2 3
ADD OPERATION => ADD LAYER
BAKE 1 3
ADD OPERATION => ADD S TO SIDES
BAKE 1 3
ADD OPERATION => ADD B TO TOP
BAKE 1 3
END
Plain text

خروجی نمونه ۱🔗

o
Done
CCCCC
CoooC
CoooC
Done
KCCCK
KoooK
KoooK
Done
 ooo 
KCCCK
KoooK
Done
 SoS
KCCCK
KoooK
Done
 BBB 
KCCCK
KoooK
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.