Assignment1.2.pdf

‫ﺗﻤﺮﻳﻦ ﺳﺮي اول‬
‫درس ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲءﮔﺮا‬
‫ﻣﻮﻋﺪ ارﺳﺎل‪ :‬ﺷﻨﺒﻪ ‪ 17‬اﺳﻔﻨﺪ ‪1387‬‬
‫ﻣﺤﻤﺪ دﺷﺘﻲ ‪ -‬اﻣﻴﺮ ﺷﻴﺨﻬﺎ‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ‪ :‬ﺷﻨﺒﻪ ‪ 17‬اﺳﻔﻨﺪ ‪1387‬‬
‫ﻧﻜﺎت ﻛﻠﻲ‬
‫• ورودي ﺑﺮﻧﺎﻣﻪﻫﺎ ورودي اﺳﺘﺎﻧﺪارد )‪ (console‬و ﺧﺮوﺟﻲ آﻧﻬﺎ ﻧﻴﺰ ﺧﺮوﺟﻲ اﺳﺘﺎﻧﺪارد اﺳﺖ‪.‬‬
‫ﺑﺮاي ﭼﺎپ در ﺧﺮوﺟﻲ اﺳﺘﺎﻧﺪارد از ﺗﻮاﺑﻌﻲ ﺷﺒﻴﻪ ﺑﻪ ‪ System.out.println‬اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺮاي ﺧﻮاﻧﺪن از ورودي اﺳﺘﺎﻧﺪارد ﻧﻴﺰ از ﻛﻼس ‪ Scanner‬ﺑﻪ ﺷﻜﻞ زﻳﺮ ﻛﻤﻚ ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫‪//Construct a new scanner associated with standard input‬‬
‫;)‪Scanner sc = new Scanner(System.in‬‬
‫‪//Retrieve an integer‬‬
‫;)(‪int x = sc.nextInt‬‬
‫‪//Retrieve a whole line‬‬
‫;)(‪String s = sc.nextLine‬‬
‫‪//Check for end of input‬‬
‫))(‪if (!sc.hasNextLine‬‬
‫;‪return‬‬
‫ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ ﻛﻪ ﻛﻼس ‪ Scanner‬ﺗﺎ وﻗﺘﻲ ﻛﻪ در ورودي اﺳﺘﺎﻧﺪارد؛ داده اي ﻣﻮﺟﻮد ﺑﺎﺷﺪ‪ ،‬از ورودي ﻣﻲ ﺧﻮاﻧﺪ‬
‫و ﺷﻤﺎ ﻣﻴﺘﻮاﻧﺪ اﻳﻦ وﺟﻮد ورودي را ﺑﺎ ﻣﺘﺪﻫﺎﻳﻲ ﻛﻪ ﺑﺎ ‪ has‬ﺷﺮوع ﻣﻲ ﺷﻮﻧﺪ ﭼﻚ ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﻛﻼس ‪ Scanner‬و ﻟﻴﺴﺖ ﺗﻮاﺑﻊ آن ﻣﻲ ﺗﻮاﻧﻴﺪ ﺑﻪ آدرس زﻳﺮ ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ‪:‬‬
‫‪http://java.sun.com/javase/6/docs/api/java/util/Scanner.html‬‬
‫• ﻣﺸﺨﺼﺎت ﻛﻠﻲ ﺗﻤﺮﻳﻦ ﻫﺎ ﺑﻪ اﻳﻦ ﺷﺮح اﺳﺖ‪:‬‬
‫ﺗﻤﺮﻳﻦ ‪1‬‬
‫‪Sine‬‬
‫‪Sine.java‬‬
‫‪10‬‬
‫ﺗﻤﺮﻳﻦ ‪2‬‬
‫‪Perfect‬‬
‫‪Perfect.java‬‬
‫‪20‬‬
‫ﺗﻤﺮﻳﻦ ‪3‬‬
‫‪InverseWord‬‬
‫‪InverseWord.java‬‬
‫‪25‬‬
‫ﺗﻤﺮﻳﻦ ‪4‬‬
‫‪Napier‬‬
‫‪Napier.java‬‬
‫‪20‬‬
‫ﺗﻤﺮﻳﻦ ‪5‬‬
‫‪MySplit‬‬
‫‪MySplit.java‬‬
‫‪25‬‬
‫• ﻫﺪف از اﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬آزﻣﺎﻳﺶ ﺑﺮﻗﺮاري ارﺗﺒﺎط ﺷﻤﺎ ﺑﺎ ﺟﺎواﺳﺖ‪ .‬ﭘﺲ از اﻳﻦ ﺗﻤﺮﻳﻦ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺮاﺣﺘﻲ ﺑﺘﻮاﻧﻴﺪ ﺗﻤﺎم‬
‫ﺑﺮﻧﺎﻣﻪ ﻫﺎﻳﻲ ﻛﻪ ﻗﺒﻼً در زﺑﺎن ‪ C‬ﻣﻲ ﻧﻮﺷﺘﻴﺪ را در ﺟﺎوا ﻧﻴﺰ ﺑﻨﻮﻳﺴﻴﺪ‪.‬‬
‫• ﺑﺮاي ارﺳﺎل ﺗﻤﺮﻳﻦ ﺑﻪ آدرس زﻳﺮ ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ‪:‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫ﻧﺎم ﻛﻼس‬
‫ﻧﺎم ﻓﺎﻳﻞ‬
‫ﻧﻤﺮه‬
‫‪1‬‬
‫‪http://ce.sharif.edu/~m_jahangir/java882‬‬
‫ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ ﻛﻪ ﺑﺎﻳﺪ ﻫﺮ ﻛﺪام از ﻓﺎﻳﻠﻬﺎي ‪ .java‬را ﺑﻄﻮر ﺟﺪاﮔﺎﻧﻪ ارﺳﺎل ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫• ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ ﺳﺎﻋﺖ ‪) 11:59‬ﻇﻬﺮ( روز ﺷﻨﺒﻪ ‪ 17‬اﺳﻔﻨﺪ ﺑﻮده و ﺑﻪ ﻫﻴﭻ ﻋﻨﻮان ﺗﻤﺪﻳﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ‪.‬‬
‫• ﺗﺄﺧﻴﺮ ﺗﺎ ‪ 1‬ﺳﺎﻋﺖ‪ ،‬ﺑﻪ ازاي ﻫﺮ ‪ 3‬دﻗﻴﻘﻪ ﻣﻮﺟﺐ ﻛﺴﺮ ﺷﺪن ‪ %1‬ﻧﻤﺮه‪ ،‬از ‪ 1‬ﺳﺎﻋﺖ ﺗﺎ ‪ 24‬ﺳﺎﻋﺖ ﻣﻮﺟﺐ ﻛﺴﺮ ﺷﺪن‬
‫‪ %20‬ﻧﻤﺮه‪ ،‬از ‪ 24‬ﺳﺎﻋﺖ ﺗﺎ ‪ 25‬ﺳﺎﻋﺖ‪ ،‬ﺑﻪ ازاي ﻫﺮ ‪ 6‬دﻗﻴﻘﻪ ﻣﻮﺟﺐ ﻛﺴﺮ ﺷﺪن ‪ %1‬ﻧﻤﺮهي دﻳﮕﺮ و ﺑﻴﻦ ‪ 25‬ﺳﺎﻋﺖ‬
‫ﺗﺎ ‪ 48‬ﺳﺎﻋﺖ ﺑﺎﻋﺚ ﻛﺴﺮ ﺷﺪن ‪ %50‬ﻧﻤﺮه ﻣﻲﺷﻮد‪ .‬ﺗﺄﺧﻴﺮ ﺑﻴﺸﺘﺮ از ‪ 48‬ﺳﺎﻋﺖ ﻗﺎﺑﻞ ﻗﺒﻮل ﻧﻴﺴﺖ‪.‬‬
‫• ﻗﻄﻊ ﺑﻮدن اﻳﻨﺘﺮﻧﺖ ﺧﻮاﺑﮕﺎه‪ ،‬ﻛﻨﺪي ﭘﺎﻳﮕﺎه اﻳﻨﺘﺮﻧﺘﻲ داﻧﺸﻜﺪه‪ ،‬ﺗﻤﺎم ﺷﺪن ﻛﺎرت اﻳﻨﺘﺮﻧﺖ و … ﻫﻴﭻﻛﺪام دﻟﻴﻞ‬
‫ﻣﻮﺟﻬﻲ ﺑﺮاي ﺗﺄﺧﻴﺮ ﻧﻴﺴﺘﻨﺪ‪ .‬ﺑﻨﺎﺑﺮاﻳﻦ ﭘﻴﺸﻨﻬﺎد ﻣﻲﺷﻮد ﺟﻮابﻫﺎي ﺧﻮد را در داﻧﺸﻜﺪه ارﺳﺎل ﻛﻨﻴﺪ‪.‬‬
‫• ﻫﺮﮔﻮﻧﻪ روﻧﻮﺷﺖ‪ ،1‬ﺑﺮاي ﻣﻨﺒﻊ روﻧﻮﺷﺖ و ﻫﻤﭽﻨﻴﻦ ﻧﺴﺨﻪﻫﺎي روﻧﻮﻳﺴﻲ ﺷﺪه ‪ -2‬ﻧﻤﺮه در ﭘﻲ ﺧﻮاﻫﺪ داﺷﺖ‪.‬‬
‫• ﺗﻼش ﺑﺮاي اﺳﺘﻔﺎده از ﻣﻨﺎﺑﻊ ﺳﻴﺴﺘﻢ ﻣﺎﻧﻨﺪ ﻛﺎرت ﺻﺪا و ﭘﺮﻳﻨﺘﺮ و ﻧﻮﺷﺘﻦ ﺑﻪ ﻓﺎﻳﻞ و ‪ ...‬ﻣﻨﺠﺮ ﺑﻪ درﻳﺎﻓﺖ ﻧﻤﺮهي‬
‫ﺻﻔﺮ در اﻳﻦ ﺗﻤﺮﻳﻦ ﻣﻲﺷﻮد‪.‬‬
‫• ﺳﻮاﻻت ﺧﻮد را ﺑﺎ ﻓﺮﺳﺘﺎدن اﻳﻤﻴﻞ ﺑﻪ آدرس ‪ [email protected]‬ﻣﻄﺮح ﻛﻨﻴﺪ‪.‬‬
‫• ﻧﺤﻮه ﺗﺼﺤﻴﺢ ﺗﻤﺮﻳﻨﻬﺎي ‪ 1،2،3‬و‪ 5‬ﺑﺼﻮرت ﺧﻮدﻛﺎر )‪ (Online Judge‬اﺳﺖ و ﺑﻪ ﺗﻤﺮﻳﻦ ‪ 4‬در ﻣﻮﻗﻊ ﺗﺤﻮﻳﻞ‬
‫ﺣﻀﻮري ﻧﻤﺮه داده ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺗﻮﺟﻪ ﻓﺮﻣﺎﻳﻴﺪ ﻛﻪ ﺗﺤﻮﻳﻞ ﺣﻀﻮري ﺑﺮاي اﻳﻦ ﺗﻤﺮﻳﻦ اﺟﺒﺎري اﺳﺖ و در ﺗﺤﻮﻳﻞ‬
‫ﺣﻀﻮري‪ ،‬ﻓﻘﻂ ﻧﺤﻮه ﻛﺪﻧﻮﻳﺴﻲ و ﻣﻨﻄﻖ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﻣﻮرد ﭘﺮﺳﺶ ﻗﺮار ﻣﻴﮕﻴﺮد و در ﺻﻮرﺗﻲ ﻛﻪ ﺷﻤﺎ ﻧﺘﻮاﻧﻴﺪ ﻣﻨﻄﻖ‬
‫ﺧﻮد را ﺑﺪرﺳﺘﻲ ﺑﻴﺎن ﻛﻨﻴﺪ‪ ،‬ﻧﻤﺮه ﺗﻤﺮﻳﻦ ﻣﻮرد ﻧﻈﺮ را ﻧﺨﻮاﻫﻴﺪ ﮔﺮﻓﺖ و اﻳﻦ ﺗﻘﻠﺐ ﻧﻴﺰ ﻣﺤﺴﻮب ﺧﻮاﻫﺪ ﮔﺮدﻳﺪ‪.‬‬
‫ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ ﺣﻀﻮري ‪ 19‬و‪ 20‬اﺳﻔﻨﺪ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪2‬‬
‫‪1‬‬
‫ﻛﭙﻲ ﻳﺎ ﻫﻤﺎن ﻛُﭗ‬
‫ﺗﻤﺮﻳﻦ ‪(Sine.java) 1‬‬
‫ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺷﻜﻞ زﻳﺮ را ﭼﺎپ ﻛﻨﺪ‪) .‬ﺑﺪون ورودي!( ﺑﺮاي ﭘﻴﺎدهﺳﺎزي اﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺣﺘﻤﺎ از ﺣﻠﻘﻪ ‪ for‬ﺗﻮ در ﺗﻮ‬
‫اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪ .‬در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﻧﻤﺮه اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﻪ ﺷﻤﺎ ﺗﻌﻠﻖ ﻧﺨﻮاﻫﺪ ﮔﺮﻓﺖ‪) .‬راﻫﻨﻤﺎﺋﻲ‪ :‬از ﺗﺎﺑﻊ ‪ sin‬اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪(.‬‬
‫ﺧﺮوﺟﻲ‬
‫‪....................*.......................................*....................‬‬
‫‪...............***********.............................***********...............‬‬
‫‪............*****************.......................*****************............‬‬
‫‪..........*********************...................*********************..........‬‬
‫‪.........***********************.................***********************.........‬‬
‫‪.......***************************.............***************************.......‬‬
‫‪......*****************************...........*****************************......‬‬
‫‪....*********************************.......*********************************....‬‬
‫‪...***********************************.....***********************************...‬‬
‫‪..*************************************...*************************************..‬‬
‫*********************************************************************************‬
‫‪..*************************************...*************************************..‬‬
‫‪...***********************************.....***********************************...‬‬
‫‪....*********************************.......*********************************....‬‬
‫‪......*****************************...........*****************************......‬‬
‫‪.......***************************.............***************************.......‬‬
‫‪.........***********************.................***********************.........‬‬
‫‪..........*********************...................*********************..........‬‬
‫‪............*****************.......................*****************............‬‬
‫‪...............***********.............................***********...............‬‬
‫‪....................*.......................................*....................‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪3‬‬
‫ﺗﻤﺮﻳﻦ ‪(Perfect.java) 2‬‬
‫ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻋﺪد ‪ n‬را ﺑﮕﻴﺮد و ﻣﺸﺨﺺ ﻛﻨﺪ ﻛﻪ ﻛﺎﻣﻞ اﺳﺖ ﻳﺎ ﻧﻪ‪ .‬ﻋﺪد ﻛﺎﻣﻞ ﻋﺪدي اﺳﺖ ﻛﻪ ﻣﺠﻤﻮع ﻣﻘﺴﻮم‪-‬‬
‫ﻋﻠﻴﻪﻫﺎي ﺳﺮه آن )ﻫﻤﻪي ﻣﻘﺴﻮمﻋﻠﻴﻪﻫﺎ ﺑﻪ ﺟﺰ ﺧﻮد ﻋﺪد( ﺑﺮاﺑﺮ آن ﻋﺪد ﺑﺎﺷﺪ‪.‬‬
‫ﺗﺬﻛﺮ‪ :‬ﺣﺪاﻛﺜﺮ ﻋﺪدي ﻛﻪ ﺑﻌﻨﻮان ورودي ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ داده ﻣﻲ ﺷﻮد‪ ،‬ﻋﺪد ‪ 1000000‬اﺳﺖ‪.‬‬
‫ﻣﺜﺎل‬
‫ورودي‬
‫ﺧﺮوﺟﻲ‬
‫‪6‬‬
‫‪Yes‬‬
‫ﻣﺜﺎل‬
‫ورودي‬
‫ﺧﺮوﺟﻲ‬
‫‪24‬‬
‫‪No‬‬
‫ﺗﻤﺮﻳﻦ ‪(InverseWord.java) 3‬‬
‫ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻛﻠﻤﺎت داﺧﻞ ﻳﻚ رﺷﺘﻪ )ﻛﻪ ﺑﺎ ﻓﺎﺻﻠﻪ از ﻫﻢ ﺟﺪا ﺷﺪهاﻧﺪ( را ﻣﻌﻜﻮس ﻛﻨﺪ‪) .‬ﺗﺮﺗﻴﺐ ﻛﻠﻤﺎت ﺗﻐﻴﻴﺮي‬
‫ﻧﻤﻲﻛﻨﺪ و ﻋﻼﺋﻢ ﻧﮕﺎرﺷﻲ ? و ! و ‪ .‬و ‪ ,‬ﺟﺰﺋﻲ از ﻛﻠﻤﻪ ﺑﻪ ﺣﺴﺎب ﻧﻤﻲآﻳﻨﺪ‪(.‬‬
‫ﺗﺬﻛﺮ‪ :‬ﻃﻮل رﺷﺘﻪ ﻫﺎي ورودي‪ ،‬ﺣﺪاﻛﺜﺮ ‪ 1000‬ﺣﺮف اﺳﺖ‪.‬‬
‫ﻣﺜﺎل‬
‫ﺧﺮوﺟﻲ‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪4‬‬
‫?‪sihT si rimA. ohW era uoy‬‬
‫ورودي‬
‫?‪This is Amir. Who are you‬‬
‫ﺗﻤﺮﻳﻦ ‪(Napier.java) 4‬‬
‫در ﺻﻮرﺗﻲ ﻛﻪ ﻳﻚ ﺟﺎﻳﮕﺸﺖ اﺗﻔﺎﻗﻲ از ‪ n‬ﻋﻨﺼﺮ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪ ،‬اﺣﺘﻤﺎل اﻳﻨﻜﻪ اﻳﻦ ﺟﺎﻳﮕﺸﺖ ﭘﺮﻳﺶ‪ 2‬ﺑﺎﺷﺪ‪ ،‬ﺑﺮاﺑﺮ ﺑﺎ ‪ e-1‬ﺧﻮاﻫﺪ‬
‫ﺑﻮد‪ .‬ﺑﻨﺎﺑﺮاﻳﻦ ﻣﻲ ﺗﻮاﻧﻴﻢ ﺑﻪ اﻳﻦ ﻃﺮﻳﻖ ﺗﻘﺮﻳﺒﻲ از ﻋﺪد ﻧﭙﺮ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪ .‬ﻛﺎري ﻛﻪ ﺷﻤﺎ ﺑﺎﻳﺪ اﻧﺠﺎم دﻫﻴﺪ اﻳﻦ اﺳﺖ ﻛﻪ ﺑﺮﻧﺎﻣﻪ‪-‬‬
‫اي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ در اﺑﺘﺪا دو ﻋﺪد ‪ m‬و ‪ n‬را ﺑﻪ ﻋﻨﻮان ورودي ﺑﮕﻴﺮد )‪ m‬ﺑﺮاﺑﺮ ﺗﻌﺪاد دﻓﻌﺎﺗﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﺟﺎﻳﮕﺸﺘﻬﺎ ﺗﻮﻟﻴﺪ‬
‫ﺷﻮد و ‪ n‬ﻃﻮل ﺟﺎﻳﮕﺸﺖ اﺳﺖ( و ﺳﭙﺲ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻦ اﻋﺪاد ﺗﻘﺮﻳﺒﻲ ﺑﺮاي ﻋﺪد ﻧﭙﺮ ﺑﻴﺎﺑﺪ‪) .‬دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ ﻣﻲﺗﻮاﻧﻴﺪ ﺑﺮاي‬
‫ﺗﻮﻟﻴﺪ ﻳﻚ ﺟﺎﻳﮕﺸﺖ از ‪ n‬ﻋﻨﺼﺮ‪ ،‬ﻳﻚ ﺗﺎس ‪ n‬وﺟﻬﻲ )ﺗﺎﺳﻲ ﻛﻪ از ‪ 1‬ﺗﺎ ‪ n‬داﺷﺘﻪ ﺑﺎﺷﺪ!( را ﺗﺎ زﻣﺎﻧﻲ ﺑﻴﻨﺪازﻳﺪ ﻛﻪ ﺗﻤﺎﻣﻲ‬
‫اﻋﺪاد‪ ،‬ﻳﻚ و ﻓﻘﻂ ﻳﻚ ﺑﺎر ﻇﺎﻫﺮ ﺷﻮﻧﺪ‪ .‬ﺑﻪ اﻳﻦ ﻣﻌﻨﺎ ﻛﻪ ﻣﺜﻼ اﮔﺮ ﺗﺎس را اﻧﺪاﺧﺘﻴﻢ و ﻋﺪدي آﻣﺪ ﻛﻪ در اﻳﻦ ﺟﺎﻳﮕﺸﺖ ﻳﻚ ﺑﺎر‬
‫آن را ﻗﺮار دادهاﻳﻢ‪ ،‬ﺑﺎﻳﺪ ﻣﺠﺪدا ﺗﺎس را اﻧﺪاﺧﺖ‪(.‬‬
‫ﻣﺜﺎل‬
‫ورودي‬
‫ﺧﺮوﺟﻲ‬
‫‪2.73224043715847‬‬
‫‪1000 1000‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪ 2‬ﻣﻲﺗﻮاﻧﻴﺪ ﺑﻪ ﻛﺘﺎب رﻳﺎﺿﻲ ﻋﻤﻮﻣﻲ ‪ 2‬ﺧﻮد ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ! ﭘﺮﻳﺶ ﺟﺎﻳﮕﺸﺘﻲ اﺳﺖ ﻛﻪ ﻫﻴﭻ ﻋﺪدي در آن ﺳﺮ ﺟﺎي ﺧﻮد ﻧﺒﺎﺷﺪ‪ .‬ﺳﺮ ﺟﺎي ﺧﻮد ﻳﻌﻨﻲ ﻣﺤﻠﻲ ﻛﻪ ﻫﺮ‬
‫ﻋﺪد در ﺻﻮرت ﻣﺮﺗﺐ ﺑﻮدن ﻟﻴﺴﺖ در آن ﻗﺮار ﻣﻲﮔﻴﺮد‪.‬‬
‫‪5‬‬
‫ﺗﻤﺮﻳﻦ ‪(MySplit.java) 5‬‬
‫ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ دو رﺷﺘﻪ ‪ str1‬و ‪ str2‬را از ورودي ﺑﺨﻮاﻧﺪ و ﺳﭙﺲ رﺷﺘﻪي ‪ str1‬را ﺑﻪ وﺳﻴﻠﻪي ﺟﺪاﻛﻨﻨﺪهي ‪str2‬‬
‫ﺟﺪا ﻛﻨﺪ‪ .‬رﺷﺘﻪي ﺧﺮوﺟﻲ ﺑﺎﻳﺪ ﺑﻪ وﺳﻴﻠﻪي ﻛﺎراﻛﺘﺮ ﻓﺎﺻﻠﻪ از ﻫﻢ ﺟﺪا ﺷﺪه ﺑﺎﺷﺪ‪) .‬رﺷﺘﻪي ‪ str1‬ﻛﺎراﻛﺘﺮ ﻓﺎﺻﻠﻪ ﻧﺪارد( )ﺣﻖ‬
‫اﺳﺘﻔﺎده از ﺗﺎﺑﻊ ‪ split‬در ﻛﻼس ‪ String‬را ﻧﺪارﻳﺪ! زﻳﺮا در ﺑﺮﺧﻲ از ﺟﺎﻫﺎ ﺑﻪ ﻣﺸﻜﻞ ﺑﺮﻣﻲﺧﻮرد ﻛﻪ در آﻳﻨﺪه ﺧﻮاﻫﻴﺪ‬
‫ﻓﻬﻤﻴﺪ‪(.‬‬
‫ﻣﺜﺎل‬
‫ورودي‬
‫ﺧﺮوﺟﻲ‬
‫‪J v Progr mmingCourse‬‬
‫‪JavaProgrammingCourse a‬‬
‫ﻣﺜﺎل‬
‫ورودي‬
‫ﺧﺮوﺟﻲ‬
‫‪J aProgrammingCourse‬‬
‫‪JavaProgrammingCourse av‬‬
‫ﻣﺜﺎل‬
‫ورودي‬
‫ﺧﺮوﺟﻲ‬
‫!‪C IsNotJava‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول ﺑﺮﻧﺎﻣﻪ ﺳﺎزي ﺷﻲءﮔﺮا‬
‫‪6‬‬
‫‪C++IsNotJava! +‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‬