ماراتن خلاقیت برنامه نویسی با دستورهای یک کاراکتری (برای تمام خلاقان)

ارسال ها
199
لایک ها
268
امتیاز
0
#1
سلام
از امروز تا مرحله 3، یک ماراتن برنامه نویسی خلاقانه با یک زبان بسیار ساده خواهیم داشت. این زبان بسیار ساده است و نیازی به دانستن برنامه نویسی ندارد. برنامه های این زبان بسیار خلاقانه هستند و مهمترین چیز در این زبان نوشتن تا حد ممکن کوتاه است. در دوره های 5 و 7 مرحله 2 کامپیوتر از این زبان (به شکلی دیگر) استفاده شده است. این زبان مخصوصا برای کسانی که می خواهند برنامه نویسی را شروع کنند، بسیار مفید است. در این ماراتن هر روز من یک یا چند سوال می دهم و شما برنامه هایتان را در کم ترین خط ممکن بنویسید.
در یک زبان برنامه نویسی 4 حافظه داریم. این حافظه ها تنها مقدارهای صحیح نامنفی را قبول می کنند. هرگاه مقدار یکی از این حافظه ها منفی شود، برنامه نادرست خواهد بود. این زبان فقط 4 دستور زیر را دارد:
D
I
J[r, d]
j[r-, d]
دستور اول به معنای آن است که از مقدار حافظه ی i ام، 1 واحد کم کن. دستور دوم به حافظه ی i ام 1 واحد زیاد می کند. در دستور سوم اگر حافظه ی iام 0 نباشد، d خط جلو می رویم. (ممکن است d منفی باشد و عقب برویم). در دستور چهارم اگر حافظه ی i ام 0 باشد، d خط جلو می رویم.

مثلا فرض کنید در ابتدا مقدار تمام حافظه ها به جز حافظه ی اول، 0 باشد و در حافظه ی اول n باشد. فرض کنید بخواهیم مقدار حافظه ی اول را 0 کنیم. می توان به صورت زیر برنامه را نوشت:
I[1]
D[1]
j[1, -1];
حال برای دست گرمی 3 برنامه ی زیر را بنویسید:
1. در ابتدا مقدار تمام حافظه ها به جز اولی 0 باشد. مقدار حافظه ی اول نیز n باشد. حال می خواهیم به حالتی برسیم که تمام حافظه ها به جز دومی 0 باشد و مقدار حافظه ی دوم n باشد.


2. در ابتدا مقدار تمام حافظه ها به جز اولی و دومی 0 باشد. مقدار حافظه ی اول و دوم نیز به ترتیب m و n باشد. حال می خواهیم به حالتی برسیم که در حافظه ی سوم، مقدار mn قرار بگیرد.



3. در ابتدا مقدار تمام حافظه ها به جز اولی و دومی 0 باشد. مقدار حافظه ی اول و دوم نیز به ترتیب m و n باشد. n برابر با 0 نیست. حال می خواهیم به حالتی برسیم که در حافظه ی سوم، جزء صحیح m / n قرار بگیرد و در حافظه ی چهارم باقیمانده ی m در تقسیم بر n قرار بگیرد.
 
آخرین ویرایش توسط مدیر

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#2
پاسخ : ماراتن خلاقیت برنامه نویسی با دستورهای یک کاراکتری (برای تمام خلاقان)

سوال 1 :

کد
d[1]
i[2]
j[1,-2]
سوال 2:

کد
i[3]
i[4]
d[2]
j[2,-3]
d[1]
i[2]
d[4]
j[4,-2]
j[1,-8]
سوال 3 :

کد
i[3]
i[4]
d[2]
d[1]
j[1,2]
j[2,5]
j[1,-5]
i[2]
d[4]
j[4,-2]
j[1,-10]
j[4,2]
i[3]
d[3]
پ.ن 1: یکم طولانی شد ببخشید دیگه اولین بار بود از این سوالا حل می کردم!!D:

پ.ن 2 : من متوجه تفاوت دستور 3 و 4 نشدم می شه توضیح بدید؟

پ.ن 3 : تو سوال اول فرض کردم n صفر نیست (البته می شه درستش کرد تا اینم جواب بده !)
 
آخرین ویرایش توسط مدیر
ارسال ها
199
لایک ها
268
امتیاز
0
#3
پاسخ : ماراتن خلاقیت برنامه نویسی با دستورهای یک کاراکتری (برای تمام خلاقان)

پ.ن 2 : من متوجه تفاوت دستور 3 و 4 نشدم می شه توضیح بدید؟
منظورم رو اشتباه تایپ کرده بودم.
ویرایش شد.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#4
پاسخ : ماراتن خلاقیت برنامه نویسی با دستورهای یک کاراکتری (برای تمام خلاقان)

منظورم رو اشتباه تایپ کرده بودم.
ویرایش شد.
اگه این دستور رو می دونستم آخرین کد کوتاه تر می شد!!
 
ارسال ها
199
لایک ها
268
امتیاز
0
#5
پاسخ : ماراتن خلاقیت برنامه نویسی با دستورهای یک کاراکتری (برای تمام خلاقان)

حالا یه سوال دیگه
فرض کنید در هر یک از حافظه های اول و دوم یک عدد طبیعی داده شده است و بقیه ی حافظه ها 0 هستند (4 حافظه داریم)
برنامه ای بنویسید که ب.م.م دو عدد را در حافظه ی سوم بگذارد.
 
بالا