A2.pdf

‫ﻣﺒﺎﻧﯽ ﺑﺮﻧﺎﻣﻪﺳﺎزی‬
‫ﻧﯿﻢﺳﺎل اول ‪٩٣-٩۴‬‬
‫داﻧﺸﮕﺎه ﺻﻨﻌﺘﯽ ﺷﺮﯾﻒ‬
‫ﻣﺪرس‪:‬اﻣﯿﺪ ﻏﯿﺒﯽ‬
‫داﻧﺸﮑﺪهی ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﺗﻤﺮﯾﻦ ‪٢‬‬
‫دﺳﺘﻮرﻫﺎی ﮐﻨﺘﺮل ﺗﮑﺮار‬
‫ﻣﻬﻠﺖ ارﺳﺎل ‪ ٢ :‬آﺑﺎن ﻣﺎه‬
‫ﺑﻪ ﻣﻮارد زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ‪:‬‬
‫• ﺣﺘﻤﺎ در ارﺳﺎل ﻓﺎﯾﻞ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺑﻪ ﻧﺎم ﻓﺎﯾﻞ و ﻓﺮﻣﺖ ورودی و ﺧﺮوﺟﯽﻫﺎ ﺗﻮﺟﻪ ﺷﻮد‪ .‬در ﺻﻮرت اﺷﺘﺒﺎه در ﻧﺤﻮهی درﯾﺎﻓﺖ ورودی‬
‫و ﭼﺎپ ﺧﺮوﺟﯽ‪ ،‬ﻧﻤﺮهای ﺑﻪ ﺷﻤﺎ ﺗﻌﻠﻖ ﻧﺨﻮاﻫﺪ ﮔﺮﻓﺖ‪.‬‬
‫• ﭘﺎﺳﺦ ﺗﻤﺮﯾﻨﺎت در ﺳﺎﻣﺎﻧﻪی داوری ﺑﺎرﮔﺬاری ﮐﻨﯿﺪ‪.‬‬
‫• ﻫﻢﻓﮑﺮی و ﻫﻢﮐﺎری در ﭘﺎﺳﺦ ﺑﻪ ﺗﻤﺮﯾﻨﺎت اﺷﮑﺎﻟﯽ ﻧﺪارد وﻟﯽ ﭘﺎﺳﺦ ارﺳﺎﻟﯽ ﺣﺘﻤﺎً ﺑﺎﯾﺪ ﺗﻮﺳﻂ ﺧﻮد ﺷﺨﺺ ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﺎﺷﺪ‪.‬‬
‫• ﻣﺒﻨﺎی درس‪ ،‬اﻋﺘﻤﺎد ﺑﺮ ﭘﺎﺳﺦ ارﺳﺎﻟﯽ از ﺳﻮی ﺷﻤﺎﺳﺖ؛ ﺑﻨﺎﺑﺮاﯾﻦ ارﺳﺎل ﭘﺎﺳﺦ در ﺳﺎﻣﺎﻧﻪی داوری ﺑﻪ اﯾﻦ ﻣﻌﻨﺎﺳﺖ ﮐﻪ ﭘﺎﺳﺦ آن‬
‫ﺗﻤﺮﯾﻦ‪ ،‬ﺗﻮﺳﻂ ﺷﻤﺎ ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬در ﺻﻮرت ﺗﻘﻠﺐ و ﯾﺎ اﺛﺒﺎت ﻋﺪم‪ ‬ﻧﻮﺷﺘﺎر ﭘﺎﺳﺦ‪ ‬ﺣﺘﯽ ﯾﮏ ﺳﻮال از ﺗﻤﺮﯾﻦ‪ ،‬ﻧﻤﺮهی آن ﺗﻤﺮﯾﻦ‬
‫ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ ﺑﺮای ﻫﺮ دو ﻃﺮفِ ﺗﻘﻠﺐﮔﯿﺮﻧﺪه و ﺗﻘﻠﺐدﻫﻨﺪه ﺑﺮاﺑﺮ ﺻﻔﺮ ﻗﺮار داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫• ﻣﻬﻠﺖ ارﺳﺎل ﻓﺎﯾﻞﻫﺎ ﺗﺎ ﺳﺎﻋﺖِ ‪ ٢٣:۵٩‬ﺗﺎرﯾﺦ‪ ‬ﮔﻔﺘﻪ ﺷﺪه اﺳﺖ‪ .‬ﭘﺲ از ﮔﺬﺷﺖِ ﺣﺘﯽ ﯾﮏ ﺛﺎﻧﯿﻪ از اﯾﻦ زﻣﺎن‪ ،‬ﺗﺎ ﺳﻪ روز ﻧﻤﺮهی‬
‫ﺷﻤﺎ ﺑﺎ ﺿﺮﯾﺐ ‪ ٠٬۶‬و ﭘﺲ از آن ﺗﺎ ﯾﮏ ﻫﻔﺘﻪ‪ ،‬ﺑﺎ ﺿﺮﯾﺐ ‪ ٠٬٣‬ﻣﺤﺎﺳﺒﻪ ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ارﺳﺎل ﺑﺎ ﺗﺄﺧﯿﺮ ﺑﯿﺶ از ﯾﮏ ﻫﻔﺘﻪ‪ ،‬ﻣﺠﺎز‬
‫ﻧﯿﺴﺖ‪.‬‬
‫• ﻫﺮﮔﻮﻧﻪ ﺳﻮال ﻣﺮﺑﻮط ﺑﻪ ﺗﻤﺮﯾﻦﻫﺎ را ﺑﺎ ﻣﻮﺿﻮع ﻣﻨﺎﺳﺐ در ﮔﺮوه درس ﻣﻄﺮح ﮐﻨﯿﺪ‪.‬‬
‫ﮔﺮوه ﺗﻤﺮﯾﻦ‬
‫‪١‬‬
‫ﺳﺆال ‪.١‬‬
‫ﻣﺎﮐﺰﯾﻤﻢ )‪ ۵‬ﻧﻤﺮه(‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ اﺑﺘﺪا ﻋﺪد ‪ n‬را از ورودی درﯾﺎﻓﺖ ﮐﻨﺪ و ﺳﭙﺲ ‪ n‬ﻋﺪد دﯾﮕﺮ از ورودی ﺑﮕﯿﺮد و ﺑﺰرگﺗﺮﯾﻦ آن را ﭼﺎپ ﮐﻨﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪4‬‬
‫‪1 5 6 2‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪6‬‬
‫ﺳﺆال ‪.٢‬‬
‫ﻓﺎﮐﺘﻮرﯾﻞ )‪ ۵‬ﻧﻤﺮه(‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻋﺪد ‪ n‬را از ورودی ﮔﺮﻓﺘﻪ و ﻓﺎﮐﺘﻮرﯾﻞ آن را ﻣﺤﺎﺳﺒﻪ ﮐﺮده و ﻧﻤﺎﯾﺶ دﻫﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪5‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪120‬‬
‫ﺳﺆال ‪ .٣‬ب‪.‬م‪.‬م و‬
‫ک‪.‬م‪.‬م )‪ ٧‬ﻧﻤﺮه(‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ دو ﻋﺪد ‪ m‬و ‪ n‬را درﯾﺎﻓﺖ ﮐﺮده و ب‪.‬م‪.‬م و ک‪.‬م‪.‬م آنﻫﺎ را ﭼﺎپ ﮐﻨﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪8 20‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪4 40‬‬
‫‪٢‬‬
‫ﺳﺆال ‪ .۴‬ﭼﺎپ‬
‫ﺷﮑﻞ )‪ ٨‬ﻧﻤﺮه(‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻋﺪد ‪ n‬را از ورودی درﯾﺎﻓﺖ ﮐﺮده و ﺳﭙﺲ ﯾﮏ ﻣﺮﺑﻊ ﺗﻮﺧﺎﻟﯽ‪ ‬ﺑﻪ ﻃﻮل و ﻋﺮض ‪ n‬ﺑﺎ ﺳﺘﺎره ﭼﺎپ ﮐﻨﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪6‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫******‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫******‬
‫ﺳﺆال ‪ .۵‬ﻫﻢﻧﻬﺸﺘﯽ‬
‫اﻋﺪاد )‪ ١٠‬ﻧﻤﺮه(‬
‫در اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﻗﺼﺪ دارﯾﻢ ﺗﺎ دو ﻋﺪد از ﮐﺎرﺑﺮ درﯾﺎﻓﺖ ﮐﺮده و ﺗﻤﺎم اﻋﺪادی را ﮐﻪ اﯾﻦدو ﻣﯽﺗﻮاﻧﻨﺪ ﻧﺴﺒﺖ ﺑﻪ آن ﺑﺎ ﻫﻢ ﻫﻤﻨﻬﺸﺖ ﺑﺎﺷﻨﺪ‪،‬‬
‫ﺑﯿﺎﺑﯿﻢ‪ .‬ﺧﺮوﺟﯽ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت ﺻﻌﻮدی ﻣﺮﺗﺐ ﺷﺪه ﺑﺎﺷﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪1 25‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪2 3 4 6 8 12 24‬‬
‫ﺳﺆال ‪ .۶‬ﯾﺎﻓﺘﻦ ﻋﺪد‬
‫اول )‪ ١٠‬ﻧﻤﺮه(‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻋﺪد ﺻﺤﯿﺢ ‪ a‬را از ورودی ﺑﺨﻮاﻧﺪ و ﻣﺠﻤﻮع ارﻗﺎم آن را در ‪ b‬ﻗﺮار دﻫﺪ‪ .‬ﺧﺮوﺟﯽ ‪ b‬اُﻣﯿﻦ ﻋﺪد اول ﭘﺲ‬
‫از ‪ a‬اﺳﺖ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪100‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪101‬‬
‫‪٣‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪55‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪101‬‬
‫ﺳﺆال ‪.٧‬‬
‫ﻣﺒﻨﺎ )‪ ١٠‬ﻧﻤﺮه(‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ‪٢‬ﻋﺪد ﺻﺤﯿﺢ ‪ a‬و ‪ b‬را از ورودی ﮔﺮﻓﺘﻪ و ﻋﺪد ‪ a‬را ﺑﻪ ﻣﺒﻨﺎی ‪ b‬ﺑﺒﺮد‪ .‬ﻋﺪد ﺣﺎﺻﻠﻪ را ‪ c‬ﻣﯽﻧﺎﻣﯿﻢ ‪ .‬در ﻋﺪد ‪c،‬‬
‫ﺳﻤﺖ ﭼﭗﺗﺮﯾﻦ رﻗﻢ )ﺑﺎ ارزﺷﺘﺮﯾﻦ رﻗﻢ( را در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و ﺑﺎ ﺷﺮوع از اﯾﻦ رﻗﻢ ‪ ،‬ارﻗﺎم ﻋﺪد را ﯾﮏ در ﻣﯿﺎن ﺟﻤﻊ ﻣﯽﮐﻨﯿﻢ و ﻣﺠﻤﻮع را‬
‫ﺑﺮاﺑﺮ ‪ sum١‬ﻗﺮارﻣﯽدﻫﯿﻢ‪ .‬ﻣﺠﻤﻮع ﺑﻘﯿﻪی ارﻗﺎم را ‪ sum٢‬ﻣﯽﻧﺎﻣﯿﻢ‪ .‬اﮔﺮ ‪ sum١‬ﺑﺮاﺑﺮ ﺑﺎ ‪ sum٢‬ﺑﻮد ”‪ ”Yes‬و اﮔﺮ ﻧﺒﻮد ”‪ ”No‬ﭼﺎپ‬
‫ﮐﻨﯿﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪15 2‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪Yes‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪23 3‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪No‬‬
‫ﺳﺆال ‪ .٨‬ﻣﺜﻠﺚ‬
‫ﺧﯿﺎم )‪ ١۵‬ﻧﻤﺮه(‬
‫ﻣﺜﻠﺚ ﺷﮑﻞ ﺷﻤﺎره ‪ ١‬ﺑﻪ ﻣﺜﻠﺚ ﺧﯿﺎم‪ -‬ﭘﺎﺳﮑﺎل ﻣﺸﻬﻮر اﺳﺖ‪ .‬ﻫﺮ ﻋﻀﻮ اﯾﻦ ﻣﺜﻠﺚ‪ ،‬ﺑﺮاﺑﺮ ﺑﺎ ﻣﺠﻤﻮع دو ﻋﻀﻮ ﺑﺎﻻﯾﯽ آن در ﺳﻄﺮ ﺑﺎﻻﺳﺖ؛‬
‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬در ﺳﻄﺮ ﭼﻬﺎرم‪ ،‬ﻋﺪد ‪ ٣‬از ﻣﺠﻤﻮع اﻋﺪاد ‪ ١‬و ‪ ٢‬در ﺳﻄﺮ ﺑﺎﻻﯾﯽ ﺑﻪ دﺳﺖ آﻣﺪه اﺳﺖ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﯾﮏ ﻋﺪد ﺻﺤﯿﺢ از ورودی ﮔﺮﻓﺘﻪ و ﻣﺜﻠﺚ ﺧﯿﺎم را ﺗﺎ آن ﺳﻄﺮ ﺗﺸﮑﯿﻞ دﻫﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪6‬‬
‫‪۴‬‬
‫ﺷﮑﻞ ‪ :١‬ﻣﺜﻠﺚ ﺧﯿﺎم‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪1‬‬
‫‪3 1‬‬
‫‪6 4 1‬‬
‫‪10 10 5 1‬‬
‫ﺳﺆال ‪ .٩‬ﻣﺤﺎﺳﺒﻪ ﺟﻤﻼت‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫ﻓﯿﺒﻮﻧﺎﭼﯽ )‪ ١۵‬ﻧﻤﺮه(‬
‫ﻣﯽﺧﻮاﻫﯿﻢ ﻋﺪدی را از ﮐﺎرﺑﺮ درﯾﺎﻓﺖ ﮐﺮده و ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ ﮐﻢﮐﺮدن ﺑﺰرگﺗﺮﯾﻦ ﻋﺪد ﻣﻤﮑﻦ از دﻧﺒﺎﻟﻪ ﻓﯿﺒﻮﻧﺎﭼﯽ آن را ﮐﻮﭼﮏ ﮐﻨﯿﻢ و اﯾﻦ‬
‫روﻧﺪ را ﺗﺎ آﻧﺠﺎ اداﻣﻪ دﻫﯿﻢ ﺗﺎ ﻋﺪد داده ﺷﺪه ﺻﻔﺮ ﺷﻮد‪ .‬ﺷﻤﺎره ﺟﻤﻼتِ ﻓﯿﺒﻮﻧﺎﭼﯽ ﮐﻪ از ﻋﺪد ﮐﻢ ﺷﺪه اﻧﺪ‪ ،‬ﺧﺮوﺟﯽ اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﻫﺴﺘﻨﺪ‪.‬‬
‫دﻧﺒﺎﻟﻪی ﻓﯿﺒﻮﻧﺎﭼﯽ را ﻧﯿﺰ ﺑﺎ اﻋﺪاد ‪ ١٣ ٨ ۵ ٣ ٢ ١‬و‪ ...‬در ﻧﻈﺮ ﻣﯽﮔﯿﺮﯾﻢ؛ ﺑﻨﺎﺑﺮاﯾﻦ ﻋﺪد ‪ ،١٣‬ﺟﻤﻠﻪی ﺷﺸﻢ دﻧﺒﺎﻟﻪی ﻓﯿﺒﻮﻧﺎﭼﯽ ﺧﻮاﻫﺪ‬
‫ﺑﻮد‪ .‬ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺧﺮوﺟﯽ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت ﻧﺰوﻟﯽ ﻣﺮﺗﺐ ﺷﺪه ﺑﺎﺷﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪88‬‬
‫‪ ١ + ٣ + ٨ + ٢١ + ۵۵ = ٨٨‬ﮐﻪ اﯾﻦ اﻋﺪاد ﺑﻪ ﺗﺮﺗﯿﺐ ﺟﻤﻼت ‪ ١ ٣ ۵ ٧ ٩‬دﻧﺒﺎﻟﻪی ﻓﯿﺒﻮﻧﺎﭼﯽ ﻫﺴﺘﻨﺪ‪.‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪9 7 5 3 1‬‬
‫‪۵‬‬
‫ﺳﺆال ‪ .١٠‬ﺣﻠﺰون‬
‫ﻣﺨﺘﺼﺎﺗﯽ )‪ ١۵‬ﻧﻤﺮه(‬
‫ﺷﮑﻞ زﯾﺮ‪ ،‬ﯾﮏ ﺣﻠﺰون ﻣﺨﺘﺼﺎﺗﯽ را ﻧﺸﺎن ﻣﯽدﻫﺪ‪ .‬ﻫﺮ ﺣﻠﺰون ﻣﺨﺘﺼﺎﺗﯽ ﺑﺎ اﻧﺪازهی ‪ n‬از ﺷﻤﺎرهی ﯾﮏ در ﻣﺮﮐﺰ ﻣﺨﺘﺼﺎت ﺷﺮوع ﻣﯽﺷﻮد‬
‫و ﻃﺒﻖ ﺗﺼﻮﯾﺮ زﯾﺮ ﻃﯽ‪ ‬ﻣﺴﯿﺮ ﻣﯽﮐﻨﺪ‪.‬‬
‫ﻣﯽﺧﻮاﻫﯿﻢ ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻋﺪد ‪ n‬را از ﮐﺎرﺑﺮ درﯾﺎﻓﺖ ﮐﻨﺪ و ﺳﭙﺲ ﻣﺨﺘﺼﺎت آن ﻧﻘﻄﻪ را ﺑﻪ ﮐﺎرﺑﺮ ﺗﺤﻮﯾﻞ دﻫﺪ‪.‬‬
‫ﺷﮑﻞ ‪ :٢‬ﺣﻠﺰون ﻣﺨﺘﺼﺎﺗﯽ‬
‫ﻧﻤﻮﻧﻪ ورودی‪:‬‬
‫‪14‬‬
‫ﺷﻤﺎرهی ﯾﮏ در ﻣﺒﺪأ ﻣﺨﺘﺼﺎت ﻗﺮار ﻣﯽﮔﯿﺮد و ﺷﻤﺎره دو در ﻧﻘﻄﻪی )‪ (١ ٠‬و ﺷﻤﺎرهی ﺳﻪ در ﻧﻘﻄﻪی )‪ (١ ١‬و ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ ﭘﯿﺶ‬
‫ﻣﯽرود ﺗﺎ در ﻧﻬﺎﯾﺖ‪ ،‬ﻧﻘﻄﻪی ‪ ١۴‬در )‪ (۴ -٣‬ﻗﺮار ﻣﯽﮔﯿﺮد‪.‬‬
‫ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ‪:‬‬
‫‪4 -3‬‬
‫‪۶‬‬