ﺗﻤﺮﻳﻦ ﺳﺮي اول درس ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲءﮔﺮا ﻣﻮﻋﺪ ارﺳﺎل :ﺷﻨﺒﻪ 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! + ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ
© Copyright 2025 Paperzz