ترجمه سوالات سایت های معتبر برنامه نویسی

۶ مطلب در بهمن ۱۳۹۰ ثبت شده است

ورودی و خروجی

  دیروز پرسشی در مورد نحوه ی ورودی و خروجی گرفتن در بعضی برنامه ها در قسمت نظرات مطرح شد. به همین خاطر خوب دیدیم متنی رو در این مورد در بلاگ قرار دهیم. ضمن تشکر از آقای رضی زاده که این متن رو نوشته اند.

 

به نام خدا

توضیح کلی اینکه ورودی کاملاً جدا و مستقل از خروجی است و می شود فرض کرد که در دو صفحه کاملاً جدا از هم قرار دارند، در نتیجه به طور مثال اگر گفته شده که در ورودی ها یک خط خالی می آید (مثلا در سوال Triangle Wave)، نمی­توان برای آن یک دستور Writeln قرار داد و باید مثلاً یک Readln برای خواندن یک خط خالی قرار داد. در ضمن اگر از دستور Read برای خواندن یک عدد استفاده کنیم، لازم نیست خط های خالی را در نظر بگیریم و خود دستور Read تمام کاراکترهای خالی و همچنین خط های خالی را رد می کند تا به یک عدد برسد و آن را می خواند.

همچنین اینکه ورودی و خروجی از هم جدا هستند، به معنای این هم هست که هر موقع که بخواهیم می توانیم در صفحه­ی خروجی، قسمتی از جواب را بنویسیم و لازم نیست که همه ی جوابها را پیدا کنیم و در آرایه ذخیره کنیم و یکجا آنها را بنویسیم. مثلاً اگر ورودی متشکل از چند تست است، می توانیم پس از خواندن هر تست، جواب آنرا بنویسیم و هیچ مشکلی به وجود نمی آید.

برای اینکه ورودی ها را درست بخوانیم، در بعضی از سوالات باید از روش زیر استفاده کنیم:

while not SeekEOF do

و یا :

while not SeekEOF(input) do

(این دو با هم معادلند و در نتیجه استفاده از اولی راحت تر است)

