تمرین چهارم مبانی کامپیوتر و برنامهنویسی (پاییز 1403)
Document Details
Uploaded by Deleted User
دانشکده مهندسی برق و کامپیوتر دانشگاه تهران
1403
Tags
Summary
این اسناد شامل تمرینات مبانی کامپیوتر و برنامهنویسی به زبان C برای دانشجویان مهندسی برق و کامپیوتر دانشگاه تهران در نیمسال اول 1403 است. این تمرینات شامل طراحی الگوریتمها و پیادهسازی آنها به زبان C است.
Full Transcript
ﺑﻪ ﻧﺎم ﺧﺪا د اﻧﺸ ﮑ ﺪ ه ﻣ ﻬ ﻨ ﺪ ﺳ ﯽ ﺑﺮ ق و ﮐ ﺎﻣ ﭙ ﯿ ﻮ ﺗ ﺮ د اﻧﺸ ﮑ ﺪ ﮔ ﺎ ن ﻓ ﻨ ﯽ د اﻧﺸ ﮕ ﺎه ﺗ ﻬ ﺮ ا ن ﻣ ﺒ ﺎ...
ﺑﻪ ﻧﺎم ﺧﺪا د اﻧﺸ ﮑ ﺪ ه ﻣ ﻬ ﻨ ﺪ ﺳ ﯽ ﺑﺮ ق و ﮐ ﺎﻣ ﭙ ﯿ ﻮ ﺗ ﺮ د اﻧﺸ ﮑ ﺪ ﮔ ﺎ ن ﻓ ﻨ ﯽ د اﻧﺸ ﮕ ﺎه ﺗ ﻬ ﺮ ا ن ﻣ ﺒ ﺎﻧﯽ ﮐ ﺎﻣ ﭙ ﯿ ﻮ ﺗ ﺮ و ﺑﺮ ﻧﺎﻣ ﻪ ﺳ ﺎ ز ي اﺳ ﺘ ﺎد :د ﮐ ﺘ ﺮ ﻫ ﺎ ﺷ ﻤ ﯽ و د ﮐ ﺘ ﺮ ﻣ ﺮ اد ي ﺗﻤ ﺮ ﯾﻦ ﭼ ﻬ ﺎرم ﻧﯿﻤﺴﺎل اول 04-03 7 ).1ﻧ ﻤ ﺮ ه ( ا ﻟ ﻒ 4 ) -ﻧﻤ ﺮ ه ( اﻟﮕ ﻮ ر ﯾﺘ ﻤ ﯽ ر ا ﺑﺎ اﺳ ﺘ ﻔ ﺎد ه از ﻓﻠﻮ ﭼ ﺎر ت ﻧﻤ ﺎ ﯾﺶ د ﻫ ﯿ ﺪ ﮐ ﻪ ﺗﻌ ﺪ اد ار ﻗ ﺎم ﯾﮏ ﻋ ﺪ د ﺻ ﺤ ﯿ ﺢ ﻏ ﯿ ﺮ ﻣ ﻨ ﻔ ﯽ ر ا ﺷ ﻤ ﺮ د ه و ر و ي ﺻ ﻔ ﺤ ﻪ ﭼ ﺎ پ ﻧﻤ ﺎ ﯾ ﺪ . ب 3 ) -ﻧ ﻤ ﺮ ه ( ﺑ ﺎ ا ﺳ ﺘ ﻔ ﺎ د ه ا ز ا ﻟ ﮕ ﻮ ر ﯾ ﺘ ﻢ ﺑ ﻨ ﺪ ا ﻟ ﻒ ،ﺗ ﺎ ﺑ ﻊ ز ﯾ ﺮ ر ا ﺑ ﻪ ز ﺑ ﺎ ن Cﻃ ﻮ ر ي ﺑ ﻨ ﻮ ﯾ ﺴ ﯿ ﺪ ﮐ ﻪ ﺗ ﻌ ﺪ اد ا ر ﻗ ﺎ م ﻋ ﺪ د ﺻ ﺤ ﯿ ﺢ ﻏ ﯿ ﺮ ﻣ ﻨ ﻔ ﯽ nر ا ،ﮐ ﻪ ﺑﻪ ﻋ ﻨ ﻮ ان آ ر ﮔ ﻮ ﻣ ﺎ ن و ر و د ي د ر ﯾ ﺎ ﻓ ﺖ ﻣ ﯽ ﮐ ﻨ ﺪ ،ﺷ ﻤ ﺎر ش ﻧﻤ ﻮ د ه و ﻧﺘ ﯿ ﺠ ﻪ ر ا د ر ﻗ ﺎ ﻟﺐ ﻣ ﻘ ﺪ ار ﺑﺮﮔﺸﺘﯽ ﺑﺎزﮔﺮداﻧﺪ. {)int NumofDigits(int n } 6 ).2ﻧ ﻤ ﺮ ه ( ا ﻟ ﻒ 4 ) -ﻧﻤ ﺮ ه ( اﻟﮕ ﻮ ر ﯾﺘ ﻤ ﯽ ر ا ﺑﺎ اﺳ ﺘ ﻔ ﺎد ه از ﻓﻠﻮ ﭼ ﺎر ت ﻧﻤ ﺎ ﯾﺶ د ﻫ ﯿ ﺪ ﮐ ﻪ د و ﻋ ﺪ د ر ا از ﮐ ﺎرﺑﺮ د ر ﯾ ﺎ ﻓﺖ ﻧﻤ ﻮ د ه و ﻋ ﺪ د او ل ر ا ﺑﻪ ﺗ ﻮ ان ﻋ ﺪ د د و م ﺑﺮ ﺳ ﺎﻧ ﺪ .د ر اﯾ ﻦ اﻟﮕ ﻮ ر ﯾﺘ ﻢ ﺑ ﺎ ﯾ ﺪ ﺗ ﻮ ان ر ا ﭘﯿ ﺎ د هﺳ ﺎ ز ي ﮐ ﻨ ﯿ ﻢ . ب 3)-ﻧﻤﺮه( ﺑﺮ ﻣﺒﻨﺎي اﻟﮕﻮرﯾﺘﻢ ﺑﻨﺪ اﻟﻒ ،ﺗﺎﺑﻊ زﯾﺮ را ﺑﻪ زﺑﺎن Cﻃﻮري ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ دو آرﮔﻮﻣﺎن ورودي base و expرا درﯾﺎﻓﺖ ﮐﺮده و آرﮔﻮﻣﺎن اول را ﺑﻪ ﺗﻮان آرﮔﻮﻣﺎن دوم ﺑﺮﺳﺎﻧﺪ و ﺣﺎﺻﻞ را در ﻗﺎﺑﻞ ﻣﻘﺪار ﺑﺎزﮔﺸﺘﯽ ﺑﺮﮔﺮداﻧﺪ.در ﻧﻮﺷﺘﻦ اﯾﻦ ﺗﺎﺑﻊ ﻧﻤﯽﺗﻮاﻧﯿﻢ از ﺗﺎﺑﻊ ﮐﺘﺎﺑﺨﺎﻧﻪاي )( powﺑﺮاي ﺗﻮان اﺳﺘﻔﺎده ﮐﻨﯿﻢ و ﺑﺎﯾﺪ ﻣﺸﺎﺑﻪ ﺑﻨﺪ اﻟﻒ ﺗﻮ ان ر ا ﺑﺎ ﯾﮏ ﺣ ﻘ ﻪ ﭘﯿ ﺎد ه ﺳ ﺎ ز ي ﮐ ﻨ ﯿ ﻢ . {)int PowerCalculator(int base,int exp } 13).3ﻧﻤﺮه( اﻟﻒ 3) -ﻧﻤﺮه( در ﺳﻮال 6ﺗﻤﺮﯾﻦ دوم ﺑﺎ اﻟﮕﻮرﯾﺘﻢ اﻋﺪاد Armstrongآﺷﻨﺎ ﺷﺪﯾﺪ.اﯾﻦ اﻟﮕﻮرﯾﺘﻢ را ﺑﺎ اﺳﺘﻔﺎده از د و ﺗ ﺎﺑﻊ ﺳ ﻮ ال ﻫ ﺎ ي 1و 2اﯾﻦ ﺗ ﻤ ﺮ ﯾﻦ د ر ﻗ ﺎ ﻟ ﺐ ﯾ ﮏ ﻓ ﻠ ﻮ ﭼ ﺎ ر ت ﺑ ﺎ ز ﻧ ﻮ ﯾ ﺴ ﯽ ﮐ ﻨ ﯿ ﺪ . ب 10)-ﻧﻤﺮه( ﺑﺎ اﺳﺘﻔﺎده از ﺗﻮاﺑﻊ ﺳﻮال 1و 2ﺗﺎﺑﻊ زﯾﺮ را در زﺑﺎن Cﻃﻮري ﮐﺎﻣﻞ ﮐﻨﯿﺪ ﮐﻪ ﻣﺸﺨﺺ ﮐﻨﺪ ﻋﺪد nﮐﻪ ﺑﻪ ﻋﻨﻮان آرﮔﻮﻣﺎن درﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ Armstrongاﺳﺖ ﯾﺎ ﺧﯿﺮ.در ﺻﻮرﺗﯽ ﮐﻪ ﻋﺪد Armstrong ا ﺳ ﺖ ﻣ ﻘ ﺪ ا ر ﯾ ﮏ و د ر ﻏ ﯿ ﺮ ا ﯾ ﻦ ﺻ ﻮ ر ت ﻣ ﻘ ﺪ ا ر ﺻ ﻔ ﺮ ر ا ﺑ ﺮ ﮔ ﺮ د اﻧ ﺪ . {)int isArmstrong(int n } |Page1 (ﺎﯾ 1403 +- , 2).4ﻧﻤﺮه( دو ﻣﻮرد از اﺷﮑﺎﻻت اﺳﺘﻔﺎده از void functionرا ﺗﻮﺿﯿﺢ دﻫﯿﺪ. .5ﺳﻮال اﻣﺘﯿﺎزي ** ) 15ﻧﻤﺮه( ﻗﺼﺪ دارﯾﻢ ﺑﺎ رد ﺷﺪن از ﭼﻨﺪ ﻣﺎﻧﻊ از ﻧﻘﻄﻪ aﺑﻪ bﺑﺮوﯾﻢ.اﯾﻨﮑﻪ ﺑﺎ ﭼﻨﺪ ﻣﺎﻧﻊ روﺑﺮو ﻫﺴﺘﯿﻢ را ﮐﺎرﺑﺮ ﻣﺸﺨﺺ ﻣﯽﮐﻨﺪ.اﮔﺮ ﻓﺮض ﮐﻨﯿﻢ ﺗﻨﻬﺎ ﻣﯽﺗﻮاﻧﯿﻢ ﺑﺎ ﻫﺮ ﭘﺮش 1ﯾﺎ ﺣﺪاﮐﺜﺮ دو ﻣﺎﻧﻊ را ﭘﺸﺖ ﺳﺮ ﺑﮕﺬارﯾﻢ، ﻣﯽﺧﻮاﻫﯿﻢ ﺑﺒﯿﻨﯿﻢ ﺑﻪ ﭼﻨﺪ ﻃﺮﯾﻖ ﻣﯿﺘﻮاﻧﯿﻢ از aﺑﻪ bﺑﺮﺳﯿﻢ. اﮔﺮ ﮐﺎرﺑﺮ ﻋﺪد ﺻﻔﺮ را اﻧﺘﺨﺎب ﻧﻤﻮد ﯾﮏ راه ﺑﺮاي رﺳﯿﺪن ﺑﻪ ﻣﻘﺼﺪ دارﯾﻢ. ﻣ ﺜ ﺎ ل :ﺗ ﻌ ﺪ اد ﻣ ﻮ اﻧ ﻊ = 3 ﺣ ﺎ ﻟﺖ او ل :ﺑ ﺎ ﺳ ﻪ ﭘ ﺮ ش ﮐ ﻪ د ر ﻫ ﺮ ﭘ ﺮ ش ا ز ﯾ ﮏ ﻣ ﺎ ﻧ ﻊ ﻋ ﺒ ﻮ ر ﻣ ﯽ ﮐ ﻨ ﯿ ﻢ ﺑ ﻪ ﻣ ﻘ ﺼ ﺪ ﺑ ﺮ ﺳ ﯿ ﻢ . ﺣ ﺎ ﻟﺖ د و م :ﭘ ﺮ ش او ل ا ز ﯾ ﮏ ﻣ ﺎ ﻧ ﻊ و ﭘ ﺮ ش د و م ا ز د و ﻣ ﺎ ﻧ ﻊ ﻋ ﺒ ﻮ ر ﮐ ﻨ ﯿ ﻢ . ﺣ ﺎ ﻟﺖ ﺳ ﻮ م :ﭘ ﺮ ش او ل ا ز د و ﻣ ﺎ ﻧ ﻊ و ﭘ ﺮ ش د و م ا ز د و ﻣ ﺎ ﻧ ﻊ ﻋ ﺒ ﻮ ر ﮐ ﻨ ﯿ ﻢ . ﭘﺲ ﺑﻪ ازاي n=3ﺑﻪ ﺳﻪ ﻃﺮﯾﻖ ﻣﯿﺘﻮان ﺑﻪ ﻣﻘﺼﺪ رﺳﯿﺪ. ا ﻟ ﻒ ( ) 9ﻧﻤ ﺮ ه ( ﻓ ﻠ ﻮ ﭼ ﺎ ر ت اﯾﻦ ﻣ ﺴ ﺎ ﻟﻪ ر ا ﭘﯿ ﺎد ه ﮐ ﻨ ﯿ ﺪ . ب ( ) 6ﻧﻤ ﺮ ه ( اﻟﮕ ﻮ ر ﯾﺘ ﻢ ﻗ ﺴ ﻤ ﺖ اﻟﻒ ر ا د ر زﺑﺎن cﭘﯿ ﺎد ه ﺳ ﺎز ي ﮐ ﻨ ﯿ ﺪ . { )int NumberofWays(int } |Page2 (ﺎﯾ 1403 +- , " د ر ﺗ ﺤ ﻮ ﯾ ﻞ ﺗ ﻤ ﺮ ﯾ ﻦ ،ﺣ ﺘ ﻤ ﺎ ﺑ ﻪ ﻧﮑ ﺎ ت ز ﯾ ﺮ ﺗ ﻮ ﺟ ﻪ ﻧ ﻤ ﺎ ﯾ ﯿ ﺪ : $ # vﻫ ﯿ ﭻ ﮔ ﻮ ﻧ ﻪ ﺷ ﺒ ﺎ ﻫ ﺘ ﯽ د ر اﻧ ﺠ ﺎ م ﺗ ﻤ ﺮ ﯾ ﻦ ﺑﯿ ﻦ ا ﻓ ﺮ ا د ﻣ ﺨ ﺘ ﻠ ﻒ ﭘ ﺬ ﯾ ﺮ ﻓ ﺘ ﻪ ﻧ ﻤ ﯽ ﺷ ﻮ د .د ر ﺻ ﻮ ر ت ﮐ ﺸ ﻒ ﻫ ﺮ ﮔ ﻮ ﻧ ﻪ ﺗ ﻘ ﻠ ﺐ ﻣ ﻄ ﺎﺑﻖ ﻗ ﻮ اﻧﯿ ﻦ د ر س ﺑ ﺎ اﻓ ﺮ اد ﺧ ﺎ ﻃ ﯽ ﺑﺮ ﺧ ﻮ ر د ﺧ ﻮ اﻫ ﺪ ﺷ ﺪ . oﭘﯿﺸﻨﻬﺎد ﻣﯽ ﺷﻮد از اﻣﮑﺎن رﻓﻊ اﺷﮑﺎل ﺧﺼﻮﺻﯽ ،ﺣﺪاﮐﺜﺮ اﺳﺘﻔﺎده را ﻧﻤﺎﯾﯿﺪ! vﭘﺎﺳﺦ ﻫﺮ ﭘﺮﺳﺸﯽ ﮐﻪ اﻣﮑﺎن آﭘﻠﻮد ﺑﺮاي آﻧﻬﺎ ﻓﺮاﻫﻢ ﺷﺪه اﺳﺖ را ﺑﻪ ﺻﻮرت ﯾﮏ ﻓﺎﯾﻞ .pdfو ﺑﺎ ﻧﺎم StdIDآﭘﻠﻮد ﻧﻤﺎﯾﯿﺪ).ﮐﻪ StdIDﺷﻤﺎره داﻧﺸﺠﻮﯾﯽ ﺷﻤﺎﺳﺖ.ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل اﮔﺮ ﺷﻤﺎره داﻧﺸﺠﻮﯾﯽ ﮐﺴﯽ 810101517ﺑﺎﺷﺪ ،ﻓﺎﯾﻞ ﺑﺎرﮔﺬاري ﺷﺪه او ﺑﺎﯾﺪ ﺑﻪ ﻧﺎم HW4_810101517ﺑﺎﺷﺪ( vﻣﻬﻠﺖ ﺗﺤﻮﯾﻞ ﺗﻤﺮﯾﻦ ﺗﺎ 1403/9/6ﻣﯽ ﺑﺎﺷﺪ. oﺗﻤﺮﯾﻦ ﺗﻨﻬﺎ در ﺳﺎﻣﺎﻧﻪ Elearnدرﯾﺎﻓﺖ ﺧﻮاﻫﺪ ﺷﺪ و از اﯾﻤﯿﻞ آن ﺧﻮدداري ﻧﻤﺎﯾﯿﺪ. oﻣ ﻬ ﻠ ﺖ ﺗ ﺤ ﻮ ﯾ ﻞ ﺗ ﻤ ﺮ ﯾ ﻦ ،ﺗ ﻤ ﺪ ﯾ ﺪ ﻧ ﺨ ﻮ اﻫ ﺪ ﺷ ﺪ ؛ د ر ﻣ ﻨ ﻈ ﻢ ﺑ ﻮ د ن ﺗ ﺤ ﻮ ﯾ ﻞ ،ﮐ ﻮ ﺷ ﺎ ﺑ ﺎ ﺷ ﯿ ﺪ . vﭘﺲ از ﻣﻄﺎﻟﻌﻪ ﮐﺎﻣﻞ ﺗﻤﺮﯾﻦ ،در ﺻﻮرت ﻫﺮﮔﻮﻧﻪ اﺑﻬﺎم از ﻃﺮﯾﻖ اﯾﻤﯿﻞ [email protected]ﺑﺎ ﻣﺎ در ار ﺗﺒ ﺎط ﺑ ﺎ ﺷ ﯿ ﺪ . oﻣ ﻮ ﺿ ﻮ ع ا ﯾ ﻤ ﯿ ﻞ ر ا ﺑ ﻪ ﺻ ﻮ ر ت ﺗ ﻤ ﺮ ﯾ ﻦ ﺷ ﻤ ﺎ ر ه - 4ﺳ ﻮ ا ل د ر ﺑ ﺎ ر ه ﺗ ﻤ ﺮ ﯾ ﻦ ﺑﻨ ﻮ ﯾ ﺴ ﯿ ﺪ . |Page3 (ﺎﯾ 1403 +- ,