HW4.pdf

‫ﺗﻤﺮﻳﻦ ﺳﺮﻱ ﭼﻬﺎﺭﻡ ﻣﺒﺎﻧﻲ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ‪C++‬‬
‫‪-‬‬
‫ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ ﺩﻭﺷﻨﺒﻪ ‪ 19‬ﺁﺫﺭ ‪1386‬‬
‫ﺗﻤﺮﻳﻦ ﻫﺎﻱ ﺧﻮﺩ ﺭﺍ ﺑﻪ ﻓﺮﻣﺖ ‪ zip‬ﻭ ﺑﺎ ﻧﺎﻡ ‪ HW4_StudentID‬ﮐﻪ ﺩﺭ ﺁﻥ ‪ StudentID‬ﺷﻤﺎﺭﻩ ﺩﺍﻧﺸﺠﻮﻳﻲ ﺷﻤﺎﺳﺖ‪ ،‬ﺑﻪ ﺁﺩﺭﺱ‬
‫‪ [email protected]‬ﺑﻔﺮﺳﺘﻴﺪ‪.‬‬
‫‪-‬‬
‫ﺑﻪ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﻣﺸﺎﺑﻪ ﻧﻤﺮﻩ ﻣﻨﻔﻲ ﺗﻌﻠﻖ ﺧﻮﺍﻫﺪ ﮔﺮﻓﺖ‪.‬‬
‫ﻣﺴﺎﻟﻪ ﺍﻭﻝ ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫ﻣﺮﺗﺐﺳﺎﺯﻱ ﺩﺭﺟﻲ‬
‫ﺩﺭ ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ ﻣﻲﺧﻮﺍﻫﻴﻢ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻣﺮﺗﺐ ﺳﺎﺯﻱ ﺩﺭﺟﻲ‪ 1‬ﺭﺍ ﮐﻪ ﻓﻠﻮﭼﺎﺭﺕ ﺁﻥ ﺭﺍ ﺩﺭ ﺗﻤﺮﻳﻦ ﺳﺮﻱ ﺍﻭﻝ ﺩﻳﺪﻳﺪ‪ ،‬ﺑﻪ ﺯﺑﺎﻥ ‪ c‬ﭘﻴﺎﺩﻩﺳﺎﺯﻱ‬
‫ﮐﻨﻴﻢ‪ .‬ﺩﺍﺩﻩﻫﺎﻱ ﻧﺎﻣﺮﺗﺐ ﺑﻪ ﺻﻮﺭﺕ )‪ (integer‬ﺑﻮﺩﻩ ﻭ ﺩﺭ ﻳﮏ ﻓﺎﻳﻞ ﺑﻪ ﺁﺩﺭﺱ ‪ c:\input.txt‬ﺫﺧﻴﺮﻩ ﺷﺪﻩﺍﻧﺪ )ﺩﺭ ﻫﺮ ﺧﻂ ﻳﮏ ﻋﺪﺩ(‪.‬‬
‫ﺗﻌﺪﺍﺩ ﺍﻳﻦ ﺩﺍﺩﻩ ﻫﺎ ﺩﺭ ﺧﻂ ﺍﻭﻝ ﺍﻳﻦ ﻓﺎﻳﻞ ﺫﺧﻴﺮﻩ ﺷﺪﻩ ﺍﺳﺖ )ﻳﻌﻨﻲ ﻓﺎﻳﻠﻲ ﺑﺎ ‪ n‬ﺩﺍﺩﻩ ﺻﺤﻴﺢ‪ ،‬ﺩﺍﺭﺍﻱ ‪ n+1‬ﺧﻂ ﻣﻲﺑﺎﺷﺪ ﮐﻪ ﺩﺭ ﺧﻂ ﺍﻭﻝ‬
‫ﻋﺪﺩ ‪ n‬ﺫﺧﻴﺮﻩ ﺷﺪﻩ ﺍﺳﺖ(‪.‬‬
‫ﺑﺮﻧﺎﻣﻪﺍﻱ ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ﺩﺍﺩﻩﻫﺎﻱ ﻧﺎﻣﺮﺗﺐ ﺭﺍ ﺍﺯ ﺍﻳﻦ ﻓﺎﻳﻞ ﺧﻮﺍﻧﺪﻩ ﻭ ﺩﺍﺩﻩﻫﺎﻱ ﻣﺮﺗﺐ ﺷﺪﻩ ﺭﺍ ﺩﺭ ﻓﺎﻳﻞ ﺧﺮﻭﺟﻲ ﻭ ﺩﺭ ﺁﺩﺭﺱ ‪c:\output.txt‬‬
‫ﺫﺧﻴﺮﻩ ﮐﻨﺪ )ﻫﺮ ﺧﻂ ﻳﮏ ﻣﻘﺪﺍﺭ ﻭ ﻣﺠﻤﻮﻋﺎ ‪ n‬ﺧﻂ(‪ .‬ﻫﻤﭽﻨﻴﻦ ﻣﻲﺩﺍﻧﻴﻢ‪< 1000 :‬‬
‫ﻣﺴﺎﻟﻪ ﺩﻭﻡ ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫ﮐﻠﻤﺎﺕ ﻣﻌﮑﻮﺱ‬
‫ﺑﺮﻧﺎﻣﻪ ﺍﻱ ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ﻳﮏ ﺭﺷﺘﻪ )ﺣﺎﻭﻱ ﮐﻠﻤﺎﺗﻲ ﮐﻪ ﺑﺎ ﻓﺎﺻﻠﻪ ﺍﺯ ﻫﻢ ﺟﺪﺍ ﺷﺪﻩﺍﻧﺪ( ﺭﺍ ﺍﺯ ﮐﺎﺭﺑﺮ ﮔﺮﻓﺘﻪ ﻭ ﺗﻤﺎﻡ ﮐﻠﻤﺎﺕ ﺁﻥ ﺭﺷﺘﻪ ﺭﺍ‬
‫ﻣﻌﮑﻮﺱ ﮐﺮﺩﻩ ﻭ ﺭﺷﺘﻪ ﺣﺎﺻﻞ ﺭﺍ ﺩﺭ ﺧﺮﻭﺟﻲ ﻧﻤﺎﻳﺶ ﺩﻫﺪ‪) .‬ﺗﺮﺗﻴﺐ ﮐﻠﻤﺎﺕ ﺗﻐﻴﻴﺮ ﻧﻤﻲﮐﻨﺪ(‬
‫ﻣﺜﺎﻟﻲ ﺍﺯ ﺍﺟﺮﺍﻱ ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ‪:‬‬
‫‪Enter your string: This is a Test‬‬
‫‪The reverse is: sihT si a tseT‬‬
‫‪Insertion Sort‬‬
‫‪1‬‬
‫ﻣﺴﺎﻟﻪ ﺳﻮﻡ ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫ﺿﺮﺏ ﻣﺎﺗﺮﻳﺴﻲ‬
‫ﺑﺮﻧﺎﻣﻪﺍﻱ ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ﺩﻭ ﻣﺎﺗﺮﻳﺲ‬
‫ﻣﺤﺎﺳﺒﻪ ﺣﺎﺻﻠﻀﺮﺏ‬
‫×‬
‫=‬
‫×‬
‫ﻭ‬
‫×‬
‫ﺭﺍ ﺍﺯ ﺩﻭ ﻓﺎﻳﻞ ﺑﺎ ﺁﺩﺭﺱ ﻫﺎﻱ ‪ c:\MatrixB.txt , c:\MatrixA.txt‬ﺧﻮﺍﻧﺪﻩ ﻭ ﭘﺲ ﺍﺯ‬
‫‪ ،‬ﻧﺘﻴﺠﻪ ﺭﺍ ﺩﺭ ﻓﺎﻳﻞ ‪ c:\MatrixC.txt‬ﺫﺧﻴﺮﻩ ﮐﻨﺪ‪ .‬ﺩﺭ ﺻﻮﺭﺗﻲ ﮐﻪ ﻣﺎﺗﺮﻳﺲﻫﺎ ﻗﺎﺑﻞ ﺿﺮﺏ ﻧﺒﺎﺷﻨﺪ‪ ،‬ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ‬
‫ﺑﺎﻳﺪ ﻳﮏ ﭘﻴﻐﺎﻡ ﺧﻄﺎ ﺩﺭ ﺧﺮﻭﺟﻲ ﭼﺎﭖ ﮐﻨﺪ‪.‬‬
‫ﺩﺭ ﺳﻄﺮ ﺍﻭﻝ ﻓﺎﻳﻠﻬﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺎﺗﺮﻳﺲ ﻫﺎﻱ ‪ A, B, C‬ﺍﺑﻌﺎﺩ ﻣﺎﺗﺮﻳﺲ )ﺑﺘﺮﺗﻴﺐ ﺗﻌﺪﺍﺩ ﺳﻄﺮﻫﺎ ﻭ ﺳﺘﻮﻥﻫﺎ( ﻭ ﺩﺭ ﺧﻄﻬﺎﻱ ﺑﻌﺪ‪ ،‬ﺩﺭ ﻫﺮ ﺧﻂ ﻳﮏ ﺳﻄﺮ‬
‫ﺍﺯ ﻣﺎﺗﺮﻳﺲ ﺫﺧﻴﺮﻩ ﻣﻲﺷﻮﺩ‪ .‬ﺍﻋﺪﺍﺩ ﻫﺮ ﺳﻄﺮ ﺑﺎ ﻳﮏ ‪ space‬ﺍﺯ ﻫﻢ ﺟﺪﺍ ﺷﺪﻩﺍﻧﺪ‪.‬‬
‫‪−1‬‬
‫ﻣﺜﻼ ﻓﺎﻳﻞ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺎﺗﺮﻳﺲ ‪10‬‬
‫‪0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪ 0‬ﭼﻨﻴﻦ ﺫﺧﻴﺮﻩ ﻣﻲﺷﻮﺩ‪:‬‬
‫‪9‬‬
‫‪4 −13‬‬
‫ﺗﻤﺎﻡ ﺩﺭﺍﻳﻪﻫﺎﻱ ﻣﺎﺗﺮﻳﺲﻫﺎ ﺭﺍ ﺍﻋﺪﺍﺩ ‪ integer‬ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ .‬ﻫﻤﭽﻨﻴﻦ ﻣﻲﺩﺍﻧﻴﻢ ‪≤ 100 :‬‬
‫‪3‬‬
‫‪,‬‬
‫‪, ,‬‬
‫‪−1‬‬
‫‪10‬‬
‫‪0‬‬
‫‪3‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪9‬‬
‫‪4 −13‬‬
‫ﻣﺴﺎﻟﻪ ﭼﻬﺎﺭﻡ ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬
‫ﺯﻳﺮ ﺭﺷﺘﻪ‬
‫ﺑﺮﻧﺎﻣﻪ ﺍﻱ ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ‪ 2‬ﺭﺷﺘﻪ ﺍﺯ ﮐﺎﺭﺑﺮ ﮔﺮﻓﺘﻪ ﻭ ﺍﮔﺮ ﺭﺷﺘﻪ ﺍﻭﻝ ﺩﺭ ﺩﺍﺧﻞ ﺭﺷﺘﻪ ﺩﻭﻡ ﺗﮑﺮﺍﺭ ﺷﺪﻩ ﺑﻮﺩ‪ ،‬ﻣﺤﻞ ﺍﻭﻟﻴﻦ ﺗﮑﺮﺍﺭ ﺁﻥ ﻭ ﺩﺭ ﻏﻴﺮ ﺍﻳﻦ‬
‫ﺻﻮﺭﺕ ﻋﺪﺩ ‪ 0‬ﺭﺍ ﭼﺎﭖ ﮐﻨﺪ‪ .‬ﺣﺮﻭﻑ ﺑﺰﺭﮒ ﻭ ﮐﻮﭼﮏ ﺍﻧﮕﻠﻴﺴﻲ ﺩﺭ ﺍﻳﻦ ﺭﺷﺘﻪﻫﺎ ﻣﺘﻤﺎﻳﺰ ﻧﻴﺴﺘﻨﺪ‪.‬‬
‫ﻣﺜﺎﻝﻫﺎﻳﻲ ﺍﺯ ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ‪:‬‬
‫‪Enter String1: bcf‬‬
‫‪Enter String2: abcd abce abcf‬‬
‫‪12‬‬
‫‪Enter String1: is‬‬
‫‪Enter String2: This is a test. It is TEST1‬‬
‫‪3‬‬
‫‪Enter String1: TEST‬‬
‫‪Enter String2: This is a test. It is TEST2‬‬
‫‪11‬‬
‫‪Enter String1: test2‬‬
‫‪Enter String2: This is a test. It is TEST3‬‬
‫‪0‬‬