تمرین سری سوم درس مبانی برنامه نویسی موعد ارسال :سهشنبه 3دی 3329 تمرین سری سوم درس مبانی برنامه نویسی موعد ارسال :سهشنبه 3دی 2331 نکات کلی موعد تحویل ساعت ( 11:11ظهر) روز سهشنبه 3دی 1311بوده و به هیچ عنوان تمدید نخواهد شد. تأخیر تا 1ساعت ،به ازای هر 3دقیقه موجب کسر شدن %1نمره ،از 1ساعت تا 12ساعت موجب کسر شدن %12نمره ،از 12ساعت تا 11ساعت ،به ازای هر 1دقیقه موجب کسر شدن %1نمرهی دیگر و بین 11ساعت تا 24ساعت باعث کسر شدن %12نمره میشود .از 24ساعت تا 21ساعت نیز ،به ازای هر 1.1دقیقه موجب کسر شدن %1درصد نمره ی دیگر می شود ( .بدیهی است که با تاخیر بیش از 21ساعت %122نمره از شما کسر شده و دیگر از این تمرین نمره ای نمی گیرید ) قطع بودن اینترنت خوابگاه ،کندی پایگاه اینترنتی دانشکده ،تمام شدن کارت اینترنت و … هیچکدام دلیل موجهی برای تأخیر نیستند .بنابراین پیشنهاد میشود جوابهای خود را در دانشکده ارسال کنید. هرگونه رونوشت ،1برای منبع رونوشت و همچنین نسخههای رونویسی شده -1نمره در پی خواهد داشت. تالش برای استفاده از منابع سیستم مانند کارت صدا و پرینتر و ...منجر به دریافت نمرهی صفر میشود. سواالت خود را در صفحه درس مبانی برنامه سازی در سایت piazza.comمطرح کنید. تمرین سری سوم درس مبانی برنامه نویسی 1کپی یا همان کُپ 1 مسئله .2حلقهی تو در تو برنامهای بنویسید که عدد طبیعی nرا از کاربر دریافت کرده و مربعی n*nاز اعدد را به صورت زیر چاپ نماید. در این مربع اعداد موجود در قطر اصلی برابر 1و اعداد زیر قطر اصلی همگی برابر صفر میباشند و باقی اعداد توسط فرمول زیر بدست میآیند: هر عدد برابر است با مجموع اعداد سمت چپش ضرب در شمارهی سطر آن عدد ،به عالوهی مجموع اعداد زیرینش ضرب در شمارهی ستون آن عدد ( شمارهی سطرها و ستونها از 1شروع میشود ). ورودی نمونه خروجی نمونه 13 01 1 3 22 234 3280 0 1 5 44 520 0 0 1 7 74 00019 00001 تمرین سری سوم درس مبانی برنامه نویسی 1 2 5 مسئله .1سرامیک برنامهای بنویسید که عدد طبیعی nرا از ورودی دریافت کرده و با استفاده از تابع بازگشتی تعداد راههای موجود برای پوشاندن یک مستطیل 2*nرا با استفاده از سرامیکهای 2*1چاپ میکند ( .سرامیکها میتوانند به صورت عمودی یا افقی در مستطیل قرار بگیرند اما در انتها حتما باید تمام سطح مستطیل را بپوشانند ) برای مثال شکل زیر یکی از حاالتی است که یک مستطیل 1*3با استفاده از 3سرامیک پوشانده شده است: ورودی نمونه خروجی نمونه 5 4 8 5 تمرین سری سوم درس مبانی برنامه نویسی 2 2 3 مسئله .3رمزنگاری در این تمرین میخواهیم رشتههایی که با یک روش خاص رمزگذاری شدهاند را رمزگشایی کنیم تا بتوانیم به متن اصلی دست پیدا کنیم. برای رمزگشایی متن ،در خط اول یک رشته به شما داده میشود که رشتهی کلید برای رمزگشایی میباشد .در خط دوم یک سری رشته با فرمتی که در زیر مشخص شده است میآیند که هر کدام از آنها یک کلمه را به یک کلمهی دیگر متناظر میکنند و در خط سوم متن اصلی داده میشود. برای رمزگشایی متن ابتدا باید در میان کلمات متن اصلی جستجو نماییم و در صورتی که کلمهای موجود بود که در خط دوم به کلمهی دیگری متناظر شده بود آن را با کلمهی متناظرش جایگرین کنیم .سپس متن اصلی را کاراکتر به کاراکتر میپیماییم .در صورتی که کاراکتر موردنظر قبال دیده نشده بود ،آن را با اولین کاراکتر در رشتهی کلیدمان جمع میکنیم ( در صورتی که مجموع از zبیشتر شد از ابتدا ادامه مییابد .مثال ) b+y=aو از آن به بعد همیشه به جای آن کاراکتر ،کاراکتر متناظر بدست آمده را قرار میدهیم .سپس برای دومین کاراکتری که قبال دیده نشده بود همین کار را با دومین کاراکتر از رشتهی کلیدمان انجام میدهیم و به همین ترتیب تا آخر ( اگر به انتهای کاراکترهای رشتهی کلیدمان رسیدیم دوباره از اول شروع میکنیم ) و در نهایت متن رمزگشایی شده را چاپ میکنیم. توجه کنید که شما باید تنها حروف کوچک انگلیسی را رمزگشایی کنید و باقی کاراکترها را بدون تغییر در خروجی نمایش دهید. ورودی نمونه خروجی نمونه ?salam khoobi fmzk edc=arar, qwejf=mnlnb, hi=hello ?qwejf euooqc تمرین سری سوم درس مبانی برنامه نویسی 2 Tsj Pxestm tmejwowjejw td jfdtkx jiejmiji vtes mjv key qzmbettmd fmi ifef exojd temp=a, d=b, with=easily, easily=with, TEMP=nothing The Python interpreter is with extended easily new functions and data types مسئله .4فایل یک فایل داریم که در هر خط آن تنها یک رشته قرار دارد .می خواهیم کاراکترهای به کار رفته در این رشتهها را به ترتیب از بیشترین تعداد تکرار به کمترین تعداد تکرار مرتب و چاپ کنیم ( .در صورتی که چند کاراکتر به تعداد مساوی تکرار شده بودند کاراکتر بزرگتر ابتدا چاپ میشود ) برای این منظور رشتهها را یکی یکی میخوانیم و در صورتی که رشتهی خوانده شده تکراری نبود کاراکترهای آن را مورد بررسی قرار میدهیم .در صورتی که در فایل به رشتهی 0و یا انتهای فایل رسیدید باید خواندن رشتهها را متوقف کنید. خروجی نمونه ورودی نمونه ohaytspnmlkibzxwvurqjgfedc words.txt reawtsohfcupmidzyxvqnlkjgb strings.txt در این مثال محتوای words.txtبرابر است با: salam khoobi salam python 0 java ce computer software hardware ce sharif تمرین سری سوم درس مبانی برنامه نویسی و محتوای strings.txtبرابر است با: 1 مسئله .5مختصات در این تمرین میخواهیم کالس Pointرا پیادهسازی و به وسیلهی آن دستگاه مختصات دوبعدی و اعمال برروی آنها را مدل کنیم. یک Pointدارای دو مشخصهی xو yمیباشد که شما برای آن باید توابع زیر را پیادهسازی نمایید: ) __init__( self, x, y این تابع ،تابع سازنده میباشد که مختصات نقطه را برابر ) (x,yقرار میدهد. ) distance( self, p این تابع فاصلهی نقطهی ما را تا نقطهی pبرمیگرداند. ) rotate( self, angle, p این تابع نقطهی ما را حول نقطهی pبا زاویهی angleدوران میدهد ( .واحد تمام angleها رادیان میباشد ) ) add( self, p این تابع مختصات نقطهی ما را با مختصات pجمع میکند. ) addPolar( self, r, angle این تابع نقطهی ما را با مختصات قطبی مشخص شده ( که rفاصلهی آن تا مرکز مختصات میباشد و angleزاویهی بین خط رسم شده از مرکز به آن نقطه و محور طول میباشد ) جمع میکند. ) __str__( self این تابع مختصات نقطه را به این صورت برمیگرداند(x,y) : تمرین سری سوم درس مبانی برنامه نویسی 6 بعد از پیادهسازی این کالس ،با شروع برنامه 1عدد از کاربر دریافت میشود که نقطهی اولیهی ما را مشخص میکند .سپس با هر یک از دستورات زیر اعمال مورد نظر با استفاده از توابع موجود در کالس باید بر روی نقطه اعمال شود. distance x y با این دستور فاصلهی نقطهی مورد نظر از مختصات ) (x,yچاپ میشود. rotate angle x y با این دستور عمل دوران حول مختصات ) (x,yانجام میگیرد اما چیزی چاپ نمیشود. add x y با این دستور مختصات نقطهی ما با مختصات ) (x,yجمع میشود اما چیزی چاپ نمیشود. addPolar r angle با استفاده از این دستور مختصات نقطهی ما با مختصات قطبی ) (r,angleجمع میشود اما چیزی چاپ نمیشود. print با استفاده از این دستور مختصات نقطهی ما چاپ میشود. end با این دستور برنامه به اتمام میرسد. ورودی نمونه خروجی نمونه 1.41421356237 5.5 6.0 )(0.0,5.0 add 0.5 1.0 )(-0.940321764522,-0.0867457729869 add -1 -2.0 distance 6.0 6.0 addPolar -5 0 print rotate 1.6 2 2 print end تمرین سری سوم درس مبانی برنامه نویسی 7
© Copyright 2025 Paperzz