ﺑﻪ ﻧﺎم ﺧﺪا ﻟﻴﺴﺖ ﭘﺮوژه ﻫﺎ درس ﻣﺒﺎﻧﻲ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﻬﻠﺖ ارﺳﺎل ﻛﺪ 4 :ﺑﻬﻤﻦ ﺳﺎﻋﺖ 23:59 ﺗﺤﻮﻳﻞ ﺣﻀﻮري 5 :و 6ﺑﻬﻤﻦ ﻟﻄﻔﺎ ﻗﺒﻞ از اﻧﺠﺎم ﭘﺮوژه ﺑﻪ ﻧﻜﺎت زﻳﺮ ﺗﻮﺟﻪ ﻓﺮﻣﺎﻳﻴﺪ: • اﮔﺮ ﺳﻮاﻟﻲ داﺷﺘﻴﺪ ﻣﻲ ﺗﻮاﻧﻴﺪ از ﻃﺮﻳﻖ ﭘﺴﺖ اﻟﻜﺘﺮوﻧﻴﻚ در ﮔﺮوه درس ﻣﻄﺮح ﻛﻨﻴﺪ) .در ﺻﻔﺤﻪ درس ﻧﺸﺎﻧﻲ ﮔﺮوپ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ(. • ﺑﻪ دﻟﺨﻮاه ﻳﻜﻲ از 3ﭘﺮوژه ي زﻳﺮ را اﻧﺘﺨﺎب ﻛﻨﻴﺪ. • در ﻧﺎﻣﮕﺬاري ﻣﺘﻐﻴﻴﺮ ﻫﺎ از ﻧﺎم ﻫﺎي ﻣﻌﻨﻲ دار اﺳﺘﻔﺎده ﻛﻨﻴﺪ .ﺑﺮاي ﻣﺜﺎل ﺑﺮاي ﻧﮕﻪ داري ﺗﻌﺪاد ،از ﻣﺘﻐﻴﺮ ﺑﺎ ﻧﺎم ﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ count ،numو ...اﺳﺘﻔﺎده ﻛﻨﻴﺪ. • در ﻣﻮاﻗﻊ ﻟﺰوم ،از ﻛﺎﻣﻨﺖ اﺳﺘﻔﺎده ﻛﻨﻴﺪ. • ﺑﻪ ﻫﻤﺮاه ﻛﺪ ﺧﻮد ،ﻳﻚ ﻓﺎﻳﻞ ﭘﻲ دي اف ،ﺷﺎﻣﻞ ﺗﻮﺿﻴﺤﺎت ﻻزم و ﻣﺴﺘﻨﺪات را ارﺳﺎل ﻛﻨﻴﺪ. • ﻛﺪ و ﻓﺎﻳﻞ ﻣﺴﺘﻨﺪات را در ﻳﻚ ﻓﻮﻟﺪر ﻗﺮار داده ،ﺑﺎ ﻋﻨﻮان project_STDID.zipﻓﺸﺮده ﻛﻨﻴﺪ و آن را ﺗﺎ ﻣﻮﻋﺪ ﻣﻘﺮر ﺑﻪ آدرس [email protected]ارﺳﺎل ﻛﻨﻴﺪ. • ﻣﻬﻠﺖ دﻗﻴﻖ ارﺳﺎل ﭘﺮوژه و ﻧﺤﻮه ي ﺗﺤﻮﻳﻞ ﺣﻀﻮري ،ﻣﺘﻌﺎﻗﺒﺎ اﻋﻼم ﺧﻮاﻫﺪ ﺷﺪ. • دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ ﻣﻬﻠﺖ ارﺳﺎل ﭘﺮوژه ﺗﻤﺪﻳﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ و ﺑﻪ ازاي ﻫﺮ روز ﺗﺎﺧﻴﺮ %25از ﻧﻤﺮه ي ﺗﻤﺮﻳﻦ ﻛﺴﺮ ﻣﻲ ﺷﻮد .ﺑﻪ ﭘﺮوژه ﻫﺎﻳﻲ ﻛﻪ ﺑﺎ ﺑﻴﺶ از 3روز ﺗﺎﺧﻴﺮ ﻓﺮﺳﺘﺎده ﺷﻮﻧﺪ ،ﻧﻤﺮه اي ﺗﻌﻠﻖ ﻧﻤﻲ ﮔﻴﺮد. • ﺗﻤﺎﻣﻲ ﭘﺮوژه ﻫﺎ ﺗﻚ ﻧﻔﺮه ﻫﺴﺘﻨﺪ. ﭘﺮوژه اول :ﺷﺒﻴﻪ ﺳﺎزي اﻛﺴﻞ در اﻳﻦ ﭘﺮوژه ﻫﺪف ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ اي اﺳﺖ ﻛﻪ ﺗﺎ ﺣﺪ زﻳﺎدي ﻣﺸﺎﺑﻪ اﻛﺴﻞ ﻋﻤﻞ ﻛﻨﺪ .ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﻛﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﻚ ﺻﻔﺤﻪ ﻣﺘﺸﻜﻞ از ﺗﻌﺪاد زﻳﺎدي ﺧﺎﻧﻪ )ﺻﺪ در ﺻﺪ( در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ در ﻫﺮ ﻟﺤﻈﻪ ﺗﻌﺪادي از آﻧﻬﺎ روي ﺻﻔﺤﻪ ﻗﺮار داده ﻣﻲ ﺷﻮﻧﺪ )ﺑﺴﺘﻪ ﺑﻪ اﻧﺪازه اي ﻛﻪ ﺷﻤﺎ ﺑﺮاي ﻫﺮ ﺧﺎﻧﻪ در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﺪ( ﺧﺎﻧﻪ ﻫﺎي اﻳﻦ اﻛﺴﻞ ﺑﺎﻳﺪ ﻫﻤﺎﻧﻨﺪاﻛﺴﻞ واﻗﻌﻲ ﻧﺎﻣﮕﺬاري ﺷﻮﻧﺪ و در ﺑﺎﻻ و ﭼﭗ ﺻﻔﺤﻪ ﻧﺸﺎن داده ﺷﻮﻧﺪ) .ﺧﺎﻧﻪ اول ﺑﺎ ﺣﺮف Aﻧﺸﺎن داده ﺷﻮد و (...اﻳﻦ ﻧﺎﻣﮕﺬاري و ﻧﺤﻮه ﻧﻤﺎﻳﺶ را دﻗﻴﻘﺎ ﺑﺎﻳﺪ ﻣﺸﺎﺑﻪ اﻛﺴﻞ اﻋﻤﺎل ﻛﻨﻴﺪ .اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺑﺎﻳﺪ ﻳﻚ ﺧﻂ ﻓﺮﻣﺎن ﻧﻴﺰ داﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ در آن ﻛﺎرﺑﺮ ﻣﻲ ﺗﻮاﻧﺪ ﻳﻚ ﻋﺪد ﻳﺎ ﻓﺮﻣﺎن را وارد ﻛﻨﺪ ﻛﻪ ﺟﻮاب ﺑﺎﻳﺪ در ﺧﺎﻧﻪ ي ﻓﻌﺎل ﻗﺮار ﮔﻴﺮد و ﻧﻤﺎﻳﺶ داده ﺷﻮد .ﻓﺮﻣﺎن ﻫﺎﻳﻲ ﻛﻪ ﻛﺎرﺑﺮ ﻣﻲ ﺗﻮاﻧﺪ وارد ﻛﻨﺪ 4دﺳﺘﻮر sum,average,max,minﻣﻲ ﺑﺎﺷﺪﻛﻪ ﺑﻪ ﺻﻮرت زﻳﺮ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﻣﻲ ﺑﺎﺷﻨﺪ: )Sum(B1:B4 or )average(A6:A10 )or max(C3:C74 ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ ﺑﻴﻨﻴﺪ اﻳﻦ دﺳﺘﻮرﻫﺎ دﻗﻴﻘﺎ ﻣﺎﻧﻨﺪ اﻛﺴﻞ واﻗﻌﻲ ﻧﻮﺷﺘﻪ ﻣﻲ ﺷﻮﻧﺪ و ﺑﻪ ﻫﻤﺎن ﻃﺮﻳﻖ ﻧﻴﺰ ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﮔﺮدﻧﺪ. ﺟﻮاب اﻳﻦ دﺳﺘﻮر ﻫﺎ ﺑﺎﻳﺪ در ﺧﺎﻧﻪ ي ﻓﻌﺎل ﺣﺎﻓﻈﻪ ﻗﺮار ﮔﻴﺮد. اﻣﻜﺎﻧﺎت اﺧﺘﻴﺎري اﻳﻦ ﻣﻮارد ﺟﻨﺒﻪ اﺿﺎﻓﻲ دارﻧﺪ و ﺑﺴﺘﻪ ﺑﻪ ﻧﻮع آﻧﻬﺎ و ﻧﺤﻮه اﺟﺮاي ﺷﻤﺎ ﻧﻤﺮه ﻣﺎزاد ﺧﻮاﻫﻨﺪ داﺷﺖ: .1ﻣﺤﺎﺳﺒﻪ ﺗﻮاﺑﻊ دﻳﮕﺮي ﭼﻮن sin,cos,exp,log,...و ﻗﺮار دادن در ﺧﺎﻧﻪ ﻓﻌﺎل .2ﻣﺤﺎﺳﺒﻪ ﺗﺮﻛﻴﺒﻲ ﺗﻮاﺑﻊ ﻛﻪ ﺷﺎﻣﻞ ﻫﺮﮔﻮﻧﻪ ﻋﻤﻠﻴﺎت ﺟﺒﺮي روي ﺗﻮاﺑﻊ ﻣﻲ ﺑﺎﺷﺪ. ))(sum(A2:A6) + average(C3:C5 .3اﻣﻜﺎن LOADو SAVEﺑﺮﻧﺎﻣﻪ ﺗﻮﺿﻴﺤﺎت ﺗﻜﻤﻴﻠﻲ: • ﺧﺎﻧﻪ ي ﻓﻌﺎل ﺑﻪ ﻃﻮر ﭘﻴﺸﻔﺮض A1اﺳﺖ. • ﺑﺮاي ﺟﺪول ،ﻳﻚ آراﻳﻪ 100*100در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ،اﻣﺎ در ﻫﺮ ﻣﺮﺣﻠﻪ ﻳﻚ زﻳﺮ آراﻳﻪ ي ﻓﻌﺎل 20*20آن را ﻧﻤﺎﻳﺶ دﻫﻴﺪ. • در ورودي ﺑﺎ ﻫﺮ ﻛﺪام از ﻛﺎراﻛﺘﺮ ﻫﺎي u,d,l,rﺑﻪ ﺗﺮﺗﻴﺐ ﺧﺎﻧﻪ ي ﻓﻌﺎل را ﻳﻚ واﺣﺪ ﺑﻪ ﺑﺎﻻ ،ﭘﺎﻳﻴﻦ ،ﭼﭗ ، راﺳﺖ ﻣﻨﺘﻘﻞ ﻛﻨﻴﺪ) .اﮔﺮ ﺑﺎ اﻳﻦ دﺳﺘﻮر ﺧﺎﻧﻪ از ﺟﺪول ﺧﺎرج ﻣﻲ ﺷﻮد ،ﻧﺒﺎﻳﺪ آن را اﻋﻤﺎل ﻛﻨﻴﺪ( • در ورودي ﺑﺎ دﺳﺘﻮر goto C5ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﻴﻢ ﺑﻪ ﺧﺎﻧﻪ ي C5ﺑﺮوﻳﺪ. • وارد ﻛﺮدن ﻫﺮ ﻛﺪام از دﺳﺘﻮرات max,sum,average, minﻣﻘﺪار ﺧﺎﻧﻪ ي ﻓﻌﺎل را ﺗﻐﻴﻴﺮ ﻣﻲ دﻫﺪ. • ﺣﻮاﺳﺘﺎن ﺑﺎﺷﺪ ﻫﻨﮕﺎم ﺗﻐﻴﻴﺮ ﻳﻚ ﺧﺎﻧﻪ ،ﺗﻤﺎم ﺧﺎﻧﻪ ﻫﺎي واﺑﺴﺘﻪ ﺑﻪ آن ﻧﻴﺰ ﺑﺎﻳﺪ ﺗﻐﻴﻴﺮ ﻛﻨﻨﺪ. ﭘﺮوژه دوم :ﺑﺎزي ﺑﺎ ﻋﺒﺎرات رﻳﺎﺿﻲ در ﻳﻚ ﻓﺎﻳﻞ ورودي ﺑﻪ ﻧﺎم Input.txtدﺳﺘﻮراﺗﻲ وﺟﻮد دارد ﻛﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﭘﺲ از آﻧﺎﻟﻴﺰ آﻧﻬﺎ ﺟﻮاﺑﻬﺎي ﻻزم را در ﻓﺎﻳﻞ Output.txtﻗﺮار دﻫﻴﺪ .اﻳﻦ دﺳﺘﻮرات ﺑﻪ دو ﺑﺨﺶ ﻣﺤﺎﺳﺒﺎﺗﻲ و ﻧﻤﺎﻳﺸﻲ ﺗﻘﺴﻴﻢ ﻣﻲ ﮔﺮدﻧﺪ : دﺳﺘﻮرات ﻣﺤﺎﺳﺒﺎﺗﻲ: اﻳﻦ دﺳﺘﻮرات ﺑﻪ دو ﻓﺮﻣﺖ ﻛﻠﻲ زﻳﺮ ﻣﻲ ﺑﺎﺷﻨﺪ: Name1 N1 Operator1 N2 Operator2 N3 Operator3 N4 Swap N1 N2 در ﻓﺮﻣﺖ اول Name 1ﻧﺎم ﻣﺘﻐﻴﺮي اﺳﺖ ﻛﻪ ﻗﺮار اﺳﺖ ﺣﺎﺻﻞ ﻋﺒﺎرت ﻣﺤﺎﺳﺒﻪ ﺷﺪه )ﺑﻪ ﺻﻮرت ﻳﻚ ﭼﻨﺪﺟﻤﻠﻪ اي ﺑﺎ ﻣﺘﻐﻴﻴﺮ ( xدر آن ﻗﺮار ﮔﻴﺮد. اﭘﺮاﺗﻮرﻫﺎ ﺷﺎﻣﻞ ﻳﻜﻲ از ﻋﻼﻣﺎت * - ، + ،ﻣﻲ ﺑﺎﺷﻨﺪ و N1,N2,N3,N4ﻣﻲ ﺗﻮاﻧﻨﺪ ﻣﺘﻐﻴﺮي از ﭘﻴﺶ ﺗﻌﺮﻳﻒ ﺷﺪه ،ﻳﻚ ﻋﺪد و ﻳﺎ ﺧﻮد xﺑﺎﺷﻨﺪ) .ﺑﻴﻦ اﭘﺮاﺗﻮرﻫﺎ و ﻣﺘﻐﻴﺮﻫﺎ ﻳﻚ ﻓﻀﺎي ﺧﺎﻟﻲ وﺟﻮد دارد ( ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ در ﻣﺤﺎﺳﺒﻪ ﻋﺒﺎرت ﻣﺮﺑﻮﻃﻪ ﺑﺎﻳﺪ اوﻟﻮﻳﺖ اﭘﺮاﺗﻮرﻫﺎ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ. ﭘﺲ در ﻧﻬﺎﻳﺖ ﻫﺮ ﻣﺘﻐﻴﺮ ﺑﺮاﺑﺮ ﻳﻚ ﭼﻨﺪﺟﻤﻠﻪ اي اﺳﺖ ﻛﻪ ﺷﻤﺎ ﺑﺎﻳﺪ آن را ﺑﻪ ﻫﺮ ﻧﺤﻮ ذﺧﻴﺮه ﻛﻨﻴﺪ. در ﻓﺮﻣﺖ دوم دﺳﺘﻮر ﺳﺒﺐ ﺟﺎﺑﺠﺎﻳﻲ رواﺑﻂ ﭼﻨﺪﺟﻤﻠﻪ اي N1 , N2ﻣﻲ ﮔﺮدد. ﺑﻪ ﻧﻤﻮﻧﻪ اي از اﻳﻦ دﺳﺘﻮرات ﺗﻮﺟﻪ ﻛﻨﻴﺪ: Temp1 1 + x * 2 Temp2 Temp1 * 2 Temp3 Temp1 + x * Temp2 – 3 Swap Temp1 Temp2 در اوﻟﻴﻦ ﺧﻂ اﺑﺘﺪا ﻣﺘﻐﻴﺮ Temp1ﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮد و ﻣﻘﺪار آن ﺑﺮاﺑﺮ 2x+1ﻗﺮار ﻣﻲ ﮔﻴﺮد .ﺳﭙﺲ ﻣﺘﻐﻴﻴﺮ Temp2ﺑﺼﻮرت دوﺑﺮاﺑﺮ (Temp2=4x+2) Temp1ﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮد و ﻧﻬﺎﻳﺘﺎ Temp3ﺑﺮاﺑﺮ 4x^2+4x-2ﻗﺮار ﻣﻴﮕﻴﺮد .ﭘﺲ از اﺟﺮاي ﺧﻂ ﭼﻬﺎرم Temp2=2x+1 ،و Temp=4x+2ﻣﻲ ﮔﺮدد. دﺳﺘﻮرات ﻧﻤﺎﻳﺸﻲ: اﻳﻦ دﺳﺘﻮرات ﺑﻪ ﺳﻪ ﺻﻮرت زﻳﺮ ﻣﻲ ﺑﺎﺷﻨﺪ: Show Name Calc Name Numeber IsEqual Name1 Name2 دﺳﺘﻮر Showراﺑﻄﻪ ي ﭼﻨﺪﺟﻤﻠﻪ اي ﻣﺮﺑﻮط ﺑﻪ ﻣﺘﻐﻴﻴﺮ nameرا ﻧﺸﺎن ﻣﻲ دﻫﺪ .دﺳﺘﻮر Calcﻣﻘﺪار ﻋﺪد اﻋﺸﺎري Numberرا ﺑﻪ ﺟﺎي xدر راﺑﻄﻪ ي ﭼﻨﺪﺟﻤﻠﻪ اي nameﻗﺮار داده ﺣﺎﺻﻞ را ﻣﻲ ﻳﺎﺑﺪ .دﺳﺘﻮر IsEqualاﮔﺮ راﺑﻄﻪ ي ﭼﻨﺪ ﺟﻤﻠﻪ اي دو ﻣﺘﻐﻴﻴﺮ Name1, Nam2ﻳﻜﺴﺎن ﺑﻮد ،در ﺧﺮوﺟﻲ yesو در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﻛﻠﻤﻪ ي noرا ﭼﺎپ ﻣﻲ ﻛﻨﺪ. ﻧﻜﺎت: • در ﻓﺎﻳﻞ ورودي Input.txtﻫﻢ دﺳﺘﻮرات ﻣﺤﺎﺳﺒﺎﺗﻲ و ﻫﻢ دﺳﺘﻮرات ﻧﻤﺎﻳﺸﻲ وﺟﻮد دارﻧﺪ .وﻟﻲ ﺑﻪ ازاي ﻫﺮ دﺳﺘﻮر ﻧﻤﺎﻳﺸﻲ ﻳﻚ ﺧﻂ ﺟﻮاب در ﻓﺎﻳﻞ ﺧﺮوﺟﻲ Output.txtﭼﺎپ ﻣﻲ ﮔﺮدد. • ﻫﺮ ﭼﻨﺪ ﺟﻤﻠﻪ اي را ﺣﺪاﻛﺜﺮ ﺗﺎ درﺟﻪ 20ﺗﻌﺮﻳﻒ ﻣﻲ ﻛﻨﻴﻢ. • از ﻋﻼﻣﺖ ﺿﺮب در ﻧﻤﺎﻳﺶ اﺳﺘﻔﺎده ﻧﻤﻲ ﺷﻮد .ﺑﺮاي ﻣﺜﺎل ﻋﺒﺎرت 2x+2را ﻧﺒﺎﻳﺪ ﺑﻪ ﺻﻮرت 2*x+2 ﻧﻮﺷﺖ. • در ﭼﺎپ ﻣﻌﺎدﻻت ﺟﺒﺮي ﺑﺎﻳﺪ ﻫﻤﻴﺸﻪ ﺗﺮﻣﻲ ﻛﻪ درﺟﻪ ﺑﻴﺸﺘﺮ دارد را زودﺗﺮ ﭼﺎپ ﻛﻨﺪ .ﺑﺮاي ﻣﺜﺎل ﻋﺒﺎرت 2x^2+2xﻫﺮﮔﺰ ﺑﻪ ﺻﻮرت 2x+2x^2ﭼﺎپ ﻧﻤﻲ ﮔﺮدد. • ﻫﺮ دو ﻓﺎﻳﻞ ورودي و ﺧﺮوﺟﻲ ﻣﺘﻨﻲ ﻫﺴﺘﻨﺪ. • دﺳﺘﻮرات ﺑﺼﻮرت ﺣﺮوف ﺑﺰرگ و ﻛﻮﭼﻚ ﻳﻜﺴﺎن ﻣﻲ ﺑﺎﺷﻨﺪ) .ﺑﺮاي ﻣﺜﺎل isEQUALﺑﺎ IsEqual ﻳﻜﺴﺎن اﺳﺖ(. • ﺗﻨﻬﺎ ﻣﺘﻐﻴﻴﺮي ﻛﻪ در ﺗﻌﺎرﻳﻒ ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ xﻣﻲ ﺑﺎﺷﺪ و ﻣﺘﻐﻴﻴﺮ ﻫﺎﻳﻲ ﻧﻈﻴﺮ … y,z,وﺟﻮد ﻧﺪارﻧﺪ. • در ﻧﻤﺎﻳﺶ ﻋﺒﺎرات ﺟﺒﺮي ﻫﻤﻴﺸﻪ در دو ﻃﺮف ﻋﻤﻠﮕﺮ ﺟﻤﻊ و ﺗﻔﺮﻳﻖ ﻳﻚ ﻓﺎﺻﻠﻪ ﻗﺮار دﻫﻴﺪ وﻟﻲ در اﻃﺮاف ﻋﻤﻠﮕﺮ ﺗﻮان ﻫﻴﭻ ﻓﺎﺻﻠﻪ اي ﻧﮕﺬارﻳﺪ. ) ﺷﻜﻞ ﺻﺤﻴﺢ 2x^2 + 2x :؛ ﺷﻜﻞ ﻏﻠﻂ(2x ^ 2+2x : ﻧﻤﻮﻧﻪ اي از ﻳﻚ ﻓﺎﻳﻞ ورودي: Temp1 1 + x * 2 Temp2 Temp1 * 2 SHOW Temp2 Calc Temp1 ‐1.2 Temp3 Temp1 + x * Temp2 – 3 isequal Temp2 Temp3 ﻧﻤﻮﻧﻪ ﻓﺎﻳﻞ ﺧﺮوﺟﻲ اﻳﻦ ورودي: 4x + 2 ‐1.4 No ﺗﻮﺿﻴﺤﺎت ﺗﻜﻤﻴﻠﻲ: • ﺑﻪ ﻋﻨﻮان ﻧﻤﺮه اﺿﺎﻓﻪ ،ﺑﺮﻧﺎﻣﻪ ﺧﻮد را ﻃﻮري ﺗﻐﻴﻴﺮ دﻫﻴﺪ ﻛﻪ ﺗﻘﺴﻴﻢ ،ﺗﻮان و ﭘﺮاﻧﺘﺰ ﮔﺬاري را ﻫﻢ در ورودي supportﻛﻨﺪ .دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ syntaxﺧﺮوﺟﻲ ﻓﺮﻗﻲ ﻧﻤﻲ ﻛﻨﺪ. ﭘﺮژه ﺳﻮم :اﻧﺒﺎر داري در اﻳﻦ ﭘﺮوژه ﺑﺮﻧﺎﻣﻪ ﻛﻨﺘﺮل ورود و ﺧﺮوج ﻛﺎﻻﻫﺎي ﺷﺮﻛﺖ ABCرا ﭘﻴﺎده ﺳﺎزي ﻣﻲ ﻛﻨﻴﻢ .دو ﻟﻴﺴﺖ در اﺧﺘﻴﺎر دارﻳﻢ .ﻳﻜﻲ ﻟﻴﺴﺖ ﻛﺎﻻ ﻫﺎ ﻛﻪ ﻧﺎم ﻫﺮ ﻛﺎﻻ در آن اﺳﺖ و دﻳﮕﺮي ﻟﻴﺴﺖ اﺳﺎﻣﻲ ﻛﻪ اﺳﻢ اﺷﺨﺎﺻﻲ ﻛﻪ ﻛﺎﻻ ﺑﻪ/از اﻧﺒﺎر وارد/ﺧﺎرج ﻣﻲ ﻛﻨﻨﺪ را ذﺧﻴﺮه ﻣﻲ ﻛﻨﺪ .ﻫﻤﭽﻨﻴﻦ ﻳﻚ ﺳﺮي ﻣﺤﻤﻮﻟﻪ ﺑﻪ اﻧﺒﺎر وارد/ﺧﺎرج ﻣﻲ ﺷﻮد .ﻋﻼوه ﺑﺮ اﻳﻦ ﻣﻲ ﺗﻮاﻧﻴﻢ ﭼﻨﺪ ﻧﻮع ﮔﺰارش ﻧﻴﺰ از وﺿﻌﻴﺖ اﻧﺒﺎر ﺗﻬﻴﻪ ﻛﻨﻴﻢ. در اﻧﺒﺎر ﺷﺮﻛﺖ ورود و ﺧﺮوج ﻛﺎﻻ ﻫﺎ ﺑﺎ ﻛﻨﺘﺮل ﺗﮓ ﻫﺎي RFIDﺑﺮ روي آﻧﻬﺎ ﻛﻨﺘﺮل ﻣﻲ ﺷﻮد .ﭘﺲ در واﻗﻊ ﺑﺮاي ورود و ﺧﺮوج ،ﺷﻤﺎره ي ﻛﺎﻻ ﻫﻤﺎن ﻛﺪي اﺳﺖ ﻛﻪ از ﻃﺮﻳﻖ ﺗﮓ ﻓﺮﺳﺘﺎده ﻣﻲ ﺷﻮد و ﺑﺎ ورود و ﺧﺮوج ﻛﺎﻻ ﺑﻪ ﺻﻮرت ﺑﻼدرﻧﮓ ،ﻛﻠﻴﻪ ي ﺗﻐﻴﻴﺮات ﻻزﻣﻪ در داده ﻫﺎ اﻧﺠﺎم ﺧﻮاﻫﺪ ﺷﺪ .ﻛﺪ ﻫﺮ ﺗﮓ RFIDرا ﻳﻚ ﺳﻴﮕﻨﺎل دﻳﺠﻴﺘﺎل 16ﺑﻴﺘﻲ ﻓﺮض ﻛﻨﻴﺪ و ﺗﺎﺑﻌﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺷﻤﺎره ي ﺗﮓ ﻫﺎي رﻧﺪوم را ﺑﺮاي اﻳﻦ اﺟﻨﺎس ﺗﻮﻟﻴﺪ ﻛﻨﺪ .در ﻫﻨﮕﺎم ﺑﺮرﺳﻲ ﻫﺮ ﻛﺎﻻ ،ﻛﺪ آﻧﻬﺎ ﻧﻴﺰ ﺑﺎﻳﺪ ﺑﻪ ﻣﺪﻳﺮ ﮔﺰارش داده ﺷﻮد .ورودي ﻫﺎي 16ﺑﻴﺘﻲ ﺷﻤﺎ ،ﻫﻤﺎن ﺳﻴﮕﻨﺎل ﻓﺮﺿﻲ ﺻﺎدره از RFIDﻫﺎ ﺧﻮاﻫﺪ ﺑﻮد. ﺣﺎل ﺑﻪ ﺗﻮﺟﻪ ﺑﻪ اﻳﻦ ﻧﻜﺎت ،ﺑﺮﻧﺎﻣﻪ ي ﺷﻤﺎ ﺑﺎﻳﺪ ﺗﻮاﺑﻊ زﻳﺮ را دارا ﺑﺎﺷﺪ: اﺿﺎﻓﻪ ﻛﺮدن ﻧﺎم ﻛﺎﻻ ﺑﻪ ﻟﻴﺴﺖ )ﻫﺮﻛﺎﻻ ﻛﻪ ﺗﻮﻟﻴﺪ ﻣﻲ ﺷﻮد ﻳﻚ ﺗﮓ ﺑﺮاي آن ﺗﻬﻴﻪ ﻣﻲ ﺷﻮد(. > to goods’ listﻧﺎم ﻛﺎﻻ< Insert ﻧﻤﺎﻳﺶ ﻛﺎﻻ ﻫﺎي ﻣﻮﺟﻮد Show goods’ list اﺿﺎﻓﻪ ﻛﺮدن ﺑﻪ ﻟﻴﺴﺖ اﺷﺨﺎص Add (name,last name,phone number) to names’ list ﻧﻤﺎﻳﺶ ﻟﻴﺴﺖ اﺳﺎﻣﻲ Show names’ list وارد ﻛﺮدن ﻳﻚ ﻣﺤﻤﻮﻟﻪ ﺑﻪ اﻧﺒﺎر)ﻫﺮ ﻣﺤﻤﻮﻟﻪ ﻛﻪ وارد ﻣﻲ ﺷﻮد ،اﮔﺮ ﺗﮓ داﺷﺖ ﻛﻪ ﻫﻴﭻ .وﮔﺮﻧﻪ ﺑﺮ روي آن ﻳﻚ ﺗﮓ ﺟﺪﻳﺪ ﻣﻲ ﭼﺴﺒﺎﻧﻴﻢ(. Insert N good to Anbar by (name,lastname) at (year,month,day,tag) which consists of: Num1 good1 Num2 good2 . . NumN goodN (ﺧﺎرج ﻛﺮدن ﻳﻚ ﻣﺤﻤﻮﻟﻪ از اﻧﺒﺎر )ﻛﻨﺘﺮل ﺗﮓ ﻳﺎدﻣﺎن ﺑﺎﺷﺪ Exclude N good from Anbar by (name,lastname) at (year,month,day,tag) which consists of: Num1 good1 Tag:1110011110101100 Num2 good2 Tag:1110010000101100 . . NumN goodN Tag:1110011100101100 ." را ﭼﺎپ ﻛﻨﻴﺪ..." ﻋﺒﺎرت،در ﺻﻮرﺗﻲ ﻛﻪ ﻛﻤﺘﺮ از ﻣﻘﺪار ﻛﺎﻻي ﻣﻮﺟﻮد ﺑﺨﻮاﻫﻴﻢ ﻛﺎﻻ ﺑﺮدارﻳﻢ ﮔﺰارش از وﺿﻊ ﻣﻮﺟﻮري ﻛﺎﻻ Report good :در ﻫﺮ ﺧﻂ ﺧﺮوﺟﻲ ﻧﺎم ﻛﺎﻻ و ﺗﻌﺪاد ﻣﻮﺟﻮد از آن و ﺷﻤﺎره ﺗﮓ آن را ﺑﻨﻮﻳﺴﻴﺪ Good1 num1 Tag:1110011000101100 Good2 num2 Tag:1110011001100000 . . GoodN NumN Tag:1010011111101100 :ﮔﺰارش از ﻣﺤﻮﻟﻪ ﻫﺎﻳﻲ ﻛﻪ وارد ﺷﺪه اﻧﺪ Report Mahmuleha from (year,month,day) to (year,month,day) .ﺧﺎرج ﺷﺪه اﻧﺪ را ﭼﺎپ ﻛﻨﻴﺪ/در ﺧﺮوﺟﻲ ﻟﻴﺴﺘﻲ از ﻣﺤﻤﻮﻟﻪ ﻫﺎﻳﻲ ﻛﻪ در آن ﻣﺪت وارد Mahmule#1 inserted/excluded by (name,lastname) on (year,month,day,tag) consists of: Num1 good1 Tag:1110011000100100 Num2 good2 Tag:1110011000100000 . . NumN goodN Tag:1110011000101111 ﺗﻮﺿﻴﺤﺎت ﺗﻜﻤﻴﻠﻲ: • ﺑﺮاي اﻳﻦ ﺳﻮال ﺣﺘﻤﺎ از linked listﺑﺎ اﺳﺘﻔﺎده از pointerو structﻫﺎ اﺳﺘﻔﺎده ﻛﻨﻴﺪ. • ﺑﻪ ﻋﻨﻮان ﻧﻤﺮه ي اﺿﺎﻓﻪ ،ﻋﻼوه ﺑﺮ ،linked listﻣﻲ ﺗﻮاﻧﻴﺪ ﻗﺴﻤﺘﻲ از داده ﻫﺎ را ﺑﺎ اﺳﺘﻔﺎده از dynamic allocationﻓﻀﺎي آراﻳﻪ اي )ﻛﻪ در ﻛﻼس ﺣﻞ ﺗﻤﺮﻳﻦ ﺗﻮﺿﻴﺢ داده ﺷﺪ( ذﺧﻴﺮه و ﺑﺎزﻳﺎﺑﻲ ﻛﻨﻴﺪ. ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ
© Copyright 2026 Paperzz