تمرین سری دوم درس مبانی برنامه نویسی پایتون دمرس: حق علیرضا رطقی یقت رطاح تمرین: علیرضا خادمی 1 دانشگاه شریف پاییز ۴۹ تمرین سری دوم درس مبانی برنامه نویسی پایتون دانشگاه شریف پاییز ۴۹ به نکات زیر حتما دقت کنید: موعد تحویل تمرین تمدید نخواهد شد. قطع بودن اینترنت منزل یا خوابگاه ،کندی سرعت اینترنت ،عدم وقت و ...هیچ کدام دلیل موجهی برای تاخیر نیستند .سعی کنید چند ساعت زودتر از مهلت تعیین شده اقدام به ارسال پاسخ خود کنید که بتوانید این مشکالت را حل کنید. تذکر :به برنامه های مشابه نمره منفی تعلق خواهد گرفت .بنابراین اکیدا توصیه می شود که هر دانشجو برنامه خود را به تنهایی نوشته و حتی االمکان دارای الگوریتم ،کد و نحوه پیاده سازی متفاوتی باشد (اولین تقلب :دو نمره منفی ،دومین تقلب ۹ :نمره منفی، سومین تقلب :عدم قبولی در درس). زمان تحویل حضوری تمرین بعد از مهلت ارسال آن خواهد بود و به زودی اعالم خواهد شد. سواالت خود را در صفحه درس برنامه نویسی در سایت piazza.comبه آدرس زیر مطرح کنید: https://piazza.com/sharif/fall2015/ce1531213/home/ برای آپلود تمرین ها به سایت Quera.irمراجعه کرده و مطابق با دستورالعمل، تمرینهای خود را آپلود کنید. ( دستورالعمل آپلود تمرین ها ،در صفحه درس و سایت piazzaموجود می باشد) آخرین مهلت ارسال تمرین: تا پایان روز 22آبان (ساعت )22 2 تمرین سری دوم درس مبانی برنامه نویسی پایتون سوال اول :ترور دانشگاه شریف پاییز ۴۹ ( 22نمره ) تعدادی جنایتکار که قرار است توسط تیراندازهایی ترور شوند در یک ردیف میایستند ،سپس برای هر تیر انداز بازه ای مشخص می شود و او جنایتکارهای موجود در آن بازه را ترور میکند .دکترهایی هم موجودند که بعد از ترور بازه ای به هرکدام داده میشود و جنایتکارهای ترور شده در آن بازه را درمان می کنند تا زنده بمانند . برنامه ای بنویسید که پس از ترور جنایتکارها شماره جنایتکارهایی که زنده ماندهاند را بدهد : برنامه شما باید ابتدا تعداد جنایتکار ها را بگیرد ،سپس تعداد تیراندازها را بگیرد و به ازای هر تیرانداز یک بازه بگیرد ،بعد تعداد دکتر ها و سپس به ازای هر دکتر نیز یک بازه بگیرد و به عنوان خروجی مکان ایستادن جنایتکارهای که زنده هستند را بدهد . شماره گذاری جایگاه جنایتکاران از 0تا n-1میباشد ( .تعداد جنایتکاران = ) n Sample Input Sample Output 4 2 0 1 2 3 1 2 3 2 3 Sample Input Sample Output 0 1 2 4 5 1 4 2 5 3 6 2 0 3 2 0 4 تمرین سری دوم درس مبانی برنامه نویسی پایتون سوال دوم :الگوریتم دانشگاه شریف پاییز ۴۹ ( 22نمره ) در این سوال قرار است الگوریتمی پیاده سازی کنید که قابلیت درج ،حذف و پیدا کردن مجموع دنباله ای از اعداد a1 , a2 , … , anرا داشته باشد . ورودی مسئله :در خط اول عدد mتعداد عملیاتی که قرار است انجام شود آمده است و در mخط بعدی به ترتیب تعدادی دستور آمدهاند که بدین صورت هستند : ) insert(x,iعدد xرا در مکان iام دنباله ی اعداد درج میکند . ) delete(iعضو iام از دنباله اعداد را در صورت وجود حذف میکند . ) sum(i,jمجموع اعداد ai + ai+1 + … + ajرا محاسبه و در خروجی چاپ میکند . Sample Input Sample Output 8 )insert(5,1 )insert(10,1 )insert(7,2 )sum(1,2 )insert(4,3 )delete(2 )sum(1,2 )sum(2,3 17 14 9 توضیح مثال باال :دقت کنید بعد از اجرای هر دستور ) sum(i,jیکی از اعداد خروجی چاپ میشود .ابتدا یک عدد به عنوان مثال 8را از ورودی دریافت کرده و سپس 8ورودی دیگر دریافت میکند . 4 تمرین سری دوم درس مبانی برنامه نویسی پایتون سوال سوم :بازگشتی دانشگاه شریف پاییز ۴۹ ( 22نمره ) قلی ،بعد از این همه تمرین سخت در درس برنامه ویسی خسته شده و تصمیم گرفته تا به سراغ بازی با ریاضی های کتاب های دبیرستان برود ،در کتاب "ریاضی قلوی "1یک بازی با ریاضی به صورت زیر هست : امتیاز شما در ابتدای کار 0است .تعداد 2nعدد روی یک نوار نوشته شدهاست .شما در هر مرحله باید نوار را به دو قسمت مساوی تقسیم کرده و یک قسمت را دور بریزید و بیشترین عدد از قسمت دور ریخته شده را به امتیاز خود اضافه کنید .این کار را باید اینقدر ادامه دهید تا یک عدد بیشتر باقی نماند که آن عدد هم به امتیاز شما اضافه میشود. مثال ( :فقط نحوه کار توضیح داده شدهاست و به معنی درست بودن جواب نمیباشد ! ) point : 0 12 11 9 2 10 8 2 1 10 8 2 1 point : 12 point : 14 10 8 point : 24 8 Final point : 32 قلی منتظر است تا شما برنامه ای بنویسید که با گرفتن اعداد از ورودی ،به او بگوید که حداکثر امتیازی که می تواند کسب کند ،چقدر است . Sample Input 12 11 9 2 10 8 2 1 Sample Output 42 تذکر : 1اعداد در ورودی با یک Spaceاز یکدیگر فاصله دارند . تذکر : 2استفاده از تابع ) ( maxمجاز نمی باشد و درصورت نیاز باید تابع آن را بنویسید . تذکر : 3برای حل سوال فقط استفاده از تابع بازگشتی مجاز است و استفاده از هر روش حل دیگر نمره ای نخواهد داشت . 5 تمرین سری دوم درس مبانی برنامه نویسی پایتون سوال چهارم :دنباله متوازن دانشگاه شریف پاییز ۴۹ ( 22نمره ) علی میخواهد یک دنباله متوازن از پرانتزها را وارد رایانه جدید خود کند ،اما او که به دلیل حساسیت پوستی به هوای آلوده تهران ،همواره مجبور است از دستکش استفاده کند ،در هنگام استفاده از کیبورد و تایپ کردن این دنباله مشکل دارد و گاهاً پرانتزها را جابهجا و یا اشتباه وارد می کند .قرار است به او کمک کنید تا حداقل تعداد پرانتز هایی را که باید تغییر کنند تا دنباله متوازن شود بیابد .منظور از تغییر یک پرانتز عوض کردن "(" با ")" ویا برعکس است . دنباله متوازن به دنبالهای گفته میشود که تعداد "(" ها و ")" در آن برابر باشد .همچنین در هر پیشوند از این دنباله تعداد ")" ها حداقل به اندازه تعداد "(" ها باشد . ورودی یک رشته از پرانتز ها به طول زوج خروجی حداقل تعداد پرانتزهایی که باید تغییر کنند تا دنباله متوازن شود را چاپ کنید . Sample Input Sample Output 2 1 ())( )()()))(())((()()()) 6 تمرین سری دوم درس مبانی برنامه نویسی پایتون سوال امتیازی :خاک برداری دانشگاه شریف پاییز ۴۹ ( 20نمره ) فرزام از بچگی به گل و گیاه عالقه داشت و به همین سبب حاال که بزرگ شدهاست ،در حیاط باغچه خود گلدان های متعدد و زیادی دارد .او سال ها پیش که میخواست گل های خود را در این گلدان ها بکارد ،در هر یک از گلدان ها مقدار مشخصی خاک ریخت اما اکنون پس از گذشت چند سال ،مقدار خاک مورد نیاز این گل ها تغییر کردهاست . با توجه به متفاوت بودن گل های گلدان های مختلف ،مقدار خاک مورد نیاز آن ها هم متفاوت است .برخی از گل ها در طی این چند سال نیازشان به خاک افزایش یافته ،اما برخی نیز ممکن است نیاز آن ها کاهش یافته باشد . فرض کنید ،گلدان ها با شماره های 1تا Nکه 1 ≤ N ≤ 10به ترتیب در یک سطر قرار گرفته باشند و مقدار اولیه خاک هر گلدان را به ترتیب Aiمی نامیم .هم چنین مقدار خاک جدید مورد نیاز هر گلدان را به ترتیب Bi مینامیم .فرض کنید خاک موجود در گلدان ها در طی این چند سال تغییری نکرده باشد و همه Aiو Biها در بازه 0 تا 10باشند . میدانیم به هر یک از سه طریق زیر میتوان مقدار خاک یک گلدان را تغییر داد . میتواند 1واحد خاک بخرد و آن را در هر یک از گلدان ها که بخواهد بریزد .هزینه این عمل به طور ثابت برابر Xاست . میتواند 1واحد از خاک یک گلدان دلخواه را با هزینه ثابت Yاز گلدان مورد نظر برداشته و دور بریزد . میتواند یک واحد خاک را از گلدان iبه گلدان jمنتقل کند .هزینه این عمل برابر | Z × | i-jخواهد بود . می خواهیم خاک هر گلدان مقدار مورد نیاز جدید شود .برنامه ای بنویسید که حداقل هزینه مورد نیاز برای انجام این کار با توجه به مقادیر ورودی چقدر است ؟ 7 تمرین سری دوم درس مبانی برنامه نویسی پایتون دانشگاه شریف پاییز ۴۹ ورودی در خط اول ورودی 2عدد N, X, Y, Zمی آیند که با یک Spaceاز هم جدا شده اند . 1 ≤ X , Y , Z ≤ 1000 در خط های 2تا ، N + 1در هر خط دو عدد می آید به طوری که در خط i+1ام ،به ترتیب دو عدد Aiو Biمیآیند که با یک Spaceاز هم جدا شدهاند . خروجی فقط مقدار حداقل هزینه ای که با آن میتوان به حالت مورد نظر رسید را چاپ کنید . ورودی و خروجی نمونه Sample Input 100 200 1 4 3 2 0 Sample Output 210 8 4 1 2 3 4
© Copyright 2025 Paperzz