Assignment2.pdf

‫تمریه سری ديم‬
‫درس مباوی بروامه وًیسی‬
‫مًعد ارسال‪ :‬یکشىبه ‪ 91‬آبان ‪9119‬‬
‫تمریه سری ديم درس مببوی بروبمه وًیسی‬
‫مًعد ارسبل‪ :‬یکشىبه ‪ 91‬آببن ‪9911‬‬
‫نکات کلی‬
‫‪ ‬هَػذ زحَیل ساػر ‪$ 11:19‬ظْش‪ #‬سٍص یکطٌثِ ‪ 19‬آتاى ‪ 1991‬تَدُ ٍ تِ ّیچ ػٌَاى زوذیذ ًخَاّذ ضذ‪.‬‬
‫‪ ‬زأخیش زا ‪ 1‬ساػر‪ ،‬تِ اصای ّش ‪ 9‬دقیقِ هَجة کسش ضذى ‪ً "1‬وشُ‪ ،‬اص ‪ 1‬ساػر زا ‪ 12‬ساػر هَجة کسش ضذى‬
‫‪ً "12‬وشُ‪ ،‬اص ‪ 12‬ساػر زا ‪ 11‬ساػر‪ ،‬تِ اصای ّش ‪ 1‬دقیقِ هَجة کسش ضذى ‪ً "1‬وشُی دیگش ٍ تیي ‪ 11‬ساػر‬
‫زا ‪ 28‬ساػر تاػث کسش ضذى ‪ً "12‬وشُ هیضَد ‪ .‬اص ‪ 28‬ساػر زا ‪ 29‬ساػر ًیض‪ ،‬تِ اصای ّش ‪ 1.1‬دقیقِ هَجة‬
‫کسش ضذى ‪ "1‬دسصذ ًوشُ ی دیگش هی ضَد‪ $ .‬تذیْی اسر کِ تا زاخیش تیص اص ‪ 29‬ساػر ‪ً "122‬وشُ اص ضوا‬
‫کسش ضذُ ٍ دیگش اص ایي زوشیي ًوشُ ای ًوی گیشیذ ‪#‬‬
‫‪ ‬ق طغ تَدى ایٌسشًر خَاتگاُ‪ ،‬کٌذی خایگاُ ایٌسشًسی داًطکذُ‪ ،‬زوام ضذى کاسذ ایٌسشًر ٍ … ّیچکذام دلیل‬
‫هَجْی تشای زأخیش ًیسسٌذ‪ .‬تٌاتشایي خیطٌْاد هیضَد جَابّای خَد سا دس دانشکده اسسال کٌیذ‪.‬‬
‫‪ّ ‬شگًَِ سًٍَضر‪ ،1‬تشای هٌثغ سًٍَضر ٍ ّوچٌیي ًسخِّای سًٍَیسی ضذُ ‪ً -1‬وشُ دس خی خَاّذ داضر‪.‬‬
‫‪ ‬زالش تشای اسسفادُ اص هٌاتغ سیسسن هاًٌذ کاسذ صذا ٍ خشیٌسش ٍ ‪ ...‬هٌجش تِ دسیافر ًوشُی صفش هیضَد‪.‬‬
‫‪ ‬سَاالذ خَد سا دس صفحِ دسس هثاًی تشًاهِ ساصی دس سایر ‪ piazza.com‬هطشح کٌیذ‪.‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫‪1‬‬
‫کدی یا ّواى کُح‬
‫‪1‬‬
‫مسئله ‪ .9‬خًد عکسی‬
‫تشخی اص سضسِّا ّسسٌذ کِ اگش آىّا سا تشػکس کٌی ‪$‬اص آخش تِ اٍل حشٍف سا کٌاس ّن تٌَیسی‪ً #‬سیجِ خَد ّواى سضسِ اسر‪ .‬تشای‬
‫هثال سضسِی ‪ abba‬یا ‪ .21112‬ایي سضسِّا سا خَد ػکس هیًاهین‪.‬‬
‫تشًاهِای تٌَیسیذ کِ سضسِای اص ٍسٍدی تگیشد ٍ تگَیذ کِ آیا سضسِ خَد ػکس ّسر یا خیش‪.‬‬
‫تشای هثال تشًاهِ تذیي صَسذ کاس خَاّذ کشد‪.‬‬
‫‪Enter string: aabbaa‬‬
‫‪A self reverse‬‬
‫‪Enter string: ccbb‬‬
‫‪Not a self reverse‬‬
‫جْر سَْلر دس کاس ضوا اتسذای تشًاهِ تِ صَسذ صیش تایذ تاضذ‪.‬‬
‫)" ‪string = raw_input("Enter string:‬‬
‫دس ّش صَسذ یکی اص خشٍجیّای صیش تایذ چاج ضَد‪.‬‬
‫اگش ٍسٍدی خَد ػکس تاضذ‪A self reverse :‬‬
‫اگش ٍسٍدی خَد ػکس ًثاضذ‪Not a self reverse :‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫‪1‬‬
‫ًکاذ‪:‬‬
‫‪‬‬
‫ّیچ فشضی دس هَسد طَل سضسِی ٍسٍدی ًکٌیذ!‬
‫‪‬‬
‫ّیچ فشضی دس هَسد هحسَای سضسِی ٍسٍدی ًکٌیذ! هیزَاًذ ػذد‪ ،‬حشف ٍ یا ّش زشکیثی اص ایيّا تاضذ‪.‬‬
‫‪‬‬
‫اسسفادُ اص زَاتغ تشػکس کٌٌذُی سضسِ هوٌَع اسر! تایذ اص حلقِی زکشاس اسسفادُ کٌیذ‪ .‬هوکي اسر جاج تِ ضوا ًوشُ‬
‫تذّذ ٍلی دس آخش اگش اص حلقِی زکشاس اسسادُ ًکٌیذ ًوشُی زوشیي سا ًخَاّیذ گشفر‪.‬‬
‫مسئله ‪ .1‬تبدیل مبىبی عدد‬
‫تشًاهِ ای سا تٌَیسیذ کِ ػذدی ٍ هثٌای اٍلیِ آى سا دسیافر هیکٌذ‪ ،‬خس اص تشسسی هؼسثش تَدى ػذد دس هثٌای هثذا‪ ،‬ػذد سا تِ‬
‫هثٌای هقصذ هیتشد ‪ .‬خس ٍسٍدی تشًاهِ هثٌای ػذد ٍسٍدی ‪$‬هثذا‪ ،#‬خَد ػذد ٍسٍدی ٍ هثٌای ػذد خشٍجی ‪$‬هقصذ‪ #‬اسر ٍ خشٍجی‬
‫هَسد ًظش ػذد ٍسٍدی زثذیل ضذُ تِ هثٌای هقصذ اسر‪.‬‬
‫تشای هثال‪:‬‬
‫‪Enter source base: 2‬‬
‫‪Enter number: 1111‬‬
‫‪Enter destination base: 10‬‬
‫‪15‬‬
‫‪Enter source base: 4‬‬
‫‪Enter number: 41‬‬
‫‪Enter destination base: 15‬‬
‫‪Invalid number‬‬
‫‪Enter source base: 16‬‬
‫‪Enter number: 10ab‬‬
‫‪Enter destination base: 2‬‬
‫‪1000010101011‬‬
‫تشای ساحسی ضوا چٌذ خط اٍل تشًاهِ تذیي صَسذ خَاّذ تَد‪:‬‬
‫))" ‪s_base = int(raw_input("Enter source base:‬‬
‫)" ‪number = raw_input("Enter number:‬‬
‫ًکاذ‪:‬‬
‫‪‬‬
‫تشای ًوایص اػذاد دس هثٌای تاالزش اص ‪ ۰۱‬اص حشٍف اسسفادُ هیضَد‪ .‬تشای هثال دس هثٌای ‪ ۰۱‬تِ غیش اص اسقام ‪ ۱‬زا ‪ ۹‬اص‬
‫‪ً abcdef‬یض اسسفادُ هیضَد‪.‬‬
‫‪‬‬
‫حذاکثش هثٌای هثذا ٍ هقصذ ‪ ٍ ۰۱‬حذاقل آى ‪ ۲‬اسر‪.‬‬
‫‪‬‬
‫هیداًیذ کِ تشای رخیشُ اػذاد دس هثٌای غیش اص ‪ ۰۱‬تایذ اص سضسِ اسسفادُ کٌیذ ٍ اسسفادُ اص ‪ int‬هوکي ًیسر‪.‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫))" ‪d_base = int(raw_input("Enter destination base:‬‬
‫‪9‬‬
‫مسئله‪ .9‬المبس‬
‫تشًاهِای تٌَیسیذ کِ تا اسسفادُ اص ‪ %‬یک ضکل لَصی ‪$‬الواس‪ #‬سا دس خشٍجی چاج کٌذ‪ .‬اسزفاع لَصی تسسِ تِ ٍسٍدی زغییش خَاّذ‬
‫کشد‪ .‬تشای هثال اگش ٍسٍدی ‪ n‬تاضذ‪ ،‬اسزفاع خشٍجی ‪ 2n-1‬تایذ تاضذ‪.‬‬
‫‪Enter number: 4‬‬
‫*‬
‫***‬
‫*****‬
‫*******‬
‫*****‬
‫***‬
‫*‬
‫‪Enter number: 3‬‬
‫*‬
‫***‬
‫*****‬
‫***‬
‫*‬
‫ًکاذ‪:‬‬
‫‪‬‬
‫‪‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫‪2‬‬
‫کال خشٍجی اص سِ کاسکسش ‪ ،%‬فاصلِ‪ ٍ ،‬خط جذیذ زطکیل ضذُ اسر‪.‬‬
‫ًثایذ تؼذ اص آخشیي سساسُ دس ّش خط‪ ،‬فاصلِ چاج کٌیذ‪ ،‬تلکِ الصم اسر تا چاج کاسکسش خط جذیذ تِ خط تؼذی تشٍیذ‪.‬‬
‫مسئله ‪ .4‬ة م م‬
‫تشًاهِ ای تٌَیسیذ کِ تا دسیافر دٍ ػذد طثیؼی اص ٍسٍدی تضسگزشیي هقسَم ػلیِ هطسشک ‪$‬ب م م‪ #‬آى دٍ سا هحاسثِ کٌذ ٍ دس‬
‫خشٍجی چاج ًوایذ‪.‬‬
‫تشای هثال‪:‬‬
‫‪Enter A: 50‬‬
‫‪Enter B: 60‬‬
‫‪10‬‬
‫‪Enter A: 9‬‬
‫‪Enter B: 24‬‬
‫‪1‬‬
‫‪Enter A: 3401‬‬
‫‪Enter B: 10323‬‬
‫‪13‬‬
‫ًکاذ‪:‬‬
‫‪‬‬
‫تشای هحاسثِ ب م م تایذ اص حلقِی زکشاس ‪ #while, for$‬اسسفادُ کٌیذ‪$ .‬تایذ تشًاهِ سا خَدزاى تٌَیسیذ!‪#‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫‪1‬‬
‫مسئله ‪ .5‬گًگل‬
‫فایل ‪ google.py‬سا اص قسور زوشیٌاذ سایر دسس دسیافر کٌیذ‪ .‬ایي فایل حاٍی یک آسایِ اسر کِ زؼذادی سضسِ دس آى قشاس‬
‫داسد‪.‬‬
‫تشًاهِ ی جسسجَگشی تٌَیسیذ کِ یک ػثاسذ سا اص کاستش تگیشد‪ ،‬آًگاُ دس تیي هسَى ‪$‬ػٌاصش هخسلف آسایِ‪ #‬تگشدد کِ ػثاسذ ٍاسد‬
‫ضذُ زَسط کاستش دس کذام هسي قشاس داسد‪ .‬سدس اًذیس ‪ #array index$‬زوام سضسِّای حاٍی تخطی یا زوام ػثاسذ ٍسٍدی سا‬
‫چاج کٌذ‪ ،‬تؼذ تگَیذ کِ چِ زؼذاد اص کلوازی کِ زَسط کاستش تِ ػٌَاى ٍسٍدی دادُ ضذُ دس آى سضسِ ٍجَد داضسِ اسر‪ .‬زَجِ‬
‫داضسِ تاضیذ کِ کلواذ فقط ٍ فقط زَسط فاصلِ اص ّن جذا هیضًَذ‪.‬‬
‫تشای هثال تخطی اص آسایِی هَجَد دس فایل ‪ google.py‬سا دس صیش هیتیٌیذ‪.‬‬
‫[ = ‪docs‬‬
‫‪"""Mabani""",‬‬
‫‪"""mabani 92""",‬‬
‫‪"""mabani92""",‬‬
‫‪"""Google, My Yahoo! & Microsoft Live users:""",‬‬
‫‪....‬‬
‫]‬
‫الصم اسر کِ ػثاساذ ورودی ٍ خروجی سا خاک ساصی کٌیذ‪ :‬تِ ایي هؼٌا کِ زوام ػالئن ًگاسضی سا اص آىّا حزف کٌیذ‪.‬‬
‫تشای کوک تِ ضوا یک سضسِ حاٍی زوام ػالئن ًگاسضی کِ تایذ اص ٍسٍدی ٍ خشٍجی حزف ضًَذ دس فایل ‪ google.py‬دس یک‬
‫هسغییش رخیشُ ضذُ اسر‪.‬‬
‫'~}|{`_^]\\[@?>=<;‪punctuation = '!"#$%&\'()*+,-./:‬‬
‫کافی اسر کِ ّش حشفی اص ایي سضسِ کِ دس هسَى ٍ یا ػثاسذ ٍسٍدی ٍجَد داسد سا قثل اص ّش کاسی خاک کٌیذ‪.‬‬
‫ًکسِی هْن دیگش ایي اسر کِ تشًاهِ ًسثر تِ حشٍف تضسگ ٍ کَچک نباید حساس تاضذ‪.‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫‪6‬‬
‫تشای هثال چٌذ ًوًَِ اص اجشای تشًاهِ سا دس اداهِ هیتیٌیذ‪:‬‬
‫‪Enter query: mabanI‬‬
‫‪0, 1‬‬
‫‪1, 1‬‬
‫‪2, 1‬‬
‫در هثال باال هی بیٌید کِ بدٍى در ًظز گزفتي بشرگ ٍ کَچک بَدى حزٍف بزًاهِ گفتِ است کِ در صفزهیي‪ ،‬اٍلیي ٍ دٍهیي عٌصز آرایِ‬
‫پاسخ دارین‪ ٍ .‬در ّز کدام گفتِ است کِ فقط یک کلوِ اس عبارت جستجَ در هتي بَدُ کِ بدیْی است‪ .‬چَى خَد عبارت جستجَ ّن یک‬
‫کلوِ بَدُ است‪.‬‬
‫‪Enter query: Mabani 92‬‬
‫‪0, 1‬‬
‫‪1, 2‬‬
‫‪2, 2‬‬
‫‪Enter query: mab.ani‬‬
‫‪0, 1‬‬
‫‪1, 1‬‬
‫‪2, 1‬‬
‫‪Enter query: mabani.92‬‬
‫‪2, 1‬‬
‫در ایي هثال پس اس پاکساسی عبارت ٍرٍدی بِ ‪ mabani92‬هیرسین‪ .‬یعٌی ًقطِ را حذف هیکٌین‪ .‬حال ایي رشتِ یک کلوِ حساب‬
‫هیشَد ٍ ایي یک کلوِ با حساس ًبَدى بِ بشرگ ٍ کَچکی حزٍف فقط در عٌصز دٍم آرایِ ٍجَد دارد (یادتاى باشد عٌاصز آرایِ اس صفز‬
‫شزٍع هیشًَد)‪ ٍ .‬چَى یک کلوِ است بعد اس آى یک چاپ شدُ است‪.‬‬
‫‪Enter query: Google is teaching mabani to Microsoft and yahoo‬‬
‫‪at year 92‬‬
‫‪0, 1‬‬
‫‪1, 2‬‬
‫‪2, 2‬‬
‫‪3, 3‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫زَجِ کٌیذ کِ ػثاسذ ٍسٍدی زَسط کاستش هیزَاًذ ضاهل چٌذیي کلوِ تاضذ‪ ،‬ضوا تایذ زوام ایي کلواذ سا دس آسایِی‬
‫جولِّا تگشدیذ‪.‬‬
‫زَجِ کٌیذ کِ جسسجَگش ًثایذ تِ تضسگ ٍ کَچک تَدى حشٍف حساس تاضذ‪.‬‬
‫زَجِ کٌیذ کِ اًذیس آسایِ اص صفش ضشٍع هیضَد‪.‬‬
‫کلواذ ٍسٍدی زَسط فاصلِ اص ّن جذا هیضًَذ‪.‬‬
‫زوشیي سشی دٍم دسس هثاًی تشًاهِ ًَیسی‬
‫ًکاذ‪:‬‬
‫‪7‬‬