و همچنین در ++c می توان نوشت:

  (while (cin>>input

 

این حلقه یعنی اینکه "تا وقتی ورودی ها تمام نشده اند" صرف نظر از اینکه یک سری   (white space)    باقیمانده باشد یا نه. منظور از(WhiteSpace)  کاراکترهای (Space) و (Tab) و (End of Line) هستند.

 

 

۲۳ بهمن ۹۰ ، ۲۲:۱۵ ۱ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

256 - Quirksome Squares

مسئله شماره 18:

ترجمه از: امیر کسری جلال دوست

256 - Quirksome Squares

 

مربع های حقّه باز

 

عدد 3025 یک خصوصیت مهم و قابل توجه دارد : اگر ارقام آن را طوری از هم جدا کنید به طوری که 2 رشته با طول برابر

(25 و 30) تقسیم کنید و مربع آن ها را با هم جمع کنید به همان عدد اولیه (3025) خواهید رسید:

 

 

در این مسئله شما باید تمام اعداد n رقمی که این خاصیت را دارند را بیابید.(عدد زوج n ورودی داده می شود.)

برای مثال ، اعداد چهار رقمی از 0000  شروع می شوند و به 9999  ختم می شوند. توجه داشته باشید که صفر ها هم باید محاسبه شوند، یعنی 0001  که برابر است با  2(01+00)   هم یک عدد حقه باز چهار رقمی است.

تعداد ارقام ممکن است 2، 4، 6 و یا 8 باشد ولی در عین حال حداکثر مقدار 32767 است و برنامه شما باید اعداد خروجی را در این بازه نگه دارد امّا باید به فکر سریع بودن برنامه خود باشید.

ورودی:

ورودی یک فایل متنی است که تعداد ارقام( 2 ، 4 ، 6 و یا 8 ) را هر یک در یک خط در بر میگیرد.

خروجی:

خروجی هم یک فایل متنی است که از خط هایی تشکیل شده که هر یک، یک عدد حقه باز را در خود جای می دهد. ( به ترتیب اعداد ورودی، و برای هر عدد ورودی اعداد حقه باز به ترتیب صعودی قرار دارند.

*نکته : دقت کنید که تعداد ارقام اعداد خروجی با عدد معادل آن در ورودی برابر است. قرار دادن صفر ها را هم فراموش نکنید.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۲۳ بهمن ۹۰ ، ۲۱:۴۹ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

490 - Rotating Sentences

مسئله شماره 17:

 

ترجمه از: سیّد علیرضا خوش قلب

 

490 - Rotating Sentences

محدودیت زمانی : 3 ثانیه

جمله های چرخشی!

 

در جمله های چرخشی شما باید یک مجموعه از ورودی ها را 90 درجه در جهت عقربه های ساعت بچرخانید.پس باید به جای نشان دادن جملات از بالا به پایین و چپ به راست آنها را از بالا به پایین و راست به چپ نشان دهید.

 

ورودی و خروجی:

به عنوان ورودی به برنامه، شما حداکثر 100 جمله که هیچ کدام بیش از 100 حرف نیستند می گیرید.حروف قانونی : خط جدید،فاصله(اسپیس)،نشانه های سجاوندی،ارقام،حروف بزرگ و کوچک انگلیسی(تب ها قانونی نیستند)

خروجی برنامه باید آخرین جمله را به صورت عمودی در ستون سمت چپ و اولین جمله را متعاقبا در آخر و ستون سمت راست چاپ کند.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۲۰ بهمن ۹۰ ، ۱۲:۵۰ ۱ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

10450 - World Cup Noise

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

 

نویسنده : امیر محمد فرزانه

 

10450 - World Cup Noise

محدودیت زمانی : 3 ثانیه

 

سر و صدای جام جهانی!

"کره،کره". این فریاد حدود 54000 طرفدار فوتبال خوشحال است که تیمشان در کشور خودشان به مرحله ی نیمه نهایی جام جهانی فوتبال راه یافته است. امّا با این که شور و شوق آن ها واقعی است، مردم کره هنوز خیلی توسط طبیعت سازمان یافته اند. برای مثال آنان ترومپت های بزرگی را تدارک دیده اند تا تیمشان را در زمین پشتیبانی کنند. طرفداران می خواهند تا میزان صدا را در طول برگزاری مسابقه ثابت نگه دارند.

ترومپت ها به وسیله گاز فشرده کار می کنند و اگر هوا به مدت 2 ثانیه متوالی وارد ترومپت شود، ترومپت می شکند. بنابراین تا وقتی ترومپت صدا می دهد، همه چیز خوب است امّا هنگام مکث ترومپت، طرفداران باید فریاد بزنند : "کره" !

قبل از مسابقه گروهی از طرفداران جمع شده و برای یک الگوی صدا برای تشویق تیمشان تصمیم گیری می کنند. الگوی صدا ترتیبی از ها و 1 هاست که در آن شماره ی 1 ، لحظه ی دمیده شدن در ترومپت و شماره ی 0 لحظه ی فریاد "کره" طرفداران را نشان می دهد. برای اطمینان از نشکستن ترومپت، الگو نباید دو 1 متوالی داشته باشد.

بنابراین در این مسئله شما باید با توجه به عدد صحیح مثبت n به عنوان ورودی ، تعداد الگو های متفاوت ممکن به طول n برای تشویق را محاسبه کنید. همچنین در نظر بگیرید که در یک دنباله به طول n هیچ دو 1 مجاوری دیده نمی شود. برای مثال،  به ازای n = 3  پاسخ برابر با 5 می شود.(دنباله های 000, 001, 010, 100, 101 صحیح هستند، در حالی که دنباله های 011 110, 111 پذیرفتنی نیستند.)

 

ورودی

خط اول ورودی شامل تعداد تست ها می شود و برای هر تست یک عدد صحیح مثبت کوچکتر از 51 در یک خط می آید.

 

خروجی

خروجی هر تست با یک خط شامل “Scenario #i:” آغاز می شود، به طوری که i نشان دهنده ی شماره ی تست است و از یک شروع می شود.سپس در یک خط تعداد دنباله های به طول n را که 1 های مجاور ندارند را در یک خط چاپ کرده و خروجی هر تست را با یک خط خالی پایان دهید.

نمونه ها و لینک ها در ادامه مطلب

ادامه مطلب...
۱۵ بهمن ۹۰ ، ۱۹:۰۰ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

993 - Product of digits

و ترجمه ی پانزدهمین سوال! :

 

993 - Product of digits

محدودیت زمانی : 3 ثانیه

ضرب ارقام

متناسب با عدد صحیح غیر منفی N  کوچکترین عدد طبیعی ممکن برای Q  را بیابید، به طوری که ضرب تمام ارقام  Q  برابر با N  شود.

ورودی

خط اول ورودی شامل یک عدد صحیح مثبت که نشان دهنده ی تعداد تست ها است، می شود. هر خط در ادامه نماینده ی یک تست است که عدد صحیح غیر منفی N  (0<=N<=109)  را در بر می گیرد.

خروجی

برای هر تست در یک خط عدد طبیعی Q را چاپ کنید و یا اگر Q  وجود ندارد، `-1' را چاپ کنید.

 

نمونه ها و لینک ها در ادامه مطلب

ادامه مطلب...
۰۹ بهمن ۹۰ ، ۲۰:۴۶ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

138 - Street Numbers

و چهاردهمین سوال از سری سوالات UVa! :

 

 

138 - Street Numbers

محدودیت زمانی : 3 ثانیه

شماره خیابان ها

برنامه نویسی در خیابانی با خانه های شماره گذاری شده با شماره های متوالی آغاز شونده از 1 ، زندگی می کند. هر روز به طور تصادفی در سمت چپ یا راست خانه ی خود تا انتهای خیابان پیاده روی می کند و باز می گردد. روزی در طول پیاده روی شماره  خیابان های خانه هایی که از آن ها می گذشت(به جز خانه خودش) را جمع کرد و وقتی روزی دیگر از جهت دیگر حرکت کرد و دوباره این کار را انجام داد، به همان مجموع رسید.

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

این لیست اعداد با دو جفت عدد زیر آغاز می شوند:

 

         6         8

        35        49

 

ورودی  و خروجی

این سوال ورودی ندارد و خروجی شامل 10 خط که هر یک در برگیرنده یک جفت عدد است و هر یک باید در 10 کاراکتر( همانطور که در بالا نمایش داده شد ) چاپ شوند، می شود.

 

لینک ها در ادامه مطلب

ادامه مطلب...
۰۱ بهمن ۹۰ ، ۲۲:۲۹ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری