ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﭘﻴﺸﺮﻓﺘﻪ ﻧﻴﻢ ﺳﺎل دوم 84-85 ﺗﻤﺮﻳﻦ3 ﺷﺮح ﺗﻤﺮﻳﻦ: در اﺛﺮ اﻓﺰاﻳﺶ ﺟﻤﻌﻴﺖ و ﺑﻪ دﻧﺒﺎل ﺁن درﺧﻮاﺳﺖ ﺑﺮاﯼ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ هﺎﯼ ﺟﺪﻳﺪ ﺷﺮﮐﺖ ﻣﺨﺎﺑﺮات در ﻃﯽ ﺳﺎل هﺎﯼ ﻣﺨﺘﻠﻒ ﻣﺠﺒﻮر ﺑﻪ ﺗﻐﻴﻴﺮ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ هﺎﯼ ﻣﻮﺟﻮد ﺷﺪﻩ اﺳﺖ . ﻳﮏ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ از دو ﻗﺴﻤﺖ ﺗﺸﮑﻠﻴﻞ ﺷﺪﻩ اﺳﺖ :ﮐﺪ ﺷﻬﺮ و ﺷﻤﺎرﻩ ﻣﺤﻠﯽ .ﻣﺜﻼ اﮔﺮﮐﺪ ﺷﻬﺮﯼ 021ﺑﺎﺷﺪ ،ﻳﮏ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ در ﺁن ﺷﻬﺮ ﻣﯽ ﺗﻮاﻧﺪ 0211234567ﺑﺎﺷﺪ .ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ هﻴﭻ ﮐﺪ ﭘﻴﺸﻮﻧﺪ ﮐﺪ دﻳﮕﺮ ﻧﻴﺴﺖ. ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺮﻧﺎﻣﻪ اﯼ ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ﺑﺎ ﮔﺮﻓﺘﻦ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﮐﺪ و ﺷﻤﺎرﻩ ﺗﻠﻔﻦ هﺎﯼ ﻳﮏ ﺷﻬﺮ ﺑﻪ ﻋﻼوﻩ ﯼ ﺗﻐﻴﻴﺮات اﯼ ﮐﻪ روﯼ ﺁن هﺎ ﺻﻮرت ﮐﺮﻓﺘﻪ ،ﺷﻤﺎرﻩ ﺗﻠﻔﻦ هﺎ ﯼ ﺗﻐﻴﻴﺮ ﻳﺎﻓﺘﻪ را ﺑﺪهﺪ. اﻳﻦ ﺗﻐﻴﻴﺮات ﺑﻪ ﺳﻪ دﺳﺘﻪ ﻗﻮاﻋﺪ زﻳﺮ ﻣﺤﺪود ﺷﺪﻩ اﻧﺪ. .1ﺗﮑﺮار رﻗﻢ iام در ﺗﻤﺎم ﺷﻤﺎرﻩ هﺎﯼ ﻣﺤﻠﯽ ﻳﮏ ﺷﻬﺮ. • ﺗﮑﺮار رﻗﻢ دوم ،ﺷﻤﺎرﻩ ﯼ 0211234567را ﺑﻪ 02112234567ﺗﺒﺪﻳﻞ ﻣﯽ ﮐﻨﺪ. .2ﺟﺎﺑﺠﺎ ﮐﺮدن رﻗﻢ iام ﺑﺎ رﻗﻢ i+1در ﺗﻤﺎم ﺷﻤﺎرﻩ هﺎﯼ ﻣﺤﻠﯽ ﻳﮏ ﺷﻬﺮ. • ﺟﺎﺑﺠﺎ ﮐﺮدن رﻗﻢ دوم و ﺳﻮم ،ﺷﻤﺎرﻩ ﯼ 021123456را ﺑﻪ 0211324567ﺗﺒﺪﻳﻞ ﻣﯽ ﮐﻨﺪ. .3ﺗﻐﻴﻴﺮ ﮐﺪ ﻳﮏ ﻣﻨﻄﻘﻪ . • ﺗﻐﻴﻴﺮ ﮐﺪ 021ﺑﻪ ،0211ﺷﻤﺎرﻩ ﯼ 0211234567را ﺑﻪ 02111234567ﺗﺒﺪﻳﻞ ﻣﯽ ﮐﻨﺪ. ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﺗﻐﻴﻴﺮ ﮐﺪ در ﻗﺎﻋﺪﻩ ﯼ ﺷﻤﺎرﻩ ﯼ 3ﺧﺎﺻﻴﺖ ﭘﻴﺸﻮﻧﺪ ﯼ ﮐﺪ هﺎ را ﺣﻔﻆ ﻣﯽ ﮐﻨﺪ . ورودﯼ هﺎ: ﻗﺴﻤﺖ اول ورودﯼ ﮐﺪ ﺷﻬﺮ هﺎ را ﻧﺸﺎن ﻣﯽ دهﺪ. ﺧﻂ اول ﺷﺎﻣﻞ ﻋﺪدﯼ اﺳﺖ ﮐﻪ ﻧﺸﺎن دهﻨﺪﻩ ﯼ ﺗﻌﺪاد ﮐﺪ هﺎ ﯼ ﻣﻮﺟﻮداﺳﺖ ،اﻳﻦ ﻋﺪد در ﻣﺤﺪودﻩ ﯼ 1 ≤ A ≤ 1000ﻗﺮار دارد. Aﺧﻂ ﺑﻌﺪﯼ ﺑﻪ ﺷﮑﻞ زﻳﺮ هﺴﺘﻨﺪ: area-code area-name ﮐﻪ در ﻋﺒﺎرت ﺑﺎﻻ area-codeﻳﮏ رﺷﺘﻪ اﺳﺖ ﮐﻪ ﺣﺪاﻗﻞ 1و ﺣﺪاﮐﺜﺮ 5رﻗﻢ اﺳﺖ و ﻧﺸﺎن دهﻨﺪﻩ ﯼ ﮐﺪ ﻣﻨﻄﻘﻪ اﺳﺖ و area-nameﻳﮏ رﺷﺘﻪ اﺳﺖ ﮐﻪ ﺣﺪاﻗﻞ 1و ﺣﺪاﮐﺜﺮ 20ﺣﺮف دارد ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ دو ﺻﻮرت uppercaseو lowercaseﺁﻣﺪﻩ ﺑﺎﺷﺪ. ﻗﺴﻤﺖ دوم ورودﯼ ﺗﻐﻴﻴﺮاﺗﯽ ﮐﻪ روﯼ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ هﺎ ﺻﻮرت ﮔﺮﻗﺘﻪ را ﺑﺎ اﺳﺘﻔﺎدﻩ از ﺷﻤﺎرﻩ 3ﻗﺎﻋﺪﻩ ﯼ ﺑﺎﻻ ﺗﻮﺻﻴﻒ ﻣﯽ ﮐﻨﺪ. اوﻟﻴﻦ ﺧﻂ اﻳﻦ ﻗﺴﻤﺖ ﻋﺪد Rﻗﺮار داردﮐﻪ ﻧﺸﺎن ﻣﯽ دهﺪ ﭼﻪ ﺗﻌﺪاد ﻗﺎﻋﺪﻩ اﻋﻤﺎل ﺷﺪﻩ اﺳﺖ ،ﺳﭙﺲ در Rﺧﻂ ﺑﻌﺪﯼ ﻗﻮاﻋﺪ اﻋﻤﺎل ﺷﺪﻩ ﺑﺎ ﻓﺮﻣﺖ زﻳﺮ ﻣﯽ ﺁﻳﻨﺪ: year rule-info در ﻋﺒﺎرت ﺑﺎﻻ yearﻧﺸﺎن دهﻨﺪﻩ ﯼ ﺳﺎﻟﯽ اﺳﺖ ﮐﻪ ﺗﻐﻴﻴﺮ در ﺁن اﻧﺠﺎم ﺷﺪﻩ ) ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﻴﺪ ﻓﺮض ﮐﻨﻴﺪ ﮐﻪ ﺗﻐﻴﻴﺮ در اوﻟﻴﻦ روز ﺳﺎل ذﮐﺮ ﺷﺪﻩ ﺻﻮرت ﮔﺮﻓﺘﻪ اﺳﺖ( و ﻗﺴﻤﺖ rule-infoاﻃﻼﻋﺎﺗﯽ در ﺑﺎرﻩ ﯼ ﻧﺤﻮﻩ ﯼ ﺗﻐﻴﻴﺮات ﺻﻮرت ﮔﺮﻓﺘﻪ ﻣﯽ دهﺪ .ﺑﺮ ﺣﺴﺐ اﻳﻦ ﮐﻪ ﭼﻪ ﻗﺎﻋﺪﻩ اﯼ اﻋﻤﺎل ﺷﺪﻩ rule-infoﻣﯽ ﺗﻮاﻧﺪ ﻣﺎﻧﻨﺪ ﻳﮑﯽ از ﺳﻪ ﻓﺮم زﻳﺮ ﺑﺎﺷﺪ: • 1 area-name i • 2 area-name i • 3 area-name new-area-code ﻗﺴﻤﺖ ﺳﻮم ﺷﺎﻣﻞ ﺗﻌﺪادﯼ ﺳﻮال اﺳﺖ ﮐﻪ هﺮ ﮐﺪام ﺑﻪ ﻓﺮم زﻳﺮ در ﻳﮏ ﺧﻂ ﺁﻣﺪﻩ اﻧﺪ. year1 year2 number ﺳﻮاﻻت را ﺑﻪ اﻳﻦ ﺷﮑﻞ ﺑﺨﻮاﻧﻴﺪ: در ﺳﺎل year1ﺷﻤﺎرﻩ ﺗﻠﻔﻦ numberوﺟﻮد داﺷﺘﻪ اﺳﺖ ،اﻳﻦ ﺷﻤﺎرﻩ در ﺳﺎل year2ﺑﻪ ﭼﻪ ﺷﻤﺎرﻩ اﯼ ﺗﺒﺪﻳﻞ ﺷﺪﻩ اﺳﺖ؟ ﺑﺮ اﻳﻦ اﺳﺎس ﺷﻤﺎ ﺑﺎﻳﺪ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ دادﻩ ﺷﺪﻩ را ﺑﺮ اﺳﺎس ﻗﺎﻋﺪﻩ هﺎﻳﯽ ﮐﻪ در ﺳﺎﻟﻬﺎﯼ ﺑﻴﻦ year1+1و year2روﯼ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ هﺎ ﺻﻮرت ﮔﺮﻓﺘﻪ ،ﺗﻐﻴﻴﺮ دهﻴﺪ و ﺣﺎﺻﻞ را در ﺧﺮوﺟﯽ ﭼﺎپ ﮐﻨﻴﺪ.ﺳﺎل ﻋﺪدﯼ ﻣﺜﺒﺖ و ﮐﻮﭼﮑﺘﺮ از 10 9 ﻣﯽ ﺑﺎﺷﺪ 0 < year ≤ 10 9 ،و . year1 < year 2 ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ در ﺧﻄﻮﻃﯽ از ورودﯼ از ﺑﻴﺶ از ﻳﮏ رﺷﺘﻪ ﺗﺸﮑﻴﻞ ﺷﺪﻩ اﻧﺪ ،رﺷﺘﻪ هﺎ ﺑﻪ وﺳﻴﻠﻪ ﯼ ﻳﮏ ﻳﺎ ﭼﻨﺪ ﺟﺎﯼ ﺧﺎﻟﯽ) (spaceاز هﻢ ﺟﺪا ﺷﺪﻩ اﻧﺪ. در ﺁﺧﺮﻳﻦ ﺧﻂ ورودﯼ 3ﺻﻔﺮ ﻗﺮار دارد. ﺗﻮﺟﻪ: در ﻣﻮﻗﻊ ﺗﺴﺖ ﮐﺮدن ﺑﺮﻧﺎﻣﻪ ،ورودﯼ هﺎ ﯼ ﺑﺎ ﻓﺮﻣﺖ اﺷﺘﺒﺎﻩ هﻢ ﻣﻤﮑﻦ اﺳﺖ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﯼ ﺷﻤﺎ دادﻩ ﺷﻮد ،ﻟﺬا ﺑﺮﻧﺎﻣﻪ ﯼ ﺷﻤﺎ ﺑﺎﻳﺪ اﻳﻦ ﻗﺎﺑﻠﻴﺖ را داﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ورودﯼ هﺎﯼ ﻧﺎ ﻣﻌﺘﺒﺮ را ﺗﺸﺨﻴﺺ دهﺪ و exceptionهﺎ را handleﮐﻨﺪ. ﺧﺮوﺟﯽ: در هﺮ ﺧﻂ ﺧﺮوﺟﯽ ﺟﻮاب هﺮ ﻳﮏ از ﺳﻮال هﺎ ﮐﻪ ﺷﻤﺎرﻩ ﺗﻠﻔﻦ ﺗﻐﻴﻴﺮ ﻳﺎﻓﺘﻪ اﺳﺖ ،وﺟﻮد دارد. ﻳﮏ ﻧﻤﻮﻧﻪ ورودﯼ و ﺧﺮوﺟﯽ ﺑﺮاﯼ ﻧﻤﻮﻣﻪ در زﻳﺮ ﺁﻣﺪﻩ اﺳﺖ: Oland Moland Boland Kamand 1 Moland 2 3 Moland 0515 2 Boland 3 1 Kamand 1 1 Kamand 1 1 Kamand 1 3 Oland 012345 2005 0311243426 2005 05113837462 2005 03121437478 In.txt 4 021 0511 0311 03121 7 2002 2001 2003 2005 2000 1999 1998 2000 2000 2000 0 0 0 Out.txt 0311244326 051538837462 031214437478 ﻣﻼﺣﻈﺎت: .1 .2 .3 .4 .5 .6 ﺗﻤﺮﻳﻦ را ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﺗﮏ ﻧﻔﺮﻩ اﻧﺠﺎم دهﻴﺪ. اﻳﻦ ﺗﻤﺮﻳﻦ را ﺑﺎﻳﺪ ﺑﺎ اﺳﺘﻔﺎدﻩ از collectionهﺎ در javaﭘﻴﺎدﻩ ﺳﺎزﯼ ﮐﻨﻴﺪ و در ﺻﻮرت ﻧﻴﺎز ﺳﺎﺧﺘﺎر دادﻩ هﺎﯼ ﻻزم را اﻳﺠﺎد ﻧﻤﺎﻳﻴﺪ. ﺑﺮﻧﺎﻣﻪ ﯼ ﺷﻤﺎ ﺑﺎﻳﺪ در زﻣﺎن ﻣﻌﻘﻮل ﺧﺮوﺟﯽ هﺎ را ﺑﺪهﺪ. ورودﯼ هﺎ ﺑﺎﻳﺪ از ﻓﺎﻳﻞ In.txtﺧﻮاﻧﺪﻩ ﺷﻮﻧﺪ و ﺧﺮوﺟﯽ هﺎ در ﻓﺎﻳﻞ Out.txtرﻳﺨﺘﻪ ﺷﻮﻧﺪ. ﻧﺎم ﮐﻼس اﺻﻠﯽ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ HW3.javaﺑﺎﺷﺪ ،در ﻣﻮرد ﻧﺎم ﮐﻼس هﺎﯼ دﻳﮕﺮﯼ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ اﺳﺘﻔﺎدﻩ ﮐﺮدﻩ ﺑﺎﺷﻴﺪ هﻴﭻ ﻣﺤﺪودﻳﺘﯽ وﺟﻮد ﻧﺪارد. ﺑﺮاﯼ ﺗﺤﻮﻳﻞ ﺗﻤﺮﻳﻦ ﻳﮏ emailﺑﺎ ﻣﺸﺨﺼﺎت زﻳﺮ ارﺳﺎل ﮐﻨﻴﺪ: • Recipient: f_sadeghi@ce.sharif.edu • Subject: JAVA-HW3-84111111 • Attachment : HW3-84111111.rar ﻓﺎﻳﻞ HW3-[stid].rarﺑﺎﻳﺪ ﺷﺎﻣﻞ ﻓﺎﻳﻞ هﺎﯼ .javaو .batﺑﺎﺷﺪ. .7در ﺻﻮرﺗﯽ ﮐﻪ ﻓﺮﻣﺖ هﺎﯼ ورودﯼ و ﺧﺮوﺟﯽ ،ﻧﺎم ﻓﺎﻳﻞ هﺎ ﯼ ورودﯼ و ﺧﺮوﺟﯽ و ﻧﺎم ﮐﻼس اﺻﻠﯽ ﺷﻤﺎ ﺑﺎ ﻣﻮارد ﮔﻔﺘﻪ ﺷﺪﻩ ﻣﻄﺎﺑﻘﺖ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻨﺪ ﻧﻤﺮﻩ اﯼ ﺑﻪ ﺷﻤﺎ ﺗﻌﻠﻖ ﻧﺨﻮاهﺪ ﮔﺮﻓﺖ ) ﺑﻪ ﺑﺰرﮔﯽ و ﮐﻮﭼﮑﯽ ﺣﺮوف دﻗﺖ ﮐﻨﻴﺪ (.
© Copyright 2025 Paperzz