ﻣﺒﺎﻧﯽ ﺑﺮﻧﺎﻣﻪﺳﺎزي ﭘﺎﯾﺘﻮن ﻧﯿﻢﺳﺎل دوم 93-92 ﻣﺪرس :ﺑﯽﻧﻈﯿﺮ ﺑﯿﮕﻠﺮي داﻧﺸﮑﺪهي ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ ﭘﺮوژه ﻓﺎز اول ﻣﻬﻠﺖ ارﺳﺎل 18 :ﻓﺮوردﯾﻦ ﻣﺎه ﺑﻪ ﻣﻮارد زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ: • ﺑﻪ ﻋﻨﻮان ﻓﺎﯾﻞ ﻧﻬﺎﯾﯽ ﯾﮏ ﻓﺎﯾﻞ ﭘﺎﯾﺘﻮن ﺑﻪ ﺻﻮرت .pyارﺳﺎل ﮐﻨﯿﺪ. • ﻓﺎﯾﻞ ﻫﺎ در ﺳﺎﻣﺎﻧﻪ ﺟﺎج ﺑﺎرﮔذاري ﺧﻮاﻫﻨﺪ ﺷﺪ اﻣﺎ ﺗﺼﺤﯿﺢ ﺧﻮدﮐﺎر ﻧﺨﻮاﻫﺪ داﺷﺖ .آدرس و ﻧﺤﻮه ي ﮐﺎرﮐﺮد ﺑﺎ آن در piazzaاﻋﻼم ﺷﺪه اﺳﺖ. • ﺑﺎ ﻫﺮﮔﻮﻧﻪ ﺗﻘﻠﺐ ﺑﺮﺧﻮرد ﺟﺪي ﺧﻮاﻫﺪ ﺷﺪ .ﻓﺮد ﺧﺎﻃﯽ −100ﻧﻤﺮه ﺑﻪ ازاي ﻫﻤﺎن ﺗﻤﺮﯾﻦ درﯾﺎﻓﺖ ﺧﻮاﻫﺪ ﮐﺮد و در ﺻﻮرت ﺗﮑﺮار ﺑﺮﺧﻮردﻫﺎي ﺷﺪﯾﺪﺗﺮي را در ﭘﯽ ﺧﻮاﻫﺪ داﺷﺖ. • ﻫﺮﮔﻮﻧﻪ ﺳﻮال ﻣﺮﺑﻮط ﺑﻪ ﺗﻤﺮﯾﻦ ﻫﺎ را ﺑﺎ ﻣﻮﺿﻮع ﻣﻨﺎﺳﺐ در ﺻﻔﺤﻪ درس در ﺳﺎﯾﺖ piazzaﻣﻄﺮح ﮐﻨﯿﺪ. • ﺑﺎ ﻫﺮﮔﻮﻧﻪ ﺗﻼش در ﺟﻬﺖ دﺳﺘﺮﺳﯽ ﻏﯿﺮﻗﺎﻧﻮﻧﯽ ﺑﻪ ﺳﺮور ﺟﺎج ﺑﺮﺧﻮرد ﺟﺪي ﺧﻮاﻫﺪ ﺷﺪ. • ﮐﺎﻣﻨﺖ ﮔﺬاري و ﻧﺎمﮔﺬاري ﻣﻨﺎﺳﺐ ﻣﺘﻐﯿﺮﻫﺎ اﻟﺰاﻣﯽﺳﺖ و ﺑﺨﺸﯽ زﯾﺎدي از ﻧﻤﺮهي ﺷﻤﺎ را ﻣﺸﺨﺺ ﻣﯽﮐﻨﺪ. ﭘﯿﻤﺎن ﻓﺨﺎرﯾﺎن ،ﻣﻬﺮان ﻣﺤﻤﻮدي ﮔﺮوه ﭘﺮوژه 1 1 ﭼﮑﯿﺪه ﭘﺮوژهي اﯾﻦ ﺗﺮم ﺷﻤﺎ ،ﻃﺮاﺣﯽ ﯾﮏ ﺷﺒﯿﻪﺳﺎز ﺳﺎده ﺑﺮاي ﻣﺸﺎﻫﺪه و آزﻣﺎﯾﺶ ﺑﺮ روي ﮔﺎزﻫﺎﺳﺖ .در ﻓﺎز اول ﺷﻤﺎ ﺗﻨﻬﺎ ﯾﮏ دﯾﺪِ ﮐﻠﯽ ﻧﺴﺒﺖ ﺑﻪ ﭘﺮوژه ﭘﯿﺪا ﻣﯽﮐﻨﯿﺪ ،در ﻓﺎز دوم ﺗﻮاﺑﻊ ﻣﻮرد ﻧﯿﺎز را ﭘﯿﺎدهﺳﺎزي و در ﻓﺎز ﺳﻮم آنﻫﺎ را ﺑﺮ اﻧﻮاع ﻣﺨﺘﻠﻔﯽ از ﻣﻮﻟﮑﻮلﻫﺎ آزﻣﺎﯾﺶ ﻣﯽﮐﻨﯿﺪ و ﻧﺘﺎﯾﺞ ﺑﻪ دﺳﺖ آﻣﺪه را ﺗﺤﻠﯿﻞ ﻣﯽﮐﻨﯿﺪ. ﺑﻪ ﻫﯿﭻ وﺟﻪ از ﭘﺮوژه ﻧﺘﺮﺳﯿﺪ! ﭘﺮوژه ﮐﺎﻣﻼ ﺑﺮاﺳﺎس ﻣﻔﺎﻫﯿﻢ ﺷﯿﻤﯽ و ﻓﯿﺰﯾﮑﯽ اﺳﺖ ﮐﻪ در دﺑﯿﺮﺳﺘﺎن داﺷﺘﻪاﯾﺪ و اﮔﺮ ﮔﺎﻫﯽ ﻣﻄﻠﺒﯽ ﻓﺮاﺗﺮ از ﺳﻄﺢ دﺑﯿﺮﺳﺘﺎن ﮔﻔﺘﻪ ﺷﺪه ،ﺗﻮﺿﯿﺤﺎت و ﻓﺮﻣﻮلﻫﺎي آن ﻧﯿﺰ آورده ﺷﺪه اﺳﺖ .ﻫﻤﭽﻨﯿﻦ ﭘﺮوژه ،ﺷﺎﯾﺪ ﮐﻪ در ﻇﺎﻫﺮ ﺳﺨﺖ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ اﻣﺎ وﻗﺘﯽ ﺑﻪ ﺳﺮاغ ﺑﺨﺶ ﮐﺪزﻧﯽ آن ﺑﺮوﯾﺪ ،ﻣﺘﻮﺟﻪ ﺧﻮاﻫﯿﺪ ﺷﺪ ﮐﻪ ﺑﺴﯿﺎر از آنﭼﻪ ﻓﮑﺮ ﻣﯽﮐﺮدهاﯾﺪ ،آﺳﺎنﺗﺮ اﺳﺖ .ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ وﻗﺖ ﻣﻨﺎﺳﺒﯽ را ﺻﺮف آن ﮐﻨﯿﺪ. ﻫﻤﭽﻨﯿﻦ ﭘﺮوژهي ﺷﻤﺎ ،ﺗﻮاﻧﺎﯾﯽ اراﺋﻪﺷﺪن در ﺻﻨﻌﺖ را دارد .ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ ﮐﻤﯽ ﻋﻼﻗﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ و روي آن ﺑﯿﺶﺗﺮ ﮐﺎر ﮐﻨﯿﺪ ﺗﺎ ﺑﺘﻮاﻧﯿﺪ آن را ﺑﻌﺪﻫﺎ ﮔﺴﺘﺮش دﻫﯿﺪ و ﺣﺘﯽ ﺑﻪ ﺑﺎزار اراﺋﻪ دﻫﯿﺪ! 2 ﻗﻮاﻧﯿﻦ ﮔﺎزﻫﺎ ﻫﻤﺎنﻃﻮر ﮐﻪ ﻣﯽداﻧﯿﺪ ،ﺑﺮرﺳﯽ ﮔﺎزﻫﺎ در ﺳﻄﺢ ﻣﻮﻟﮑﻮﻟﯽ ﺑﻪ دو ﺻﻮرت اﯾﺪهآل و ﻏﯿﺮ اﯾﺪهآل اﻧﺠﺎم ﻣﯽﺷﻮد .ﻋﻮاﻣﻞ زﯾﺎدي ﺑﺮ ﻣﻮﻟﮑﻮلﻫﺎ ﺗﺎﺛﯿﺮﮔﺬارﻧﺪ .از ﺟﻤﻠﻪي اﯾﻦ ﻋﻮاﻣﻞ ﻣﯽﺗﻮان ﺑﻪ ﮐﻨﺶﻫﺎي ﺑﯿﻦ ﻣﻮﻟﮑﻮﻟﯽ اﺷﺎره ﮐﺮد .در ﺣﺎﻟﺖ ﮐﻠﯽ ،اﯾﻦ ﻣﻘﺎدﯾﺮ درون ﺳﯿﺴﺘﻤﯽ ،ﻫﺮﭼﻨﺪ ﮐﻪ ﺑﺮ ﻋﻮاﻣﻞ ﺑﯿﺮوﻧﯽ و ﺧﺮوﺟﯽﻫﺎي ﻣﻮرد ﻧﯿﺎز در ﻋﻠﻢ ﺷﯿﻤﯽ )ﻣﺎﻧﻨﺪ ﻓﺸﺎر ﮔﺎز در ﻣﺤﻔﻈﻪ( ﺗﺎﺛﯿﺮﮔﺬارﻧﺪ وﻟﯽ ﻣﻌﻤﻮﻻ از ﺑﺮرﺳﯽ آنﻫﺎ ﺻﺮف ﻧﻈﺮ ﻣﯽﺷﻮد .در اﯾﻦ ﺻﻮرت ﺑﺮرﺳﯽ ﮔﺎزﻫﺎ را در ﺣﺎﻟﺖ اﯾﺪهآل ﮔﻮﯾﻨﺪ و ﮐﻨﺶﻫﺎي درون ﻣﻮﻟﮑﻮﻟﯽ ،ﺑﯿﻦ ﻣﻮﻟﮑﻮﻟﯽ و ﻗﻄﺒﯿﺖ ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ ﻣﯽﺷﻮد ﻋﻮاﻣﻞ ﻣﻮﺛﺮ ﺑﺮ ﺣﺠﻢ ﻣﺸﺨﺼﯽ از ﻣﻮﻟﮑﻮلﻫﺎ ،ﺑﻪ ﭼﻬﺎر ﻋﺎﻣﻞ ﻓﺸﺎر ،دﻣﺎ ،ﺣﺠﻢ و ﺗﻌﺪاد ﻣﻮﻟﮑﻮلﻫﺎ ﺑﺴﺘﮕﯽ دارد. 1.2 ﻗﺎﻧﻮن ﺑﻮﯾﻞ ﻗﺎﻧﻮن ﺑﻮﯾﻞ ﻧﺸﺎن ﻣﯽدﻫﺪ ﮐﻪ در دﻣﺎي ﺛﺎﺑﺖ ،ﺣﺎﺻﻞ ﺿﺮب ﻓﺸﺎر و ﺣﺠﻢ ﯾﮏ ﮔﺎز آرﻣﺎﻧﯽ ﻫﻤﻮاره ﺛﺎﺑﺖ اﺳﺖ .اﯾﻦ ﻗﺎﻧﻮن در ﺳﺎل 1662ﻣﻨﺘﺸﺮ ﺷﺪ .درﺳﺘﯽ اﯾﻦ ﻗﺎﻧﻮن را ﻣﯽﺗﻮان ﺑﺎ ﮐﻤﮏ ﯾﮏ ﻇﺮف ﺑﺎ ﺣﺠﻢ ﻣﺘﻐﯿﺮ و ﯾﮏ ﻓﺸﺎرﺳﻨﺞ ﻣﻮرد آزﻣﺎﯾﺶ ﻗﺮار داد .ﻫﻤﭽﻨﯿﻦ ﺑﻪ ﮐﻤﮏ ﻣﻨﻄﻖ ﻧﯿﺰ ﻣﯽﺗﻮان درﯾﺎﻓﺖ ﮐﻪ ﻇﺮﻓﯽ ﮐﻪ ﺗﻌﺪاد ﺛﺎﺑﺘﯽ ﻣﻮﻟﮑﻮل ﮔﺎز در آن ﻗﺮار دارد ،در اﺛﺮ ﮐﺎﻫﺶ ﺣﺠﻢ ﻇﺮف ،ﻣﻮﻟﮑﻮلﻫﺎي ﮔﺎزي درون آن ﺗﻌﺪاد دﻓﻌﺎت ﺑﯿﺸﺘﺮي در ﯾﮑﺎي زﻣﺎن ﺑﺎ دﯾﻮارهﻫﺎي ﻇﺮف ﺑﺮﺧﻮرد ﻣﯽﮐﻨﻨﺪ و ﺑﺎﻋﺚ ﺑﺎﻻ رﻓﺘﻦ ﻓﺸﺎر ﻣﯽﺷﻮﻧﺪ .راﺑﻄﻪي رﯾﺎﺿﯽ ﻗﺎﻧﻮن ﺑﻮﯾﻞ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ ،ﮐﻪ در آن Pﻓﺸﺎر و Vﺣﺠﻢ ﮔﺎز اﺳﺖ. P1 V1 = P2 V2 )(1 ﺷﮑﻞ :1ﻗﺎﻧﻮن ﺑﻮﯾﻞ 2 2.2 ﻗﺎﻧﻮن ﺷﺎرل ﻗﺎﻧﻮن ﺷﺎرل ﯾﺎ ﻗﺎﻧﻮن ﺣﺠﻢﻫﺎ ،ﻧﺨﺴﺘﯿﻦ ﺑﺎر در ﺳﺎل 1678ﺑﺪﺳﺖ آﻣﺪ .اﯾﻦ ﻗﺎﻧﻮن ﻣﯽﮔﻮﯾﺪ ﮐﻪ ﺑﺮاي ﯾﮏ ﮔﺎز ﮐﺎﻣﻞ ﯾﺎ آرﻣﺎﻧﯽ در ﻓﺸﺎر ﺛﺎﺑﺖ، ﺣﺠﻢ ﺑﺎ دﻣﺎي ﻣﻄﻠﻖ ﮔﺎز )در ﮐﻠﻮﯾﻦ( ﻧﺴﺒﺖ ﻣﺴﺘﻘﯿﻢ دارد. V1 V2 = T1 T2 )(2 ﮐﻪ در آن Vﺣﺠﻢ و Tدﻣﺎ اﺳﺖ. ﺑﺎ ﮐﻤﮏ ﻧﻈﺮﯾﻪي ﺟﻨﺒﺸﯽ ﻣﯽﺗﻮان درﺳﺘﯽ اﯾﻦ ﻣﻄﻠﺐ را ﺛﺎﺑﺖ ﮐﺮد .ﻫﻤﭽﻨﯿﻦ ﺑﺎ ﮔﺮم و ﺳﺮد ﮐﺮدن ﯾﮏ ﻇﺮف ﺑﺎ ﺣﺠﻢ ﻣﺘﻐﯿﺮ ﻧﯿﺰ ﻣﯽﺗﻮان اﯾﻦ ﻗﺎﻧﻮن را ﻣﻮرد آزﻣﺎﯾﺶ ﻗﺮار داد. ﺷﮑﻞ :2ﻗﺎﻧﻮن ﺷﺎرل از راﺑﻄﻪﻫﺎي 1و ،2راﺑﻄﻪي زﯾﺮ ﺑﻪ دﺳﺖ ﻣﯽآﯾﺪ: )(3 P1 P2 = T1 T2 ﮐﻪ در آن Vﺣﺠﻢ و Tدﻣﺎ اﺳﺖ. 3.2 ﻗﺎﻧﻮن ﺗﺮﮐﯿﺐ ﮔﺎزﻫﺎ در ﺣﺎﻟﺖ اﯾﺪهآل ،ﻣﻌﺎدﻟﻪي ﻋﻤﻮﻣﯽ ﮔﺎزﻫﺎ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ: P V = nRT )(4 ﮐﻪ در اﯾﻦ ﻣﻌﺎدﻟﻪ Pﻓﺸﺎر V ،ﺣﺠﻢ n ،ﺗﻌﺪاد ﻣﻮل ﮔﺎز ﻣﻮﺟﻮد در ﻓﻀﺎي ﻣﻮرد ﻧﻈﺮ T ،دﻣﺎ و Rﺛﺎﺑﺖ ﻋﻤﻮﻣﯽ ﮔﺎزﻫﺎﺳﺖ .ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﻓﺮﻣﻮل ﻣﯽﺗﻮان ﮔﺎزﻫﺎ را در ﺣﺎﻟﺖ اﯾﺪهآل ﺑﺮرﺳﯽ ﮐﺮد. 4.2 ﮐﻨﺶﻫﺎي ﺑﯿﻦ ﻣﻮﻟﮑﻮﻟﯽ ﻫﺮ ﻣﻮﻟﮑﻮل در ﺟﺎي ﺧﻮد ﻧﻤﯽاﯾﺴﺘﺪ! ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻧﯿﺮوي داﻓﻌﻪ ﺑﯿﻦ ﻣﻮﻟﮑﻮلﻫﺎ ،ﻧﯿﺮوي ﺟﺎذﺑﻪي ﺑﯿﻦ ﻣﻮﻟﮑﻮلﻫﺎي ﻗﻄﺒﯽ ،اﻧﺮژي ﺟﻨﺒﺸﯽ ﻣﻮﺟﻮد در ﻫﺮ ذره و ...ﻣﻮﻟﮑﻮلﻫﺎ داﺋﻢ در ﺣﺎل ﺣﺮﮐﺖ ﻫﺴﺘﻨﺪ .ﺑﺮاي ﺗﺤﻠﯿﻞ وﻗﺎﯾﻊ در ﺳﻄﺢ ﻣﻮﻟﮑﻮﻟﯽ ،ﺑﺎﯾﺪ ازﯾﻦ ﮐﻨﺶﻫﺎ ﺑﺎﺧﺒﺮ ﺑﻮد .ﺑﺮاي ﺳﺎدهﺳﺎزيِ ﭘﺮوژهي ﺷﻤﺎ ،اﯾﻦ ﮐﻨﺶﻫﺎ و واﮐﻨﺶﻫﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﺸﺪه و ﺗﻨﻬﺎ ﺑﺨﺶ ﻣﺮﺑﻮط ﺑﻪ واﮐﻨﺶ ﮐﻠﯽ ﻣﻮﻟﮑﻮلﻫﺎ ﻧﺴﺒﺖ ﺑﻪ دﻣﺎ و ﺗﺎﺛﯿﺮ آن ﺑﺮ اﻧﺮژي ﺟﻨﺒﺸﯽ و ﺳﺮﻋﺖ ﻣﻮﻟﮑﻮلﻫﺎ ﻣﻄﺮح ﺷﺪه اﺳﺖ. ﺑﻨﺎﺑﺮاﯾﻦ ﺷﻤﺎ ﺑﺎﯾﺪ در ﻫﺮ ﻟﺤﻈﻪ ،ﺑﺮﺧﻮرد ﻣﻮﻟﮑﻮلﻫﺎ را ﻧﯿﺰ ﭘﯿﺶﺑﯿﻨﯽ ﮐﻨﯿﺪ و ﺳﺮﻋﺖ ﺣﺮﮐﺖ ﻫﺮ ﻣﻮﻟﮑﻮل را ﺑﺮ ﺣﺴﺐ دﻣﺎي آن ﭘﯿﺪا ﮐﻨﯿﺪ .ﺑﺮاي اﯾﻦ ﮐﺎر ﺑﺎﯾﺪ از ﻓﺮﻣﻮل زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ: 1 2 3 mv = kT )(5 2 2 3 ﮐﻪ در آن Tدﻣﺎ ﺑﺮ ﺣﺴﺐ ﮐﻠﻮﯾﻦ m ،ﺟﺮم ﻣﻮﻟﮑﻮل v ،ﺳﺮﻋﺖ و kﺛﺎﺑﺖ ﺑﻮﻟﺘﺰﻣﻦ اﺳﺖ. وﻟﯽ ﮐﺎر ﺷﻤﺎ ﺗﻨﻬﺎ ﺑﻪ ﺗﻐﯿﯿﺮات ﺳﺮﻋﺖ ﺑﺮ اﺛﺮ ﺗﻐﯿﯿﺮ دﻣﺎ ﻣﺤﺪود ﻧﻤﯽﺷﻮد .ﻫﺮﭼﻨﺪ ﮐﻪ ﺳﺮﻋﺖ ﻣﻮﻟﮑﻮل در ﺣﺮﮐﺘﺶ ﺛﺎﺑﺖ اﺳﺖ وﻟﯽ در اﺛﺮ ﺑﺮﺧﻮرد ﺑﺎ ﻣﻮﻟﮑﻮلﻫﺎي دﯾﮕﺮ دﭼﺎر ﺗﻐﯿﯿﺮ ﺳﺮﻋﺖ ﻣﯽﺷﻮد .ﻫﺮ ﻣﻮﻟﮑﻮل ﺟﺮم و ﺳﺮﻋﺖ ﻣﺸﺨﺺ دارد و در ﺑﺮﺧﻮرد ﺑﺎ دﯾﮕﺮ ﻣﻮﻟﮑﻮلﻫﺎ ،ﺳﺮﻋﺖ و ﺟﻬﺖ ﺣﺮﮐﺖ آن ﺗﻐﯿﯿﺮ ﻣﯽﮐﻨﺪ .ﺑﺮاي ﺑﻪ دﺳﺖ آوردن ﺳﺮﻋﺖ ﻣﻮﻟﮑﻮلﻫﺎ ﭘﺲ از ﺑﺮﺧﻮرد ،از ﻗﺎﻧﻮن ﭘﺎﯾﺴﺘﮕﯽ ﺗﮑﺎﻧﻪ در ﺑﺮﺧﻮرد ﮐﺸﺴﺎن اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﺷﮑﻞ :3ﻗﺎﻧﻮن ﭘﺎﯾﺴﺘﮕﯽ ﺗﮑﺎﻧﻪ در ﺑﺮﺧﻮرد ﮐﺸﺴﺎن 3 ﺻﻮرت ﭘﺮوژه ﭘﺮوژهي ﺷﻤﺎ ،ﻃﺮاﺣﯽ ﯾﮏ ﺷﺒﯿﻪﺳﺎز ﻣﻮﻟﮑﻮﻟﯽ در ﺣﺎﻟﺖ اﯾﺪهآل اﺳﺖ ،ﺑﻪ ﻃﻮري ﮐﻪ ﺑﺘﻮان در ﻫﺮ ﻟﺤﻈﻪ ،ﺑﺎ ﺗﻐﯿﯿﺮات دﻣﺎ ،ﻓﺸﺎر و ﺳﺎﯾﺮ ﻣﻮاردي ﮐﻪ ﮔﻔﺘﻪ ﺷﺪ ،رﻓﺘﺎر ﻣﻮﻟﮑﻮل را ﭘﯿﺶﺑﯿﻨﯽ ﮐﺮد .ﻫﻤﭽﻨﯿﻦ ﭘﺮوژهي ﺷﻤﺎ ﺑﺎﯾﺪ رﯾﺰرﻓﺘﺎر ﻣﻮﻟﮑﻮلﻫﺎ را در ﺣﺎﻟﺘﯽ دﯾﮕﺮ ﻧﺸﺎن دﻫﺪ .در اﯾﻦ رﯾﺰرﻓﺘﺎر، ﻣﮑﺎن ﻫﺮ ﻣﻮﻟﮑﻮل در ﻓﻀﺎي دوﺑﻌﺪي و ﺳﺮﻋﺖ آن ﺑﺎﯾﺪ ﻣﺸﺨﺺ ﺑﺎﺷﺪ و در ﺻﻮرت ﺑﺮﺧﻮرد ﻣﻮﻟﮑﻮلﻫﺎ ،ﺳﺮﻋﺖ آنﻫﺎ و ﻣﮑﺎﻧﺸﺎن آﭘﺪﯾﺖ ﺷﻮد. اﺣﺘﻤﺎﻻ اﻵن ﺧﯿﻠﯽ از ﭘﺮوژه ﺗﺮﺳﯿﺪهاﯾﺪ! اﺻﻼ ﻧﺘﺮﺳﯿﺪ! ﭘﺮوژهي ﺷﻤﺎ ﺧﯿﻠﯽ راﺣﺖﺗﺮ از آن ﭼﯿﺰي اﺳﺖ ﮐﻪ ﻓﮑﺮش را ﻣﯽﮐﻨﯿﺪ. در اﯾﻦ ﻣﺮﺣﻠﻪ از ﭘﺮوژه ،ﻧﯿﺎزي ﺑﻪ ﮐﺪزدنﻫﺎي ﺑﺰرگ ﻧﯿﺴﺖ .ﻧﯿﺎزي ﺑﻪ ﻧﻮﺷﺘﻦ ﺑﺪﻧﻪي ﺗﻮاﺑﻊ ﻧﯿﺴﺖ .ﻧﯿﺎز ﺑﻪ ﻃﺮاﺣﯽ ﻣﺎژولﻫﺎي ﺧﺎﺻﯽ ﻧﯿﺴﺖ. ﻧﯿﺎزي ﺑﻪ ﻫﯿﭻ واﺣﺪ ﮔﺮاﻓﯿﮑﯽ ﻧﯿﺴﺖ! ﮐﺎر ﺷﻤﺎ در اﯾﻦ ﻣﺮﺣﻠﻪ ﻓﮑﺮ ﮐﺮدن روي ﭘﺮوژه اﺳﺖ و اﯾﻦﮐﻪ در ﻓﺎزﻫﺎي ﺑﻌﺪي ﭼﮕﻮﻧﻪ آن را ﭘﯿﺎدهﺳﺎزي ﮐﻨﯿﺪ .اﻃﻼﻋﺎت ﭘﺮوژه ﺑﻪ ﻃﻮر ﮐﻠﯽ در زﯾﺮ آﻣﺪه اﺳﺖ. 1.3 اﻃﻼﻋﺎت .1ﭘﺮوژهي ﺷﻤﺎ دو ﺣﺎﻟﺖ دارد .ﯾﮑﯽ ﺣﺎﻟﺖ ﮔﺎز اﯾﺪهآل اﺳﺖ ﮐﻪ ﺑﺎ ﺣﺠﻢ زﯾﺎدي از ﮔﺎزﻫﺎ )ﭼﻨﺪﯾﻦ ﻣﻮل( ﺳﺮوﮐﺎر دارﯾﺪ .دﯾﮕﺮي ﺣﺎﻟﺖ ﻣﻮﻟﮑﻮﻟﯽ اﺳﺖ .در اﯾﻦ ﺣﺎﻟﺖ ،ﺗﻨﻬﺎ ﺑﺎ ﭼﻨﺪ ﻣﻮﻟﮑﻮل ﮐﺎر ﻣﯽﮐﻨﯿﺪ. .2در ﺣﺎﻟﺖ ﮔﺎز اﯾﺪهآل ،ﯾﮏ ﺣﺠﻢ ﻣﻌﯿﻦ ﺑﺎ ﻣﻘﺪار ﻣﺸﺨﺼﯽ از ﮔﺎز ﻣﻮرد ﻧﻈﺮ در دﻣﺎي ﻣﺸﺨﺺ ﺑﻪ ﺷﻤﺎ داده ﻣﯽﺷﻮد .ﻣﻤﮑﻦ اﺳﺖ ﮐﻪ ﺑﺮاي ﺷﺒﯿﻪﺳﺎزي ،ﻧﯿﺎز ﺷﻮد ﮐﻪ ﺑﻌﻀﯽ ازﯾﻦ ﻣﻘﺎدﯾﺮ ﺑﻪ ﺻﻮرت رﻧﺪوم از ﺳﻮي ﺧﻮد ﺷﻤﺎ در ﺑﺮﻧﺎﻣﻪ داده ﺷﻮد و ﯾﺎ ﮐﺎرﺑﺮ ﺧﻮد ﺑﺨﻮاﻫﺪ ﮐﻪ ﺑﻪ ﺷﻤﺎ ﻣﻘﺪار دﻫﺪ. .3ﮐﺎرﺑﺮ ﻣﯽﺗﻮاﻧﺪ ﺑﻪ ﺑﺮﻧﺎﻣﻪي ﺷﻤﺎ ﺑﺮاي ﺗﻐﯿﯿﺮ در دﻣﺎ ،ﺣﺠﻢ ،ﻓﺸﺎر و ﯾﺎ ﻣﻮلﻫﺎي ﮔﺎزي ﺷﻤﺎ ﻋﺪدي وارد ﮐﻨﺪ .در اﯾﻦ ﺻﻮرت ﻋﺪد داده ﺷﺪه ،ﺟﺎﯾﮕﺰﯾﻦ ﻣﻘﺪار ﻗﺒﻠﯽ ﻣﯽﺷﻮد .ﻣﻤﮑﻦ اﺳﺖ ﮐﻪ ﮐﺎرﺑﺮ ﺑﻪ ﺟﺎي واردﮐﺮدن ﯾﮏ ﻋﺪد ،ﯾﮏ ﻓﺮﻣﻮل ﻣﺎﻧﻨﺪ 1/01x + 2وارد ﮐﻨﺪ. در اﯾﻦ ﺻﻮرت ﺑﺎﯾﺪ ﻣﺘﻐﯿﺮ ﻣﻮرد ﻧﻈﺮ ﺑﻪ ﺷﮑﻞ ﮔﻔﺘﻪ ﺷﺪه ﺗﻐﯿﯿﺮ ﮐﻨﺪ. .4ﮐﺎرﺑﺮ در ﻫﺮ ﻣﺮﺣﻠﻪ ﻣﯽﺗﻮاﻧﺪ ﭼﻨﺪﯾﻦ ﺗﻐﯿﯿﺮ را )ﻣﺜﻼ ﻫﻢ در دﻣﺎ و ﻫﻢ در ﺣﺠﻢ( اﻋﻤﺎل ﮐﻨﺪ و ﺳﭙﺲ ﻧﺘﯿﺠﻪ را ﻣﺸﺎﻫﺪه ﮐﻨﺪ. 4 .5ﮐﺎرﺑﺮ ﻣﯽﺗﻮاﻧﺪ ﺗﻐﯿﯿﺮات را در ﻃﻮل زﻣﺎن اﻋﻤﺎل ﮐﻨﺪ؛ در اﯾﻦ ﺻﻮرت ورودي ﮐﺎرﺑﺮ ﺑﺮاي ﯾﮏ ﻣﺘﻐﯿﺮ ﻓﺮﻣﻮﻟﯽ ﺑﺮ ﺣﺴﺐ زﻣﺎن )ﻣﺜﻼ (1/001tاﺳﺖ و ﭘﺲ از آن زﻣﺎن ﻣﺸﺨﺼﯽ )ﻣﺜﻼ (20را وارد ﻣﯽﮐﻨﺪ .در اﯾﻦ ﺻﻮرت ،ﻣﺘﻐﯿﺮ ﻣﻮرد ﻧﻈﺮ در ﻫﺮ ﺛﺎﻧﯿﻪ ﺑﺮ ﺣﺴﺐ ﻓﺮﻣﻮل ﮔﻔﺘﻪ ﺷﺪه ،آﭘﺪﯾﺖ ﻣﯽﺷﻮد. .6ﺗﻤﺎﻣﯽ ﻋﻤﻠﯿﺎتﻫﺎي آﭘﺪﯾﺖ ﭘﺎراﻣﺘﺮﻫﺎ )ﻣﺜﻞ ﻓﺸﺎر و (...ﺑﺮ ﺣﺴﺐ ﻓﺮﻣﻮلﻫﺎي ﮔﻔﺘﻪ ﺷﺪه در اﺑﺘﺪاي اﯾﻦ ﭘﺮوژه اﻧﺠﺎم ﻣﯽﺷﻮد. .7در ﺣﺎﻟﺖ ﻣﻮﻟﮑﻮﻟﯽ ﭘﺮوژه ،ﺗﻨﻬﺎ ﺑﺎ ﺗﻌﺪادي ﻓﺮﻣﻮل ﻣﺮﺑﻮط ﺑﻪ ﺗﮑﺎﻧﻪ و ﯾﮏ ﻓﺮﻣﻮل ﻣﺮﺑﻮط ﺑﻪ راﺑﻄﻪي دﻣﺎ و ﺳﺮﻋﺖ ﮐﻪ در ﺑﺎﻻ ﮔﻔﺘﻪ ﺷﺪ، ﺳﺮوﮐﺎر دارﯾﻢ. .8وروديﻫﺎي اﯾﻦ ﺣﺎﻟﺖ ،ﺗﻌﺪادي ﻣﻮﻟﮑﻮل ﺑﺎ ﺟﺮم ،ﺳﺮﻋﺖ ﺛﺎﺑﺖ و ﻣﮑﺎن ﻣﺸﺨﺺ اﺳﺖ .ﺑﺪﯾﻬﯽ اﺳﺖ ﮐﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﯾﻦﮐﻪ ﻓﻀﺎ دوﺑﻌﺪي اﺳﺖ ،ﻣﮑﺎن و ﺳﺮﻋﺖ ﺑﺎ دو ﭘﺎراﻣﺘﺮ ﺑﻪ ﺻﻮرت xو yﺑﯿﺎن ﻣﯽﺷﻮد. .9ﺷﻤﺎ ﺗﻨﻬﺎ ﺑﺎﯾﺪ در زﻣﺎنﻫﺎي ﻣﺸﺨﺺ ﺑﺎ اﺳﺘﻔﺎده از ﺳﺮﻋﺖ و ﻣﮑﺎن ﻓﻌﻠﯽ ،ﻣﮑﺎن آﯾﻨﺪه را ﻣﺸﺨﺺ ﮐﻨﯿﺪ و در ﺻﻮرﺗﯽ ﮐﻪ ﺑﺮﺧﻮرد ﺑﯿﻦ ﻣﻮﻟﮑﻮلﻫﺎ روي دﻫﺪ ،ﺑﺎ اﺳﺘﻔﺎده از ﻗﺎﻧﻮن ﭘﺎﯾﺴﺘﮕﯽ ﺗﮑﺎﻧﻪ )ﮐﻪ در اﺑﺘﺪاي اﯾﻦ ﭘﺮوژه آﻣﺪه ﺑﻮد( ﺳﺮﻋﺖ ﺟﺪﯾﺪ را ﺑﻪ دﺳﺖ آورﯾﺪ. .10ﻋﻼوه ﺑﺮ ﻣﻮرد ﻗﺒﻠﯽ ،ﺗﻨﻬﺎ ﻋﺎﻣﻠﯽ ﮐﻪ ﻣﯽﺗﻮاﻧﺪ ﺳﺮﻋﺖ را ﺗﻐﯿﯿﺮ دﻫﺪ ،ﺗﻐﯿﯿﺮات دﻣﺎﺳﺖ .دﻣﺎ ﺗﻨﻬﺎ ﺑﻪ ﺻﻮرت ﯾﮏ ﻋﺪد داده ﻣﯽﺷﻮد و در اﯾﻦ ﺣﺎﻟﺖ ،ورودي ،ﺗﺎﺑﻊ ﻧﺨﻮاﻫﺪ ﺑﻮد. .11دو ﺣﺎﻟﺖ ﭘﺮوژه ﮐﺎﻣﻼ ﻣﺴﺘﻘﻞ از ﻫﻤﺪﯾﮕﺮﻧﺪ .در ﺣﻘﯿﻘﺖ وﻗﺘﯽ ﮐﻪ در ﺣﺎﻟﺖ ﮔﺎز اﯾﺪهآل ﻫﺴﺘﯿﻢ ،ﭘﺮوژه ﺑﻪ ﺣﺎﻟﺖِ ﻣﻮﻟﮑﻮﻟﯽ ﻧﻤﯽرود و ﺑﺮﻋﮑﺲ. .12ﺑﺮﻧﺎﻣﻪي ﺷﻤﺎ ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ﮐﺎرﺑﺮ دﺳﺘﻮر ﭘﺎﯾﺎن ﺑﺪﻫﺪ اداﻣﻪ ﭘﯿﺪا ﻣﯽﮐﻨﺪ وﻟﯽ در ﻟﺤﻈﺎﺗﯽ ﮐﻪ ﺑﺮﻧﺎﻣﻪ ﻣﺸﻐﻮل اﺟﺮاي ﯾﮏ ﭘﺮدازش اﺳﺖ )ﻣﺜﻼ ﺑﺮاي 20ﺛﺎﻧﯿﻪ ،ﺗﻐﯿﯿﺮات را ﺑﺮ ﺣﺴﺐ زﻣﺎن اﻋﻤﺎل ﻣﯽﮐﻨﺪ( از ﮐﺎرﺑﺮ دﺳﺘﻮري ﻧﻤﯽﮔﯿﺮد. 2.3 ﺧﺮوﺟﯽ در اﯾﻦ ﻓﺎز ﭘﺮوژه ،ﺷﻤﺎ ﻧﻪ ﻗﺮار اﺳﺖ ﮐﻪ ﮐﺪزﻧﯽ ﺧﺎﺻﯽ ﮐﻨﯿﺪ ،ﻧﻪ ﻗﺮار اﺳﺖ ﮐﻪ اﻟﮕﻮرﯾﺘﻢ ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ و ﻧﻪ ﺑﺪﻧﻪي ﻫﯿﭻ ﺗﺎﺑﻌﯽ را ﺑﻨﻮﯾﺴﯿﺪ .ﺗﻨﻬﺎ ﻣﻮاردي ﮐﻪ از ﺷﻤﺎ ﻣﯽﺧﻮاﻫﯿﻢ ،اﯾﻦ اﺳﺖ ﮐﻪ ﺑﺮ روي روﻧﺪ ﮐﻠﯽ ﭘﺮوژه ﻓﮑﺮ ﮐﻨﯿﺪ .وﻗﺘﯽ ﺑﻪ ﻧﺘﯿﺠﻪ رﺳﯿﺪﯾﺪ ﮐﻪ ﻣﯽﺧﻮاﻫﯿﺪ ﭼﻪ ﮐﻨﯿﺪ ،ﻣﺎژولﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺧﻮد را ﻣﺸﺨﺺ ﮐﻨﯿﺪ و در ﭼﻨﺪ ﻓﺎﯾﻞ ﭘﺎﯾﺘﻮن ،اﺳﮑﻠﺖ ﺗﻮاﺑﻊ ﻣﺮﺑﻮط ﺑﻪ آن ﻣﺎژولﻫﺎ را ﻣﺸﺨﺺ ﮐﻨﯿﺪ .اﺳﮑﻠﺖ ﺷﺎﻣﻞ اﺳﻢ ﺗﺎﺑﻊ ﻫﻤﺮاه ﺑﺎ وروديﻫﺎ و ﺧﺮوﺟﯽﻫﺎ ،ﮐﺎﻣﻨﺖﮔﺬاري ﻣﺮﺑﻮط ﺑﻪ ﻫﺮ ﺗﺎﺑﻊ ،داكاﺳﺘﺮﯾﻨﮓ و ﺗﺮﺟﯿﺤﺎ ﺗﻮﺿﯿﺢ درﺑﺎرهي اﻟﮕﻮرﯾﺘﻤﯽ ﺑﺎﺷﺪ ﮐﻪ در آن ﻗﺴﻤﺖ ﻗﺼﺪ اﺳﺘﻔﺎده از آن را دارﯾﺪ .ﻣﻌﺮﻓﯽ ﻣﺘﻐﯿﺮﻫﺎي ورودي و ﺧﺮوﺟﯽ ﻧﯿﺰ در ﮐﺎﻣﻨﺘﻬﺎي ﺷﻤﺎ ﺑﺎﯾﺪ ذﮐﺮ ﺷﻮد .ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﻧﻤﺮهي اﯾﻦ ﻓﺎز از ﭘﺮوژهي ﺷﻤﺎ ﺑﺮ اﺳﺎسِ ﻣﺪل ﮐﻠﯽ ﻃﺮح ﻣﺎژولﻫﺎ و ﺗﻮاﺑﻌﺘﺎن اﺳﺖ؛ ﺑﻨﺎﺑﺮاﯾﻦ ﺳﻌﯽ ﮐﻨﯿﺪ ﮐﻪ ﺗﻮاﺑﻊ ﻣﺘﻌﺪدي ﺑﺮاي وﻇﯿﻔﻪﻫﺎي ﻣﺘﻌﺪد ﺗﻌﯿﯿﻦ ﮐﻨﯿﺪ .ﻫﻤﭽﻨﯿﻦ ﺑﺨﺶ زﯾﺎدي از ﻧﻤﺮهي اﯾﻦ ﻓﺎز ﺑﻪ ﮐﺎﻣﻨﺖﮔﺬاريِ ﺷﻤﺎ و ﺗﻮﺿﯿﺤﺎﺗﺘﺎن ﻣﺮﺑﻮط ﻣﯽﺷﻮد؛ ﺑﻨﺎﺑﺮاﯾﻦ در دادن ﺗﻮﺿﯿﺢ و ﮐﺎﻣﻨﺖﮔﺬاري ،ﺻﺮﻓﻪﺟﻮﯾﯽ ﻧﮑﻨﯿﺪ ،ﺑﻠﮑﻪ ﺣﺘﯽ اﺳﺮاف ﻧﯿﺰ ﺟﺎﯾﺰ اﺳﺖ! ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﻧﻤﻮﻧﻪي زﯾﺮ دﻗﺖ ﮐﻨﯿﺪ .ﮐﺎﻣﻨﺖﻫﺎي ﺷﻤﺎ ﺑﻪ ﻫﺮ ﺷﮑﻠﯽ ﮐﻪ ﻣﯽﺧﻮاﻫﯿﺪ ﻣﯽﺗﻮاﻧﻨﺪ ﺑﺎﺷﻨﺪ؛ ﻓﻘﻂ ﺑﺎﯾﺪ ﮐﺎﻣﻞ ﺑﺎﺷﻨﺪ. def x_intercept (m, b): """ Return the x intercept of the line y=m*x+b. The x intercept of a line is the point at which it crosses the x axis (y=0). Parametes : m -- slope or gradient of the line b -- y- intercept of the line """ return -b / m #m cannot be zero 5 ﻧﻤﻮﻧﻪﻫﺎﯾﯽ از ﺗﻮاﺑﻌﯽ ﮐﻪ ﻣﯽﺗﻮاﻧﯿﺪ ﺑﻨﻮﯾﺴﯿﺪ ،در زﯾﺮ آﻣﺪه اﺳﺖ: • ﺗﺎﺑﻌﯽ ﮐﻪ ﻣﺴﺌﻮل ﺗﻮﻟﯿﺪ اﻋﺪاد ﺗﺼﺎدﻓﯽ ﺑﺮاي ﺣﺠﻢ و دﻣﺎ اﺳﺖ .اﯾﻦ ﺗﺎﺑﻊ ،ﯾﮏ ورودي درﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ و اﮔﺮ ورودي ﺻﻔﺮ ﺑﺎﺷﺪ ،ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﯽ ،ﻋﺪدي ﺑﯿﻦ 250-1000ﺗﻮﻟﯿﺪ ﻣﯽﮐﻨﺪ و ﺑﻪ ﻋﻨﻮان دﻣﺎ آن را ﺑﺮﻣﯽﮔﺮداﻧﺪ .ﭼﻨﺎﻧﭽﻪ ورودي ﺑﺮاﺑﺮ ﺑﺎ ﯾﮏ ﺑﺎﺷﺪ ،ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﯽ ﻋﺪدي ﺑﯿﻦ 1-10ﺗﻮﻟﯿﺪ و آن را ﺑﻪ ﻋﻨﻮان ﺣﺠﻢ ﺑﺮﻣﯽﮔﺮداﻧﺪ. • ﺗﺎﺑﻌﯽ ﮐﻪ ﯾﮏ رﺷﺘﻪ )ﻓﺮﻣﻮل ،ﻣﺜﻼ (1/01x + 2و ﯾﮏ ﻋﺪد ﺑﻪ ﻋﻨﻮان ورودي )ﻣﺜﻼ (5درﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ و ﻣﻘﺪار ﺟﺪﯾﺪ را ﻣﻄﺎﺑﻖ ﻓﺮﻣﻮل داده ﺷﺪه ﻣﺤﺎﺳﺒﻪ ﻣﯽﮐﻨﺪ )در اﯾﻦ ﻣﺜﺎل ،ﻋﺪدِ 7/05را ﺑﺮﻣﯽﮔﺮداﻧﺪ( • ﺗﺎﺑﻌﯽ ﮐﻪ ﻃﺒﻖ ﻓﺮﻣﻮل ﺑﻮﯾﻞ ،ﺳﻪ ﻋﺪد ﺑﻪ ﻋﻨﻮان ﻓﺸﺎر اوﻟﯿﻪ و ﺣﺠﻢ اوﻟﯿﻪ و ﺛﺎﻧﻮﯾﻪ درﯾﺎﻓﺖ و ﺑﺎ ﻣﺤﺎﺳﺒﻪ ﻣﻄﺎﺑﻖ ﻗﺎﻧﻮن ﺑﻮﯾﻞ ،ﻓﺸﺎر ﺛﺎﻧﻮﯾﻪ را ﺑﺮﻣﯽﮔﺮداﻧﺪ. • ﺗﺎﺑﻌﯽ ﮐﻪ ﺑﻪ ﻋﻨﻮان ورودي دو ﻋﺪد ﺑﺮاي ﺟﺮم و دﻣﺎ درﯾﺎﻓﺖ ﻣﯽﮐﻨﺪ و ﺑﺎ اﺳﺘﻔﺎده از آنﻫﺎ و ﻗﻮاﻧﯿﻦِ ﮐﻨﺶ ﺑﯿﻦﻣﻮﻟﮑﻮﻟﯽِ ﮔﻔﺘﻪ ﺷﺪه در ﭘﺮوژه ،ﺳﺮﻋﺖ ﻣﻮﻟﮑﻮل را ﺑﺮﻣﯽﮔﺮداﻧﺪ. ﺑﺎز ﻫﻢ ﺗﻮﺟﻪ ﺷﻮد ﮐﻪ در اﯾﻦ ﻓﺎز ﭘﺮوژه ،ﻧﯿﺎزي ﺑﻪ ﭘﯿﺎدهﺳﺎزيِ ﻫﯿﭻ ﺗﺎﺑﻌﯽ ﻧﯿﺴﺖ .ﺗﻨﻬﺎ ﻣﻄﺎﺑﻖ ﻧﻤﻮﻧﻪي ﻣﺸﺨﺺ ﺷﺪه در ﻣﺴﺘﻄﯿﻞِ ﺑﺎﻻ ،ﺗﺎﺑﻊ را ﺗﻌﺮﯾﻒ ،ﻧﺎم آن را ﻣﻌﯿﻦ ،وروديﻫﺎ و ﺧﺮوﺟﯽﻫﺎي آن را ﻣﺸﺨﺺ ﮐﻨﯿﺪ و ﺑﺮاي آن داكاﺳﺘﺮﯾﻨﮓ ﺑﻨﻮﯾﺴﯿﺪ. 6
© Copyright 2025 Paperzz