hw1.pdf

‫ﺑﻪ ﻧﺎم دوﺳﺖ‬
‫ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﯽ ﭘﻴﺸﺮﻓﺘﻪ‬
‫ﻧﻴﻢ ﺳﺎل دوم ‪84-83‬‬
‫ﺕﻤﺮﻳﻦ اول‬
‫ﺕﺬﮐﺮ ﻣﻬﻢ‪ :‬ﺗﺎ هﻔﺘﻪ ﺁﻳﻨﺪﻩ ‪ mailing list‬ﺑﻪ ﺁدرس ‪ [email protected]‬ﺑﺮای اﻃﻼع‬
‫ﻳﺎﻓﺘﻦ از وﺟﻮد ﺗﻤﺮﻳﻦ ﺟﺪﻳﺪ و ﻳﺎ اﻣﺘﺤﺎﻥﺎت ﮐﻼس ﺣﻞ ﺗﻤﺮﻳﻦ و ﻳﺎ ﺑﺮای ﭘﺮﺳﺶ هﺎی اﺣﺘﻤﺎﻟﯽ‬
‫ﺗﻤﺮﻳﻦ هﺎ‪ ،‬درﺳﺖ ﺧﻮاهﺪ ﺷﺪ‪ ،‬ﮐﻪ ﺣﺘﻤﺎ ﺑﺎﻳﺪ در ﺁن ﻋﻀﻮ ﺷﻮﻳﺪ‪.‬‬
‫ﺑﺮای ﻋﻀﻮ ﺷﺪن در ‪ mailing list‬ﻓﻮق ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ از ﻳﮑﯽ از ‪ mail account‬هﺎی ﺧﻮد‬
‫ﻳﮏ ‪ mail‬ﺑﺎ ﻣﺸﺨﺼﺎت زﻳﺮ ارﺳﺎل ﮐﻨﻴﺪ‪.‬‬
‫‪[email protected]‬‬
‫‪Subscribe ce244list‬‬
‫‪Recipient:‬‬
‫‪Subject:‬‬
‫‪Body:‬‬
‫در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﻋﺬر ﺵﻤﺎ ﻣﺒﻨﯽ ﺑﺮ ﻣﻄﻠﻊ ﻧﺒﻮدن از ﻣﺴﺎﺋﻞ و ﻣﻄﺎﻝﺐ ﻣﻄﺮح ﺵﺪﻩ در‬
‫‪ mailing list‬ﭘﺬﻳﺮﻓﺘﻪ ﻧﺨﻮاهﺪ ﺑﻮد‪.‬‬
‫ﺑﺮای هﺮ ﻳﮏ از ﻣﺴﺎﺋﻞ زﻳﺮ ﻳﮏ ﮐﻼس ﺟﺎوا ﺑﻨﻮﻳﺴﻴﺪ‪ ،‬ﮐﻪ ﻣﺴﺌﻠﻪ را ﻃﺒﻖ ﻣﺸﺨﺼﺎت ﮔﻔﺘﻪ ﺷﺪﻩ ﺣﻞ ﮐﻨﺪ‪ .‬دﻗﺖ ﮐﻨﻴﺪ ﮐﻪ‬
‫ﻥﺎم ﮐﻼس ﺷﻤﺎ ﺑﺎﻳﺪ دﻗﻴﻘﺎ ﻥﺎم دادﻩ ﺷﺪﻩ ﺑﺎﺷﺪ‪) .‬ﺑﻪ ﺑﺰرﮔﯽ و ﮐﻮﭼﮑﯽ ﺣﺮوف ﺗﻮﺟﻪ ﮐﻨﻴﺪ(‪ .‬ﺑﺮای ﺗﺤﻮﻳﻞ ﺗﻤﺮﻳﻦ ﺧﻮد ﻓﻘﻂ‬
‫ﻓﺎﻳﻞ هﺎی ‪ *.java‬ﺕﻤﺮﻳﻦ ﺥﻮد را )ﺑﺪون ﻓﺎﻳﻠﻬﺎی ‪ *.class‬و ‪ file‬ﻳﺎ داﻳﺮﮐﺘﻮری اﺿﺎﻓﯽ( ‪ zip‬ﮐﺮدﻩ ]از ﻓﺮﻣﺖ ‪rar‬‬
‫اﺳﺘﻔﺎدﻩ ﻧﮑﻨﻴﺪ[‪ } ،‬ﮐﻪ ﻧﺎم ﺁن ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻴﺒﺎﺵﺪ‪.‬‬
‫ﺑﻌﺪ از ”‪ “HW1-‬ﺵﻤﺎرﻩ داﻧﺸﺠﻮﻳﯽ ﺥﻮد را وارد ﮐﺮدﻩ )ﺑﺪون اﻳﻨﮑﻪ از ﮐﺎراﮐﺘﺮ ﻓﺎﺻﻠﻪ ﺥﺎﻝﯽ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﺪ(‪ .‬ﺑﻪ‬
‫ﻋﻨﻮان ﻣﺜﺎل ‪ ] HW1-83182239.zip :‬از ﻓﺮﻣﺖ ‪ *.rar‬ﻣﺎﻥﻨﺪ ‪ HW1-83182239.rar‬اﺳﺘﻔﺎدﻩ ﻧﮑﻨﻴﺪ[ و ﺳﭙﺲ‬
‫ﺁن را ﺗﻮﺳﻂ ﻳﮏ ‪ email‬ﺑﺎ ﻣﺸﺨﺼﺎت زﻳﺮ ﺑﻪ ﺁدرس ﻣﺬﮐﻮر ارﺳﺎل ﮐﻨﻴﺪ‪.‬‬
‫‪[email protected]‬‬
‫‪HW1-83182239‬‬
‫‪HW1-83182239.zip‬‬
‫‪Recipient:‬‬
‫‪Subject:‬‬
‫‪Body:‬‬
‫‪Attachments:‬‬
‫ﻓﻴﻠﺪ ‪ Subject‬ﻥﺎﻣﻪ‪ ،‬درﺳﺖ ﻣﺎﻥﻨﺪ اﺳﻢ ‪ zip‬ﻓﺎﻳﻞ ‪ attach‬ﺷﺪﻩ ﻣﻴﺒﺎﺷﺪ‪ .‬ﺑﺪﻳﻦ ﺹﻮرت ﮐﻪ ﺑﻌﺪ از ”‪ “HW1-‬ﺷﻤﺎرﻩ‬
‫داﻥﺸﭽﻮﻳﯽ ﺧﻮد را وارد ﮐﺮدﻩ )ﺑﺪون اﻳﻨﮑﻪ از ﮐﺎراﮐﺘﺮ ﻓﺎﺹﻠﻪ ﺧﺎﻟﯽ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﺪ(‪.‬‬
‫ﻥﮑﺎﺗﯽ ﮐﻪ در ارﺳﺎل ﺗﻤﺮﻳﻦ ﺑﺎﻳﺪ ﺣﺘﻤﺎ رﻋﺎﻳﺖ ﺷﻮﻥﺪ‪:‬‬
‫‪ .1‬ﺗﻤﺮﻳﻦ هﺎ ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﺑﻪ ﺹﻮرت ﮔﻔﺘﻪ ﺷﺪﻩ ارﺳﺎل ﮔﺮدﻥﺪ‪ .‬در ﻏﻴﺮ اﻳﻦ ﺹﻮرت ﺗﺼﺤﻴﺢ ﻥﺨﻮاهﻨﺪ ﮔﺸﺖ‪ ،‬و‬
‫ﻥﻤﺮﻩ ﺁن را از دﺳﺖ ﻣﻴﺪهﻨﺪ‪.‬‬
‫‪ .2‬ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﺑﺪﻥﻪ ‪ mail‬ﺷﻤﺎ ﺧﻮاﻥﺪﻩ ﻥﻤﻴﺸﻮد‪ ،‬ﻟﺬا اﮔﺮ ﻗﺼﺪ ﺑﻴﺎن ﻣﻄﻠﺒﯽ را دارﻳﺪ‪ ،‬ﻥﺎﻣﻪ ای ﺟﺪاﮔﺎﻥﻪ ای‬
‫ارﺳﺎل ﮐﻨﻴﺪ ﮐﻪ ‪ subject‬ﺁن ﻣﺘﻔﺎوت ﺑﺎﺷﺪ‪.‬‬
‫‪ .3‬ﺕﻮﺝﻪ ﻣﻬﻢ‪ :‬در ﺻﻮرﺕﯽ ﮐﻪ ﮐﺴﯽ ﺕﻤﺮﻳﻦ ﺥﻮد را ﺑﻪ ﺝﺎی ﺁدرس‪ mail‬درس ﺑﻪ ﺁدرس ‪mailing list‬‬
‫درس ارﺳﺎل ﮐﻨﺪ‪ .‬ﻧﻤﺮﻩ ﺁن ﺕﻤﺮﻳﻦ را از دﺳﺖ ﻣﯽ دهﺪ‪ .‬و در ﺻﻮرت ﺕﮑﺮار ﻧﻤﺮﻩ ﻣﻨﻔﯽ ﺥﻮاهﺪ ﮔﺮﻓﺖ‪.‬‬
‫ﻣﻬﻠﺖ ارﺳﺎل ﺕﻤﺮﻳﻦ ﺳﺮی اول‪ ،‬ﺕﺎ ﺳﺎﻋﺖ ‪ 12:30‬روز دوﺵﻨﺒﻪ ‪ 83/12/10‬ﻣﯽ ﺑﺎﺵﺪ‪.‬‬
‫ﺗﻤﺮﻳﻦ هﺎﻳﯽ ﮐﻪ ﺑﻌﺪ از اﻳﻦ ﺗﺎرﻳﺦ و ﺳﺎﻋﺖ ﻓﺮﺳﺘﺎدﻩ ﺷﻮﻥﺪ‪ ،‬ﺗﺼﺤﻴﺢ ﻥﺨﻮاهﻨﺪ ﺷﺪ‪.‬‬
‫ﻣﺴﺌﻠﻪ ﺻﻔﺮ ‪ :‬ﻣﺤﺎﺳﺒﻪ ﻣﺮﺑﻊ و ﻣﮑﻌﺐ اﻋﺪاد‪.‬‬
‫ﻧﺎم ﮐﻼس ﺑﺮﻧﺎﻣﻪ ‪Calculator.java :‬‬
‫ﺑﺮﻥﺎﻣﻪ ای ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ﻳﮏ ﻋﺪد را از ورودی ﺑﺨﻮاﻥﺪ و ﻣﺮﺑﻊ و ﻣﮑﻌﺐ ﺁن ﻋﺪد و ﺗﻤﺎم اﻋﺪاد ﮐﻤﺘﺮ از ﺁن را ﺑﻪ ﺗﺮﺗﻴﺐ‬
‫ﺹﻌﻮدی ﺑﻪ ﺹﻮرت زﻳﺮ ﻥﻤﺎﻳﺶ دهﺪ‪) :‬اﻋﺪاد ﺑﺎﻳﺪ زﻳﺮ هﻢ ﻥﻮﺷﺘﻪ ﺷﻮﻥﺪ و ﺑﺎ ‪ tab‬از هﻢ ﻓﺎﺹﻠﻪ ﺑﮕﻴﺮﻥﺪ(‬
‫‪Enter your number: 10‬‬
‫‪cube‬‬
‫‪0‬‬
‫‪1‬‬
‫‪8‬‬
‫‪27‬‬
‫‪64‬‬
‫‪125‬‬
‫‪216‬‬
‫‪343‬‬
‫‪512‬‬
‫‪729‬‬
‫‪1000‬‬
‫‪square‬‬
‫‪0‬‬
‫‪1‬‬
‫‪4‬‬
‫‪9‬‬
‫‪16‬‬
‫‪25‬‬
‫‪36‬‬
‫‪49‬‬
‫‪64‬‬
‫‪81‬‬
‫‪100‬‬
‫‪Number‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫ﻣﺴﺌﻠﻪ دوم ‪ :‬ﭘﺮدازش اﻋﺪاد ورودی‬
‫ﻧﺎم ﮐﻼس ﺑﺮﻧﺎﻣﻪ ‪Numbers.java :‬‬
‫ﺑﺮﻥﺎﻣﻪ ای ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ از ورودی ‪ 10‬ﻋﺪد را ﺑﮕﻴﺮد ) ﻋﺪدی ﮐﻪ ﮐﺎرﺑﺮ وارد ﻣﯽ ﮐﻨﺪ و ﺗﺸﺨﻴﺺ دهﺪ ﮐﻪ در ﺑﻴﻦ ﺁﻥﻬﺎ‬
‫ﭼﻨﺪ ﻋﺪد ﻣﺜﺒﺖ‪ ،‬ﭼﻨﺪ ﻋﺪد ﻣﻨﻔﯽ و ﭼﻨﺪ ﻣﻘﺪار ﺹﻔﺮ وﺟﻮد دارد‪ .‬و ﻥﺘﺎﻳﺞ را روی ﺹﻔﺤﻪ ﻥﻤﺎﻳﺶ ﺑﻪ ﺹﻮرت زﻳﺮ ﻥﻤﺎﻳﺶ‬
‫دهﺪ‪.‬‬
‫‪Enter 10 Numbers:‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪-1‬‬
‫‪3‬‬
‫‪875‬‬
‫‪-9‬‬
‫‪3‬‬
‫‪2‬‬
‫‪0‬‬
‫‪Number of positive numbers: 5‬‬
‫‪Number of negative numbers: 2‬‬
‫‪Number of zeros: 3‬‬
‫ﺕﻤﺮﻳﻦ ﺳﻮم ‪ :‬رﺳﻢ ﻧﻤﻮدار‬
‫ﻧﺎم ﮐﻼس ﺑﺮﻧﺎﻣﻪ ‪Diagram.java :‬‬
‫ﻳﮏ ﺟﺪول ‪ 10*10‬ﻓﺮﺽﯽ دارﻳﻢ ﮐﻪ ﺑﺮﻥﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻥﻤﻮداری را ﺗﻮﺳﻂ ﮔﺮﻓﺘﻦ ﻣﺨﺘﺼﺎت ‪ 9‬ﻥﻘﻄﻪ از ﮐﺎرﺑﺮ رﺳﻢ‬
‫ﮐﻨﺪ‪ .‬دﻗﺖ ﺷﻮد ﮐﻪ ﻣﺨﺘﺼﺎﺗﯽ ﮐﻪ ﺗﻮﺳﻂ ﮐﺎرﺑﺮ وارد ﻣﯽ ﺷﻮﻥﺪ ﺑﺎﻳﺪ ﺑﻴﻦ ‪ 0‬و ‪ 10‬ﺑﺎﺷﻨﺪ‪ ،‬در ﻏﻴﺮ اﻳﻦ ﺹﻮرت ﺑﺎﻳﺪ ﭘﻴﻐﺎم‬
‫ﻣﻨﺎﺳﺒﯽ را روی ﺹﻔﺤﻪ ﭼﺎپ ﮐﻨﺪ و از ﮐﺎرﺑﺮ ﺑﺨﻮاهﺪ ﮐﻪ دوﺑﺎرﻩ ﻋﺪد ﺧﻮد را وارد ﮐﻨﺪ‪) .‬ﺑﺮای ﻣﺤﻮر ‪ y‬ﻣﯽ ﺗﻮاﻥﻴﺪ‬
‫از | و ﺑﺮای ﻣﺤﻮر ‪ x‬ﻣﻴﺘﻮاﻥﻴﺪ از _ اﺳﺘﻔﺎدﻩ ﮐﻨﻴﺪ و هﻤﭽﻨﻴﻦ ﻣﯽ ﺗﻮاﻥﻴﺪ ﺑﺮای ﻥﻘﻄﻪ هﺎ از ﺣﺮف ‪ x‬اﺳﺘﻔﺎدﻩ ﮐﻨﻴﺪ(‪.‬‬
‫ﺑﺮای ﻣﺜﺎل ﺑﺮﻥﺎﻣﻪ ﺷﻤﺎ ﺑﺮای ‪ 9‬ورودی زﻳﺮ ﺑﺎﻳﺪ ﻥﻤﻮدار زﻳﺮ را رﺳﻢ ﮐﻨﺪ‪:‬‬
‫)‪(1,1) (2,2) (3,3) (4,4) (5,5) (6,6) (7,7) (8,8) (9,9‬‬
‫‪Y‬‬
‫|‪10‬‬
‫|‪9‬‬
‫‪x‬‬
‫|‪8‬‬
‫‪x‬‬
‫|‪7‬‬
‫‪x‬‬
‫|‪6‬‬
‫‪x‬‬
‫|‪5‬‬
‫‪x‬‬
‫|‪4‬‬
‫‪x‬‬
‫|‪3‬‬
‫‪x‬‬
‫|‪2‬‬
‫‪x‬‬
‫‪1| x‬‬
‫‪|___________________________ X‬‬
‫‪0 1 2 3 4 5 6 7 8 9 10‬‬
‫ﻧﮑﺘﻪ ‪ :‬در ﺗﻤﺎﻣﯽ ﻣﺴﺎﺋﻞ ﻓﻮق‪ ،‬ﻣﺜﺎل هﺎی زدﻩ ﺷﺪﻩ ﺗﻨﻬﺎ ﻥﻤﻮﻥﻪ و ﺣﺪاﻗﻠﯽ از ﺧﺮوﺟﯽ ﺑﺮﻥﺎﻣﻪ ﻣﯽ ﺑﺎﺷﻨﺪ‪ ،‬و اﻓﺮاد‬
‫ﻣﺨﺘﺎرﻥﺪ ﺑﺎ ﺳﻠﻴﻘﻪ ﺧﻮد ورودی هﺎ را از ﮐﺎرﺑﺮ ﮔﺮﻓﺘﻪ و ﺧﻮروﺟﯽ هﺎ را ﺗﻮﻟﻴﺪ ﮐﻨﻨﺪ‪ ،‬در اﻳﻦ ﺹﻮرت اﻳﻦ اﻋﻤﺎل ﮐﺎﻣﻼ‬
‫ﺧﻮاﻥﺎ و ﻗﺎﺑﻞ ﻓﻬﻢ اﻥﺠﺎم ﺷﻮﻥﺪ و ﺑﻪ ﮐﺎرﺑﺮ اﻃﻼع دادﻩ ﺷﻮﻥﺪ‪ .‬ﺑﻪ ﻃﻮر ﻣﺜﺎل در ﺑﺮﻥﺎﻣﻪ ﺁﺧﺮ ﺑﺴﺘﻪ ﺑﻪ ﻥﻈﺮ ﺷﻤﺎ ﮐﺎرﺑﺮ ﺑﻪ‬
‫ﻃﺮق ﻣﺨﺘﻠﻒ ﻣﯽ ﺗﻮاﻥﺪ ﻣﺨﺘﺼﺎت ﻥﻘﺎط را وارد ﮐﻨﺪ‪ ،‬ﮐﻪ ﺑﺎﻳﺪ ﺑﻪ ﮐﺎرﺑﺮ اﻃﻼع دادﻩ ﺷﻮد و ﻳﺎ ﺑﻪ ﮔﻮﻥﻪ ای ﻗﺎﺑﻞ ﻓﻬﻢ‬
‫ﺑﺮای ﮐﺎرﺑﺮ ﺑﺎﺷﺪ ﮐﻪ ﭼﮕﻮﻥﻪ اﻋﺪاد را وارد ﮐﻨﺪ‪ .‬ﺑﺮای ﻣﺜﺎل ‪:‬‬
‫‪Please enter the first node (x y) coordination:‬‬
‫‪11‬‬
‫‪Please enter the first node (x y) coordination:‬‬
‫‪22‬‬
‫…‬
‫و ﻳﺎ ﻣﯽ ﺗﻮاﻥﺪ ﺑﻪ ﺹﻮرت زﻳﺮ ﺑﺎﺷﺪ‪.‬‬
‫‪X1 = 1‬‬
‫‪Y1 = 1‬‬
‫‪X2 = 2‬‬
‫‪Y2 = 2‬‬
‫…‬
‫ﺧﺪاﻳﺎ! ﺁﺳﺎن ﺑﻮدن دﺷﻮار اﺳﺖ‬
‫ﺁﺳﺎﻥﻢ ﮐﻦ‪.‬‬
‫ﺁﻥﯽ ﻥﻴﺴﺘﻢ ﮐﻪ ﺑﺎﻳﺪ‬
‫ﺁﻥﻢ ﮐﻦ‪.‬‬