دانشگاه شریف تمرین سری سوم درس مبانی برنامه نویسی پایتون دمرس: حق علیرضا رطقی یقت رطاح تمرین: علیرضا خادمی 1 پاییز ۴۹ دانشگاه شریف تمرین سری سوم درس مبانی برنامه نویسی پایتون پاییز ۴۹ به نکات زیر حتما دقت کنید: موعد تحویل تمرین تمدید نخواهد شد. قطع بودن اینترنت منزل یا خوابگاه ،کندی سرعت اینترنت ،عدم وقت و ...هیچ کدام دلیل موجهی برای تاخیر نیستند .سعی کنید چند ساعت زودتر از مهلت تعیین شده اقدام به ارسال پاسخ خود کنید که بتوانید این مشکالت را حل کنید. تذکر :به برنامه های مشابه نمره منفی تعلق خواهد گرفت .بنابراین اکیدا توصیه می شود که هر دانشجو برنامه خود را به تنهایی نوشته و حتی االمکان دارای الگوریتم ،کد و نحوه پیاده سازی متفاوتی باشد (اولین تقلب :دو نمره منفی ،دومین تقلب ۹ :نمره منفی ،سومین تقلب :عدم قبولی در درس). زمان تحویل حضوری تمرین بعد از مهلت ارسال آن خواهد بود و به زودی اعالم خواهد شد. سواالت خود را در صفحه درس برنامه نویسی در سایت piazza.comبه آدرس زیر مطرح کنید: https://piazza.com/sharif/fall2015/ce1531213/home/ تمرینهای برای آپلود تمرین ها به سایت Quera.irمراجعه کرده و مطابق با دستورالعمل، خود را آپلود کنید. ( دستورالعمل آپلود تمرین ها ،در صفحه درس و سایت piazzaموجود می باشد) آخرین مهلت ارسال تمرین: تا پایان روز 27آذر (ساعت )2۹ 2 دانشگاه شریف تمرین سری سوم درس مبانی برنامه نویسی پایتون سوال اول :تخمین عدد π پاییز ۴۹ ( 22نمره ) میخواهیم عدد پی را تخمین بزنیم. فرض میکنیم اندازه ضلع مربع در شکل 01میباشد. به این ترتیب ابتدا تابع ) IsInCircle(x,yرا بنویسید که مشخص کند یک نقطه داخل ربع دایره قرار دارد یا خیر. سپس با تولید تعدادی نقطه تصادفی که در داخل مربع قرار دارند ،نسبت تعداد نقاط داخل دایره به تعداد کل نقاط را حساب کنید. این نسبت برابر است با یک چهارم عدد پی. بدین ترتیب تابع ) ( Findرا به گونهای بنویسید که تعیین کند که تعداد نقاط تصادفی باید حداقل چند باشد تا به خطای یک صدم برسیم ( .افزودن نقاط تصادفی تا زمانی که به خطای مورد انتظار برسیم ) سپس یک عدد از ورودی خوانده و به تعداد آن تابع ) ( Findرا صدا بزنید و میانگین خروجی ها را به عنوان نتیجه نهایی تا پنج رقم اعشار چاپ کنید. تذکر : با توجه به تصحیح کد توسط سیستم در ابتدای کد خود عبارت زیر را بنویسید : from random import randint , seed )seed(10 همچنین برای تولید عدد تصادفی از عبارت زیر استفاده کنید : ) x = float(random.randint(0,10000) /1000 ) y = float(random.randint(0,10000) /1000 Sample Output Sample Input 75.88462 26 19.53465 101 0.00000 0 1.97300 1000 0.01629 121121 986.50000 2 151.76923 13 3 دانشگاه شریف تمرین سری سوم درس مبانی برنامه نویسی پایتون سوال دوم :حل عددی معادله f(x) = 0به روش سکانت (وتری) کوچکترین ریشه مثبت پاییز ۴۹ ( 22نمره ) معادله با استفاده از روش سکانت و با دقت هفت رقم اعشار محاسبه کنید . | f(yi+1) | < 10-7 توضیحات بیشتر : https://en.wikipedia.org/wiki/Secant_method جواب مسئله : 1.4474142 4 تمرین سری سوم درس مبانی برنامه نویسی پایتون دانشگاه شریف سوال سوم :قورباغه احمق پاییز ۴۹ ( 22نمره ) یک قورباغه در برکه ای درحال حرکت است .کمک کنید وضعیت اتفاق افتاده برای قورباغه مشخص شود! برنامه ای بنویسید که در خط اول سطر و ستون جدول بازی و در خطوط بعدی به ترتیب نوع هر خانه را سطر به سطر بگیرد .در خطوط بعدی دستورات وارد میشوند .دقت کنید شروع حرکت از خانه صفر و صفر است! یعنی گوشه باال چپ! دستورات : : Upباال : Down ،پایین : Right ،راست : Left ،چپ : Finish ،پایان بازی : Locationدرخواست موقعیت فعلی قورباغه خانه های حرکت قورباغه انواع مختلفی دارد : ) ( : Eانرژی به مقدار داخل پرانتز که میتواند مثبت یا منفی و ضریب 2باشد تغییر کند . : Nخانه نرمال : Cتمساح ) ( : Jجهش به خانه ذکر شده قوانین بازی : - با ورود به هر خانه ،در صورتی که آن خانه نرمال نباشد یکی از جمله های خروجی مربوط باید چاپ گردد . - در صورتی که دستور جهش به خانه بیرون از جدول باشد عبارت "ناممکن" همانند مثال چاپ گردد . - قورباغه در دو حالت میمیرد :یکی با انرژی زیر صفر و یکی با شکار توسط تمساح ! - با تایپ دستور Finishبازی تمام شده و انرژی قورباغه چاپ میشود ! انواع جمله های خروجی بدین صورت هستند : !Energy 30 )Location (4,0 )Jump to (3,1 !Impossible place !Frog hunted by crocodile :-/! Energy 25 !Frog died! Energy -10 5 ۴۹ پاییز دانشگاه شریف تمرین سری سوم درس مبانی برنامه نویسی پایتون Sample Input 5*6 N E(20) J(3,2) N N E(-5) NNNNNC C E(10) N N J(0,0) C Sample Output Energy 20! Jump to (3,2) Energy 25! Impossible place! Frog hunted by crocodile :-/! Energy 25! N E(5) N N N C J(2,0) E(-10) N N C N Right Right Left Left Left Up 6 دانشگاه شریف تمرین سری سوم درس مبانی برنامه نویسی پایتون سوال چهارم :رمزگذاری و رمزگشایی پاییز ۴۹ ( 22نمره ) برنامه ای بنویسید که هم عمل رمزگذاری و هم رمزگشایی را انجام دهد .ورودی برنامه مشخص میکند که هدف رمزگذاری یا رمزگشایی است ( encryptبرای رمزگذاری و decryptبرای رمزگشایی ) روش رمز کردن هم به این صورت است که فایلی به عنوان کلید به شما داده میشود که در آن مشخص شدهاست که کدام کاراکتر باید با کدام کاراکتر دیگر جابهجا شود .سایر کاراکترهای متن که در فایل کلید جایگزین آن ها مشخص نشده است ،به همان صورت اولیه در متن خروجی آورده میشوند. متن اصلی که شما باید آن را رمزگذاری یا رمزگشایی کنید در فایل ” “input.txtمیباشد و شما به وسیلهی فایل ”“key.txt که محتوی کلید می باشد ،با توجه به اینکه هدف رمزگذاری با رمزگشایی است ،متن اصلی را تغییر داده و حاصل را در فایل ” “output.txtذخیره کنید . به عنوان مثال کاربر در ورودی عبارت زیر را وارد کرده است : encrypt محتوی فایل inputبدین شکل میباشد : ! Hello , this is input file content محتوی فایل keyبدین صورت است : t ---> b c ---> w H ---> m ? >, --- i ---> O محتوی فایل outputبه صورت زیر خواهد بود : ! mello ? bhOs Os Onpub Fole wonbenb تذکر :در decryptباید بالعکس محتویات فایل keyعمل کنید .به عنوان نمونه ،در مثال فوق حرف bبه ،tحرف wبه ،cو ... تبدیل میشوند . تذکر :این تمرین را فقط در سایت queraآپلود کنید و نمرهدهی آن در تحویل حضوری صورت خواهد گرفت .برخی از تستکیسهای این تمرین در سایت piazzaقرار داده شدهاست. 7
© Copyright 2025 Paperzz