ﭘﺮوژﻩ اول ﺳﺎﺧﺘﻤﺎن دادﻩ هﺎ و اﻟﮕﻮرﻳﺘﻢ هﺎ ﺳﺮرﺳﻴﺪ ﺗﺤﻮﻳﻞ١٣٨۶/١/٢٠ : ﭘﺮدازش ﻋﺒﺎرت هﺎ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﮏ ﻋﺒﺎرت رﻳﺎﺿﯽ را از ورودﯼ درﻳﺎﻓﺖ ﮐﺮدﻩ و ﺳﭙﺲ اﻋﻤﺎل ﺧﻮاﺳﺘﻪ ﺷﺪﻩ را روﯼ ﺁن اﻧﺠﺎم دهﺪ و ﻧﺘﻴﺠﻪ را در ﺧﺮوﺟﯽ ﺑﻨﻮﻳﺴﺪ .اﻳﻦ ﻋﺒﺎرت رﻳﺎﺿﯽ ﺷﺎﻣﻞ ﺟﻤﻊ ) ،(+ﺿﺮب)*( ،ﺗﻘﺴﻴﻢ ﺻﺤﻴﺢ) ،(/ﺗﻔﺮﻳﻖ) ،(-ﭘﺮاﻧﺘﺰ ،ﺗﻮان)^( ،اﻋﺪاد ﺻﺤﻴﺢ) (signed longو ﻣﺘﻐﻴﺮ هﺎ )ﺣﺮوف ﮐﻮﭼﮏ اﻧﮕﻠﻴﺴﯽ( اﺳﺖ .ﺑﺎ اﻳﻨﮑﻪ ﺗﻔﺮﻳﻖ ﻳﮏ ﻋﻤﻠﮕﺮ دوﺗﺎﻳﯽ اﺳﺖ و ﺑﻪ ﺻﻮرت ﺗﻨﻬﺎ ﭘﺸﺖ ﻣﺘﻐﻴﺮ هﺎ ﻧﻤﯽ ﺁﻳﺪ )ﻣﺜﻞ ،(–aاﻣﺎ اﻋﺪاد ﺻﺤﻴﺢ ﻣﯽ ﺗﻮاﻧﻨﺪ ﻣﻨﻔﯽ ﺑﺎﺷﻨﺪ .اوﻟﻮﻳﺖ ﻋﻤﻠﮕﺮ هﺎ اﺑﺘﺪا ﺑﺮاﯼ ﭘﺮاﻧﺘﺰ ،ﺳﭙﺲ ﺗﻮان ،ﺳﭙﺲ ﺿﺮب و ﺗﻘﺴﻴﻢ و در ﺁﺧﺮ ﺟﻤﻊ و ﺗﻔﺮﻳﻖ اﺳﺖ .در ﺻﻮرﺗﯽ ﮐﻪ ﺿﺮب و ﺗﻘﺴﻴﻢ ﻳﺎ ﺟﻤﻊ و ﺗﻔﺮﻳﻖ ﭘﺸﺖ ﺳﺮ هﻢ ﻧﻮﺷﺘﻪ ﺷﻮﻧﺪ اوﻟﻮﻳﺖ ﺑﺎ ﻋﻤﻠﮕﺮ ﺳﻤﺖ ﭼﭗ و در ﻣﻮرد ﺗﻮان ﺑﺎ ﻋﻤﻠﮕﺮ ﺳﻤﺖ راﺳﺖ اﺳﺖ .ﻳﻌﻨﯽ ﻋﺒﺎرت هﺎﯼ زﻳﺮ ﺑﺎﻳﺪ اﻳﻦ ﮔﻮﻧﻪ ﺗﺮﺟﻤﻪ ﺷﻮﻧﺪ: )a * b / c = ((a*b)/c ))a ^ b ^ c = (a^(b^c ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ اﺑﺘﺪا از ﺧﻂ اول ورودﯼ اﺳﺘﺎﻧﺪارد ﻋﺒﺎرت ﻣﻮرد ﻧﻈﺮ را ﺑﺨﻮاﻧﺪ .اﻳﻦ ﻋﺒﺎرت ﺷﺎﻣﻞ ﻓﻀﺎهﺎﯼ ﺧﺎﻟﯽ )… (Space, tab,ﻧﻴﺴﺖ و ﺑﺮاﯼ ﺳﺎدﮔﯽ ﺑﺎ ﮐﺎراﮐﺘﺮ $ﭘﺎﻳﺎن ﻣﯽ ﻳﺎﺑﺪ .ﺳﭙﺲ در ﺧﻂ ﺑﻌﺪ ﺗﻌﺪاد درﺧﻮاﺳﺖ هﺎ ) (nﺑﻪ ﺻﻮرت ﻳﮏ ﻋﺪد ﺻﺤﻴﺢ ﻣﯽ ﺁﻳﺪ .ﺳﭙﺲ در nﺧﻂ ﺑﻌﺪﯼ درﺧﻮاﺳﺖ هﺎ ﻣﻄﺮح ﻣﯽ ﺷﻮﻧﺪ ﮐﻪ در زﻳﺮ ﺗﻮﺿﻴﺢ ﺁن هﺎ را ﻣﯽ ﺑﻴﻨﻴﺪ: post در ﺻﻮرﺗﯽ ﮐﻪ اﻳﻦ ﮐﻠﻤﻪ ﺑﻪ ﻋﻨﻮان در ﺧﻮاﺳﺖ ﻣﻄﺮح ﺷﺪﻩ ﺑﻮد ،در ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﺷﮑﻞ ﭘﺴﻮﻧﺪﯼ ﻋﺒﺎرت را ﺑﻨﻮﻳﺴﻴﺪ .ﺑﻴﻦ هﺮ دو ﮐﻠﻤﻪ ﻳﮏ ﻓﺎﺻﻠﻪ ﺧﺎﻟﯽ ) (spaceﻗﺮار دهﻴﺪ .دﻗﺖ ﮐﻨﻴﺪ ﮐﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﮑﻪ ﺗﺮﺗﻴﺐ اﻋﺪاد و ﻣﺘﻐﻴﺮ هﺎ در ﺷﮑﻞ ﭘﺴﻮﻧﺪﯼ ﺗﻐﻴﻴﺮﯼ ﻧﻤﯽ ﮐﻨﺪ ،ﻋﺒﺎرت ﺑﻪ ﺻﻮرت ﻳﮑﺘﺎ ﺑﻪ دﺳﺖ ﻣﯽ ﺁﻳﺪ. pre در ﺻﻮرﺗﯽ ﮐﻪ اﻳﻦ ﮐﻠﻤﻪ در ورودﯼ ﺁﻣﺪﻩ ﺑﻮد ،ﺷﮑﻞ ﭘﻴﺸﻮﻧﺪﯼ ﻋﺒﺎرت را در ﺧﺮوﺟﯽ ﺑﻨﻮﻳﺴﻴﺪ. paran ﺑﺎ دﻳﺪن اﻳﻦ درﺧﻮاﺳﺖ در ﺧﺮوﺟﯽ ﺷﮑﻞ ﭘﺮاﻧﺘﺰ ﮔﺬارﯼ ﺷﺪﻩ ﻋﺒﺎرت را ﭼﺎپ ﮐﻨﻴﺪ .ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﺑﻪ ازاﯼ هﺮ ﻋﻤﻠﮕﺮ ﺑﺎﻳﺪ ﻳﮏ ﺟﻔﺖ ﭘﺮاﻧﺘﺰ در اﻃﺮاف ﺁن ﻗﺮار ﺑﮕﻴﺮد ﺗﺎ از هﺮﮔﻮﻧﻪ اﺑﻬﺎم ﺟﻠﻮﮔﻴﺮﯼ ﺷﻮد .از اﺿﺎﻓﻪ ﮐﺮدن ﻓﺎﺻﻠﻪ ﺧﺎﻟﯽ ﭘﺮهﻴﺰ ﮐﻨﻴﺪ. calc در ﺻﻮرﺗﯽ ﮐﻪ اﻳﻦ ﻋﺒﺎرت در ورودﯼ ﺁﻣﺪﻩ ﺑﺎﺷﺪ ،در ﺧﻂ زﻳﺮ ﺑﻪ ﺗﻌﺪاد ﻣﺘﻐﻴﺮ هﺎﯼ ﻋﺒﺎرت ﻋﺪد ﺻﺤﻴﺢ ﺁﻣﺪﻩ اﺳﺖ .ﺑﺮاﯼ ﻣﺜﺎل اﮔﺮ ﻋﺒﺎرت دو ﻣﺘﻐﻴﺮ aو bداﺷﺘﻪ ﺑﺎﺷﺪ ،در ﺧﻂ ﭘﺎﻳﻴﻦ ﻣﻤﮑﻦ اﺳﺖ ورودﯼ ﺑﻪ ﺻﻮرت a=12 b=-3ﺁﻣﺪﻩ ﺑﺎﺷﺪ .ﺑﻴﻦ هﺮ ﻗﺴﻤﺖ ﻳﮏ ﻓﺎﺻﻠﻪ ﺧﺎﻟﯽ ﻗﺮار دارد و ﻣﺘﻐﻴﺮ هﺎ ﺗﺮﺗﻴﺐ ﺧﺎﺻﯽ ﻧﺪارﻧﺪ .ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺎ ﮔﺮﻓﺘﻦ ﻣﻘﺎدﻳﺮ ﻣﺘﻐﻴﺮ هﺎ ،ﺁن هﺎ را ﺟﺎﯼ ﮔﺬارﯼ ﮐﻨﺪ و ﭘﺎﺳﺦ را در ﺧﺮوﺟﯽ ﭼﺎپ ﮐﻨﺪ. der a ﭘﺲ از ﻋﺒﺎرت derﻳﮏ ﻣﺘﻐﻴﺮ ﻣﯽ ﺁﻳﺪ ﮐﻪ ﻧﺸﺎن ﻣﯽ دهﺪ ﺑﺎﻳﺪ ﻧﺴﺒﺖ ﺑﻪ ﮐﺪام ﻣﺘﻐﻴﺮ ﻣﺸﺘﻖ ﺑﮕﻴﺮﻳﺪ. ﻣﻤﮑﻦ اﺳﺖ اﻳﻦ ﻣﺘﻐﻴﺮ در ﻋﺒﺎرت ﻣﻮﺟﻮد ﻧﺒﺎﺷﺪ )در اﻳﻦ ﺻﻮرت ﻣﻘﺪار ﻣﺸﺘﻖ ﺻﻔﺮ ﻣﯽ ﺷﻮد( .ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻣﺸﺘﻖ ﻋﺒﺎرت را ﻧﺴﺒﺖ ﺑﻪ ﻣﺘﻐﻴﺮ دادﻩ ﺷﺪﻩ ﺣﺴﺎب ﮐﻨﺪ ،ﻣﻘﺪار ﻣﺘﻐﻴﺮ هﺎ را ﻣﺎﻧﻨﺪ calcاز ورودﯼ درﻳﺎﻓﺖ ﮐﺮدﻩ و ﺑﺎ ﺟﺎﯼ ﮔﺬارﯼ ﻣﻘﺪار هﺎ در ﻋﺒﺎرت ﻣﺸﺘﻖ ،ﭘﺎﺳﺦ را در ﺧﺮوﺟﯽ ﭼﺎپ ﮐﻨﺪ. ورودﯼ/ﺧﺮوﺟﯽ ﻧﻤﻮﻧﻪ ﺑﺮاﯼ اﻳﻨﮑﻪ ﻗﺎﻟﺐ ورودﯼ و ﺧﺮوﺟﯽ ﺑﺮاﯼ ﺷﻤﺎ روﺷﻦ ﺷﻮد ﺑﻪ ورودﯼ و ﺧﺮوﺟﯽ ﻧﻤﻮﻧﻪ زﻳﺮ ﺗﻮﺟﻪ ﮐﻨﻴﺪ: Input: 12/c+c*p^(8+9)$ 5 post pre paran calc c=5 p=-1 der c c=-2 p=1 output: 12 c / c p 8 9 + ^ * + + / 12 c * c ^ p + 8 9 ))))((12/c)+(c*(p^(8+9 -3 -2 ﻧﮑﺘﻪ هﺎﯼ ﻣﻬﻢ: ﺑﺮﻧﺎﻣﻪ هﺎﯼ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت C/C++ﻳﺎ ﺟﺎواﯼ اﺳﺘﺎﻧﺪارد ﻧﻮﺷﺘﻪ ﺷﻮﻧﺪ ،ﺑﻪ ﻃﻮرﯼ ﮐﻪ در ﻣﺤﻴﻂ linuxﺑﺘﻮاﻧﻨﺪ ﺗﺮﺟﻤﻪ و اﺟﺮا ﺷﻮﻧﺪ. ﻧﺎم ﺑﺮﻧﺎﻣﻪ ﺧﻮد را ﺑﻪ ﺻﻮرت prj1-8???????.cppﻳﺎ prj1-8???????.java ﻗﺮار دهﻴﺪ و ﺑﻪ ﺟﺎﯼ ﻋﻼﻣﺖ هﺎﯼ ﺳﻮال ﺷﻤﺎرﻩ داﻧﺸﺠﻮﻳﯽ ﺧﻮد را ﺑﮕﺬارﻳﺪ. ﺑﺮﻧﺎﻣﻪ هﺎ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﻳﮏ ﻧﻔﺮﯼ ﻧﻮﺷﺘﻪ ﺷﻮﻧﺪ و هﺮﮔﻮﻧﻪ ﺷﺒﺎهﺖ ﺑﺮﻧﺎﻣﻪ هﺎ ﺑﻪ ﻳﮑﺪﻳﮕﺮ ﺑﻪ ﻃﻮرﯼ ﮐﻪ ﻣﺸﮑﻮﮎ ﺑﻪ ﮐﭙﯽ ﮐﺮدن ﺑﺎﺷﺪ ،ﺑﺎﻋﺚ ﻣﯽ ﺷﻮد ﺟﺮﻳﻤﻪ اﯼ ﺑﻪ ﺷﻤﺎ ﺗﻌﻠﻖ ﺑﮕﻴﺮد. هﻤﺮاﻩ ﺑﺮﻧﺎﻣﻪ ﺧﻮد ﺑﺎﻳﺪ ﻳﮏ ﻓﺎﻳﻞ wordﻳﺎ ) pdfﺑﺎ ﻧﺎم ??????? (prj1-8ﺑﻪ ﻋﻨﻮان documentationﺑﻔﺮﺳﺘﻴﺪ ﮐﻪ ﻧﺤﻮﻩ ﮐﺎر ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ را )از ﺟﻤﻠﻪ ﻗﺴﻤﺖ هﺎﯼ ﻣﺨﺘﻠﻒ ﺑﺮﻧﺎﻣﻪ و اﻟﮕﻮرﻳﺘﻢ هﺎﯼ اﺳﺘﻔﺎدﻩ ﺷﺪﻩ( ﺑﻪ اﺧﺘﺼﺎر ﺗﻮﺿﻴﺢ دهﺪ .ﺑﻪ ﺑﺮﻧﺎﻣﻪ هﺎﻳﯽ ﮐﻪ documentationﻧﺪاﺷﺘﻪ ﺑﺎﺷﻨﺪ و ﻳﺎ documentationﺑﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﺷﺘﻪ ﺷﺪﻩ ﺗﻄﺒﻴﻖ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﻧﻤﺮﻩ اﯼ ﺗﻌﻠﻖ ﻧﻤﯽ ﮔﻴﺮد. ﺑﺮﻧﺎﻣﻪ هﺎﯼ ﺷﻤﺎ ﺑﻪ ﺻﻮرت ﺧﻮدﮐﺎر ﺻﺤﻴﺢ ﻣﯽ ﺷﻮﻧﺪ ،ﺑﻨﺎﺑﺮاﻳﻦ ﺑﻪ ﻗﺎﻟﺐ ورودﯼ و ﺧﺮوﺟﯽ دﻗﺖ ﮐﻨﻴﺪ .از ﻧﻮﺷﺘﻦ ﮐﻠﻤﺎت اﺿﺎﻓﯽ ﻣﺎﻧﻨﺪ ” “Enter expression:و اﻣﺜﺎل ﺁن ﺟﺪًا ﺧﻮددارﯼ ﮐﻨﻴﺪ .هﺮﮔﻮﻧﻪ اﺷﺘﺒﺎﻩ در ﻗﺎﻟﺐ ﺧﺮوﺟﯽ ﻣﯽ ﺗﻮاﻧﺪ ﻣﻨﺠﺮ ﺷﻮد ﮐﻪ ﺑﺮﻧﺎﻣﻪ testerﺑﻪ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﻧﻤﺮﻩ ﺻﻔﺮ ﺑﺪهﺪ. ﭘﺲ از اﻟﺼﺎق دو ﻓﺎﻳﻞ ﺑﺮﻧﺎﻣﻪ و ﺗﻮﺿﻴﺤﺎت ،ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔﯽ ﺧﻮد را در ﺑﺪﻧﻪ ﻧﺎﻣﻪ ﺑﻨﻮﻳﺴﻴﺪ ،ﻣﻮﺿﻮع ﻧﺎﻣﻪ را ﺑﺮاﺑﺮ ??????? prj1-8ﻗﺮار دهﻴﺪ و ﺑﻪ ﺁدرس [email protected]ﺑﻔﺮﺳﺘﻴﺪ .ﻧﺎﻣﻪ هﺎﻳﯽ ﮐﻪ ﺑﻴﺶ از ۴٨ﺳﺎﻋﺖ از ﻧﻴﻤﻪ ﺷﺐ ﺳﺮرﺳﻴﺪ ﺗﺎﺧﻴﺮ داﺷﺘﻪ ﺑﺎﺷﻨﺪ ﺑﻪ هﻴﭻ وﺟﻪ ﺗﺼﺤﻴﺢ ﻧﻤﯽ ﺷﻮﻧﺪ. اﮔﺮ اﺑﻬﺎﻣﯽ در ﺻﻮرت ﭘﺮوژﻩ وﺟﻮد دارد ﺳﻮال هﺎﯼ ﺧﻮد را در ﺑﺨﺶ discussion areaﺳﺎﻳﺖ درس ﻣﻄﺮح ﮐﻨﻴﺪ.
© Copyright 2026 Paperzz