Assignment5.pdf

Introduction to Programming
Assignment 5
Due: 11:59 pm, Sunday, December 26, 2010
(5/10/1389).
By: Sahar Harati
BoshraTaheri
1
Fall 2010
Sharif University of Technology
‫ﺗﻮﺿﻴﺤﺎت‬
‫ﻗﺒﻞ از ﺷﺮوع ﻣﻮارد زﻳﺮ را ﺑﻪ دﻗﺖ ﺑﺨﻮاﻧﻴﺪ‪:‬‬
‫ در ﻫﺮ ﻳﻚ از ﺑﺮﻧﺎﻣﻪﻫﺎ ﺷﻤﺎرهي داﻧﺸﺠﻮﻳﻲ ﺧﻮد را ﺑﻪ ﺻﻮرت زﻳﺮ ﺑﻨﻮﻳﺴﻴﺪ‪:‬‬
‫‪//ID: your student ID‬‬
‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪:‬‬
‫‪//ID:89654321‬‬
‫ ﺑﻌﺪ از ﻧﻮﺷﺘﻦ ﻫﻤﻪي ﺑﺮﻧﺎﻣﻪﻫﺎ‪ ،‬ﻓﺎﻳﻞ ‪ .cpp‬ﻫﻤﻪي آنﻫﺎ را در ﻳﻚ ﭘﻮﺷﻪ ﺑﺎ‬
‫ﻧﺎم ‪ assignment#5_stdID‬ﻗﺮار دﻫﻴﺪ )ﻛﻪ در آن ‪ stdID‬ﺷﻤﺎرهي‬
‫داﻧﺸﺠﻮﻳﻲ ﺷﻤﺎﺳﺖ(؛ ﻣﺜﻼ ‪ .assignment#5_89654321‬ﺳﭙﺲ اﻳﻦ‬
‫ﭘﻮﺷﻪ را ﻓﺸﺮده ﻛﻨﻴﺪ‪ .‬ﻓﺎﻳﻞ ﻓﺸﺮده ﺷﺪه را ﺑﻪ آدرس‬
‫‪ [email protected]‬ارﺳﺎل‬
‫ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪2‬‬
‫ﺗﻮﺿﻴﺤﺎت )اداﻣﻪ(‬
‫‬
‫‬
‫‬
‫‬
‫ﻋﻨﻮان اﻳﻤﻴﻞ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ‪ assignment#5_stdID‬ﺑﺎﺷﺪ‪ ،‬ﻛﻪ در آن‬
‫‪ stdID‬ﺷﻤﺎرهي داﻧﺸﺠﻮﻳﻲ ﺷﻤﺎﺳﺖ‪.‬‬
‫ﻧﺤﻮهي ورودي ﮔﺮﻓﺘﻦ و ﺧﺮوﺟﻲ دادن ﺑﺮﻧﺎﻣﻪي ﺷﻤﺎ ﺑﺎﻳﺪ دﻗﻴﻘﺎ ﺑﻪ ﺻﻮرت‬
‫ﮔﻔﺘﻪ ﺷﺪه در ﻣﺴﺄﻟﻪ ﺑﺎﺷﺪ‪) .‬ﻣﺜﻼ ﺑﻪ ﻓﺎﺻﻠﻪﻫﺎ و ﺑﺰرگ و ﻛﻮﭼﻚ ﺑﻮدن ﺣﺮوف‬
‫دﻗﺖ ﻛﻨﻴﺪ‪(.‬‬
‫ﺑﻪ ﻫﺮ ﻳﻚ از ﺑﺮﻧﺎﻣﻪﻫﺎي ﺷﻤﺎ ﺗﻌﺪادي ﺗﺴﺖ داده ﺧﻮاﻫﺪ ﺷﺪ‪ .‬ﺗﻮﺻﻴﻪ ﻣﻲﺷﻮد‬
‫ﻛﻪ ﺣﺘﻤﺎ ﻳﻚ ﺑﺎر ﺗﺴﺖﻫﺎي ﻧﻤﻮﻧﻪ را ﺑﻪ ﺑﺮﻧﺎﻣﻪﻫﺎﻳﺘﺎن ﺑﺪﻫﻴﺪ‪.‬‬
‫ﺑﻪ ﺑﺮﻧﺎﻣﻪﻫﺎي ﻣﺸﺎﺑﻪ ﺑﻪ ﻣﻴﺰان ﻧﻤﺮهي ﺳﺆال‪ ،‬ﻧﻤﺮهي ﻣﻨﻔﻲ ﺗﻌﻠﻖ ﺧﻮاﻫﺪ‬
‫ﮔﺮﻓﺖ‪.‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪3‬‬
‫ﻣﺴﺄﻟﻪي اول )ﻧﺎم ﻓﺎﻳﻞ ﺑﺮﻧﺎﻣﻪ‪(ExpressionCheck.cpp :‬‬
‫‪ Stack‬ﻳﻜﻲ از ﺳﺎﺧﺘﻤﺎن دادهﻫﺎي ﭘﺮﻛﺎرﺑﺮد در ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ اﺳﺖ ﻛﻪ در‬
‫ذﺧﻴﺮه ﻛﺮدن و ﺧﻮاﻧﺪن اﻃﻼﻋﺎت از آﻧﻬﺎ از ﺳﻴﺎﺳﺖ ‪LIFO (Last In First‬‬
‫)‪ Out‬اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد‪ .‬ﺑﻪ اﻳﻦ ﻣﻌﻨﺎ ﻛﻪ آﺧﺮﻳﻦ ﻋﻨﺼﺮي را ﻛﻪ در آن‬
‫ذﺧﻴﺮه ﻛﻨﻴﺪ اوﻟﻴﻦ ﻋﻨﺼﺮ ﻗﺎﺑﻞ ﺑﺎزﻳﺎﺑﻲ از آن ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫از ﻛﺎرﺑﺮدﻫﺎي ‪ Stack‬در ﺗﻌﻴﻴﻦ ﻣﺘﻮازن ﺑﻮدن ﻳﺎ ﻧﺒﻮدن ﻳﻚ ﻋﺒﺎرت رﻳﺎﺿﻲ‬
‫اﺳﺖ‪ .‬ﻋﺒﺎرت ﻣﺘﻮازن ﻋﺒﺎرﺗﻲ اﺳﺖ ﻛﻪ ﻫﺮ زﻳﺮ ﻋﺒﺎرﺗﻲ از آن ﻛﻪ ﺑﺎ ﻳﻚ ‘( ’ﻳﺎ‬
‫‘{ ’ﻳﺎ ‘[’ آﻏﺎز ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﺑﺎ ﻳﻚ ‘) ‘ﻳﺎ ‘} ‘ﻳﺎ ‘]‘ )ﺑﻪ ﺗﺮﺗﻴﺐ( ﭘﺎﻳﺎن ﻳﺎﻓﺘﻪ‬
‫ﺑﺎﺷﺪ‪ .‬ﻛﻨﺘﺮل ﻣﺘﻮازن ﺑﻮدن ﻳﻚ ﻋﺒﺎرت ﺑﺎ اﺳﺘﻔﺎده از ‪ Stack‬ﺳﺎده اﺳﺖ‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪4‬‬
‫ﻣﺴﺄﻟﻪي اول )اداﻣﻪ(‬
‫ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﻚ ﻋﺒﺎرت رﻳﺎﺿﻲ را ﺑﻪ ﻋﻨﻮان ورودي ﺑﮕﻴﺮد و ﺑﻪ ﻋﻨﻮان‬
‫ﺧﺮوﺟﻲ ﻋﺒﺎرت ”‪) “Balanced‬در ﺻﻮرت ﻣﺘﻮازن ﺑﻮدن ﻋﺒﺎرت( و ‪“Not‬‬
‫”‪) balanced‬در ﺻﻮرت ﻧﺎﻣﺘﻮازن ﺑﻮدن ﻋﺒﺎرت( را ﭼﺎپ ﻛﻨﺪ‪.‬‬
‫راﻫﻨﻤﺎﻳﻲ‪ :‬رﺷﺘﻪ ورودي را از ﭼﭗ ﺑﻪ راﺳﺖ ﭘﻴﻤﺎﻳﺶ ﻛﻨﻴﺪ‪ .‬در ﻃﻲ اﻳﻦ‬
‫ﭘﻴﻤﺎﻳﺶ از ﺗﻤﺎم ﻛﺎراﻛﺘﺮﻫﺎ ﺑﻪ ﺟﺰ ")"‪ "]" ،"{" ،"}" ،"(" ،‬و "[" ﺻﺮفﻧﻈﺮ‬
‫ﻛﻨﻴﺪ‪ ،‬ﻛﺎراﻛﺘﺮﻫﺎي (‪ { ،‬و [ را در ‪ ،Stack‬ﻗﺮار دﻫﻴﺪ )‪ push‬ﻛﻨﻴﺪ(‪.‬‬
‫ﺑﺮاي ﻫﺮ ﻳﻚ از ﻛﺎراﻛﺘﺮﻫﺎي ) ‪ } ،‬ﻳﺎ ] ﻳﻚ ﻛﺎراﻛﺘﺮ را از روي ‪ Stack‬ﺑﺮدارﻳﺪ‬
‫)‪ pop‬ﻛﻨﻴﺪ( و ﻛﻨﺘﺮل ﻛﻨﻴﺪ ﻛﻪ آﻳﺎ اﻳﻦ دو ﻛﺎراﻛﺘﺮ ﻣﺘﻨﺎﻇﺮ ﻫﺴﺘﻨﺪ ﻳﺎ ﻧﻪ‪ .‬اﮔﺮ‬
‫ﻛﺎراﻛﺘﺮﻫﺎ ﻣﺘﻨﺎﻇﺮ ﻧﺒﺎﺷﻨﺪ و ﻳﺎ ‪ Stack‬ﺧﺎﻟﻲ ﺑﺎﺷﺪ‪ ،‬ﻋﺒﺎرت ﻣﺘﻮازن ﻧﻴﺴﺖ‪.‬‬
‫ﺧﺮوﺟﻲ‬
‫‪Not balanced‬‬
‫‪Sharif University of Technology‬‬
‫ورودي‬
‫‪[(3+a)*4}/r‬‬
‫‪Fall 2010‬‬
‫‪5‬‬
‫ﻣﺴﺄﻟﻪي دوم )ﻧﺎم ﻓﺎﻳﻞ ﺑﺮﻧﺎﻣﻪ‪(MergeSort.cpp :‬‬
‫ﻫﺪف ﻣﺮﺗﺐ ﻛﺮدن آراﻳﻪ ﺑﺎ روش ادﻏﺎم اﺳﺖ اﻳﻦ ﺗﺎﺑﻊ ﺑﺎﻳﺪ ﺑﻪ ﺷﻴﻮه ﺑﺎزﮔﺸﺘﻲ‬
‫ﭘﻴﺎده ﺳﺎزي ﺷﻮد ‪.‬ﺷﻴﻮه ﻛﺎر ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ اﺑﺘﺪا ﻧﻴﻤﻪ اول و ﺳﭙﺲ‬
‫ﻧﻴﻤﻪ دوم آراﻳﻪ ﻣﺮﺗﺐ ﻣﻲ ﺷﻮد و ﺳﭙﺲ اﻳﻦ دو ﺑﺨﺶ در ﻳﻜﺪﻳﮕﺮ ادﻏﺎم ﻣﻲ‬
‫ﺷﻮﻧﺪ ‪.‬ﺷﻜﻞ زﻳﺮ اﺟﺮاي اﻳﻦ اﻟﮕﻮرﻳﺘﻢ را ﺑﺮاي آراﻳﻪ اي ﻫﻔﺖ ﻋﻨﺼﺮي ﻧﻤﺎﻳﺶ‬
‫ﻣﻲ دﻫﺪ‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪6‬‬
(‫ﻣﺴﺄﻟﻪي دوم )اداﻣﻪ‬
7
Fall 2010
Sharif University of Technology
‫ﻣﺴﺄﻟﻪي دوم )اداﻣﻪ(‬
‫ﻋﻤﻞ ﻓﺮاﺧﻮاﻧﻲ ﺗﺎﺑﻊ ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘﻲ آﻧﻘﺪر اداﻣﻪ ﭘﻴﺪا ﻣﻲ ﻛﻨﺪ ﺗﺎ ﺑﻪ آراﻳﻪ‬
‫اي ﺗﻚ ﻋﻀﻮي ﺑﺮﺳﻴﻢ‪ .‬ﺷﻴﻮه ادﻏﺎم ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﺑﺎ داﺷﺘﻦ اﺷﺎره‬
‫ﮔﺮ ﺑﻪ آﻏﺎز ﻫﺮ ﻧﻴﻤﻪ ﻣﺮﺗﺐ ﺷﺪه‪ ،‬ﻣﻲ ﺗﻮان ﺑﺎ ﭘﻴﻤﺎﻳﺶ دو آراﻳﻪ‪ ،‬ﻫﺮﻛﺪام ﻛﻪ‬
‫ﻣﻘﺪار ﻛﻮﭼﻜﺘﺮي دارد در آراﻳﻪ ﺟﺪﻳﺪ ﻗﺮار داد و اﺷﺎره ﮔﺮش را ﺑﻪ ﺟﻠﻮ ﺑﺮد ‪.‬‬
‫اﻳﻦ ﻛﺎر را ﺗﺎ آﺧﺮ اداﻣﻪ ﻣﻲ دﻫﻴﻢ ﺗﺎ دو آراﻳﻪ ادﻏﺎم ﺷﻮﻧﺪ‪.‬‬
‫)‪void MergeSort(int *array, int size‬‬
‫ﺑﺮاي اﻳﻦ ﻛﻪ ﺑﻬﺘﺮ روش ﻛﺎر اﻳﻦ اﻟﮕﻮرﻳﺘﻢ رو ﺑﻔﻬﻤﻴﺪ‪ ،‬ﺑﻪ آدرس زﻳﺮ ﻣﺮاﺟﻌﻪ‬
‫ﻛﻨﻴﺪ )ﺗﻮﺿﻴﺤﺎت ﺧﻮﺑﻲ ﻧﻮﺷﺘﻪ‪:(.‬‬
‫‪http://www.algorithmdesign.net/handouts/MergeSort.pdf‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪8‬‬
‫ﻣﺴﺄﻟﻪي ﺳﻮم )ﻧﺎم ﻓﺎﻳﻞ ﺑﺮﻧﺎﻣﻪ‪(Minesweeper.cpp :‬‬
‫آﻳﺎ ﺗﺎ ﺑﻪ ﺣﺎل ﺑﺎزي ‪ Minesweeper‬را ﺑﺎزي ﻛﺮده اﻳﺪ؟ ﻫﺪف از اﻳﻦ ﺑﺎزي‬
‫ﻳﺎﻓﺘﻦ ﻣﺤﻞ ﻫﻤﻪ ي ﺑﻤﺐ ﻫﺎ در ﻳﻚ ﺻﻔﺤﻪ ي ‪ m×n‬اﺳﺖ‪ .‬در اﻳﻦ ﺑﺎزي‬
‫ﻋﺪدي ﻛﻪ در ﻳﻚ ﻣﺮﺑﻊ ﻧﺸﺎن داده ﻣﻲ ﺷﻮد ﺑﺮاﺑﺮ ﺗﻌﺪاد ﺑﻤﺐ ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ‬
‫در اﻃﺮاف آن وﺟﻮد دارﻧﺪ‪ .‬ﻫﺮ ﻣﺮﺑﻊ ﺣﺪاﻛﺜﺮ ﺑﺎ ‪ 8‬ﺧﺎﻧﻪ ﻫﻤﺴﺎﻳﻪ اﺳﺖ‪.‬‬
‫در ﻧﻤﻮﻧﻪاي ﻛﻪ در اداﻣﻪ ﻣﻲآﻳﺪ ﻣﺮﺑﻊ ‪ 4×4‬ورودي داراي ‪ 2‬ﺑﻤﺐ اﺳﺖ‪ .‬ﺑﻤﺐ ﻫﺎ‬
‫را ﺑﺎ * ﻧﺸﺎن ﻣﻲ دﻫﻴﻢ‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪9‬‬
‫ﻣﺴﺄﻟﻪي ﺳﻮم )اداﻣﻪ(‬
‫ورودي‪:‬‬
‫ﺧﻂ اول ورودي ﺷﺎﻣﻞ ‪ 2‬ﺗﺎ ﻋﺪد ‪ n‬و ‪ (0<m, n<=100) m‬ﻛﻪ ﻧﺸﺎن دﻫﻨﺪه‬
‫ي ﺗﻌﺪاد ﺳﻄﺮﻫﺎ)‪ (n‬و ﺳﺘﻮنﻫﺎي)‪ (m‬ﻣﺮﺑﻊ ﻫﺴﺘﻨﺪ‪ .‬ﻫﺮ ﻳﻚ از ‪ n‬ﺧﻂ ﺑﻌﺪي‬
‫دﻗﻴﻘﺎً ﺷﺎﻣﻞ ‪ m‬ﻛﺎراﻛﺘﺮ اﺳﺖ‪ .‬ﻣﺮﺑﻊ اﻣﻦ ﺑﺎ – و ﻣﺮﺑﻌﻲ ﻛﻪ ﺷﺎﻣﻞ ﺑﻤﺐ اﺳﺖ ﺑﺎ‬
‫* ﻧﺸﺎن داده ﻣﻲ ﺷﻮد‪ .‬ﭘﺎﻳﺎن ورودي ﻫﺎ ﺑﺎ ‪ 0 0‬ﻧﺸﺎن داده ﻣﻲ ﺷﻮد‪.‬‬
‫ﺧﺮوﺟﻲ‪:‬‬
‫ﺑﻪ ازاي ﻫﺮ ﻣﺮﺑﻊ ﭘﻴﺎم ‪ Field #x:‬را در ﻳﻚ ﺧﻂ ﭼﺎپ ﻛﻨﻴﺪ ﻛﻪ ‪ x‬ﺷﻤﺎرهي‬
‫ﻣﺮﺑﻊ ورودي اﺳﺖ ﻛﻪ از ‪ 1‬ﺷﺮوع ﻣﻲ ﺷﻮد‪ n .‬ﺧﻂ ﺑﻌﺪي ﺑﺎﻳﺪ ﺑﻪ ﺟﺎي ﻛﺎراﻛﺘﺮ‬
‫– ﺗﻌﺪاد ﺑﻤﺐ ﻫﺎي اﻃﺮاف آن و ﺑﻪ ازاي ﻛﺎراﻛﺘﺮ * ﺧﻮد آن )*( ﻗﺮار داده ﺷﻮد‬
‫و ﺑﻴﻦ ﻫﺮ دو ﺧﺮوﺟﻲ ﻳﻚ ﺧﻂ ﻓﺎﺻﻠﻪ ي ﺧﺎﻟﻲ ﻗﺮار داده ﺷﻮد‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪10‬‬
‫ورودي‬
44
*------*----35
**-------*--00
11
Fall 2010
‫ﺧﺮوﺟﻲ‬
Field #1:
*100
2210
1*10
1110
Field #2:
**100
33200
1*100
Sharif University of Technology
‫ﻣﺴﺄﻟﻪي ﭼﻬﺎرم )ﻧﺎم ﻓﺎﻳﻞ ﺑﺮﻧﺎﻣﻪ‪(Sort.cpp:‬‬
‫ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻗﺎﺑﻠﻴﺖ ﻣﺮﺗﺐﺳﺎزي ﺑﺮ ﺣﺴﺐ اﻧﻮاع ﻣﺨﺘﻠﻒ دادهﻫﺎ را‬
‫داﺷﺘﻪ ﺑﺎﺷﺪ! ﺑﺮاي ﻣﺮﺗﺐ ﺳﺎزي از ﻫﺮ اﻟﮕﻮرﻳﺘﻢ ﻣﺮﺗﺐﺳﺎزي ﻣﻲﺗﻮاﻧﻴﺪ‬
‫اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺮاي اﻳﻦ ﻛﺎر اﺑﺘﺪا ﺳﻪ ﺗﺎﺑﻊ زﻳﺮ را ﭘﻴﺎدهﺳﺎزي ﻛﻨﻴﺪ‪:‬‬
‫;)][‪ bool cmpStr(char s1[],char s2‬‬
‫;)‪ bool cmpDouble(double d1,double d2‬‬
‫ﻫﺮ دو اﻳﻦ ﺗﻮاﺑﻊ ﺗﻨﻬﺎ زﻣﺎﻧﻲ ‪ True‬ﺑﺮﻣﻲﮔﺮداﻧﻨﺪ ﻛﻪ آرﮔﻮﻣﺎن اول اﻛﻴﺪا ﺑﺰرﮔﺘﺮ‬
‫از آرﮔﻮﻣﺎن دوم ﺑﺎﺷﺪ‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪12‬‬
‫ﻣﺴﺄﻟﻪي ﭼﻬﺎرم )اداﻣﻪ(‬
‫ورودي‪ :‬در ﺧﻂ اول ‪ n‬را ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺗﻌﺪاد دادهﻫﺎﻳﻲﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ﻣﺮﺗﺐ ﺷﻮﻧﺪ‪.‬‬
‫در ﻫﺮ ﻳﻚ از ‪ n‬ﺧﻂ ﺑﻌﺪي اﻃﻼﻋﺎت ﻳﻚ داﻧﺸﺠﻮ را ﺑﮕﻴﺮﻳﺪ‪ .‬اﻳﻦ اﻃﻼﻋﺎت ﺑﻪ‬
‫ﺷﺮح زﻳﺮ ﻫﺴﺘﻨﺪ‪:‬‬
‫ ﺷﻤﺎرهي داﻧﺸﺠﻮﻳﻲ‬
‫ ﻧﺎم ﺧﺎﻧﻮادﮔﻲ داﻧﺸﺠﻮ )ﻧﺎم داﻧﺸﺠﻮ ﺣﺘﻤﺎ ﻳﻚ ﻛﻠﻤﻪاي اﺳﺖ و ﺑﺎ ﺣﺮف ﺑﺰرگ ﺷﺮوع‬
‫ﻣﻲﺷﻮﻧﺪ‪(.‬‬
‫ ﻣﻌﺪل داﻧﺸﺠﻮ‬
‫>‪<stdID> <name> <GPA‬‬
‫در آﺧﺮﻳﻦ ﺧﻂ ورودي ﻳﻜﻲ از ﺳﻪ ﻛﻠﻤﻪي ﻛﻠﻴﺪي زﻳﺮ را ﺑﮕﻴﺮﻳﺪ‪:‬‬
‫ ‪ : -n‬ورودي را ﺑﺮﺣﺴﺐ ﻧﺎم داﻧﺸﺠﻮﻫﺎ ﻣﺮﺗﺐ ﻛﻨﻴﺪ‪.‬‬
‫ ‪ : -g‬ورودي را ﺑﺮﺣﺴﺐ ﻣﻌﺪل داﻧﺸﺠﻮﻫﺎ ﻣﺮﺗﺐ ﻛﻨﻴﺪ‪.‬‬
‫ ‪ : -i‬ورودي را ﺑﺮﺣﺴﺐ ﺷﻤﺎرهي داﻧﺸﺠﻮﻳﻲ داﻧﺸﺠﻮﻫﺎ ﻣﺮﺗﺐ ﻛﻨﻴﺪ‪.‬‬
‫ﺧﺮوﺟﻲ‪ :‬در ﺧﺮوﺟﻲ‪ ،‬ﻣﺮﺗﺐﺷﺪهي دادهﻫﺎ را در ‪ n‬ﺧﻂ ﭼﺎپ ﻛﻨﻴﺪ‪.‬‬
‫‪Sharif University of Technology‬‬
‫‪Fall 2010‬‬
‫‪13‬‬
(‫ﻣﺴﺄﻟﻪي ﭼﻬﺎرم )اداﻣﻪ‬
‫ورودي‬
5
89765432 Sohrabi 18.34
89765433 Mohammadi 17.68
89765434 Rezaee 18.01
89765435 Javadi 16.47
89765436 Mohammadzadeh 18.20
-n
‫ﺧﺮوﺟﻲ‬
89765435 Javadi 16.47
89765433 Mohammadi 17.68
89765436 Mohammadzadeh 18.20
89765434 Rezaee 18.01
89765432 Sohrabi 18.34
.‫* ﺑﻴﻦ وروديﻫﺎ در ﻫﺮ ﺧﻂ ﻳﻚ ﻓﺎﺻﻠﻪ وﺟﻮد دارد‬
14
Fall 2010
Sharif University of Technology