17.【加試題】用VB編寫一個模擬在900個觀眾中產(chǎn)生10個中獎號碼的程序,每位觀眾用三位數(shù)字進(jìn)行編號,要求產(chǎn)生的10個號碼不能重復(fù),并且升序排列輸出.
①檢查產(chǎn)生號碼是否重復(fù):把產(chǎn)生的中獎號碼放在數(shù)組a中,新產(chǎn)生的號碼已經(jīng)產(chǎn)生的號碼進(jìn)行一一對比,如果找到相等的數(shù),則重新產(chǎn)生新號碼.
②找到新產(chǎn)生號碼存放的數(shù)組下標(biāo):從下標(biāo)為1的數(shù)組元素開始,新號碼(第i個號碼)分別與它們進(jìn)行一一比較,找到第一個比新號碼大的數(shù),該數(shù)所在的下標(biāo)就是新號碼應(yīng)存放的下標(biāo).如果在已經(jīng)產(chǎn)生的數(shù)中沒有找到比新號碼大的數(shù),則新號碼應(yīng)存放在下標(biāo)為i的數(shù)組元素中.下表以產(chǎn)生第5個號碼為例,如果產(chǎn)生的號碼是150,第一個比它大的數(shù)是a(2),下標(biāo)為2的數(shù)組元素應(yīng)存放新號碼;如果產(chǎn)生的號碼是300,則新號碼應(yīng)存放在下標(biāo)為5的數(shù)組元素中.
數(shù)組元素 |
a(1) |
a(2) |
a(3) |
a(4) |
數(shù)組元素的值 |
120 |
188 |
211 |
278 |
③移動數(shù)組元素到新的位置:如果在已經(jīng)產(chǎn)生的號碼中找到比新號碼大的數(shù),從上一個產(chǎn)生的號碼開始,到新號碼應(yīng)存放的數(shù)組元素,依次把它們向后面移動.以②中產(chǎn)生150為例,從a(4)開始,讓a(5)的值等于a(4),a(4)的值等于a(3),依此類推,直到新號碼應(yīng)存放的數(shù)組元素a(2)為止.
④將新產(chǎn)生的號碼放在相應(yīng)的數(shù)組元素中.
程序運行的界面如圖所示,實現(xiàn)上述功能的VB程序代碼如下
(1)程序中橫線處①應(yīng)填入
;程序中橫線處②應(yīng)填入
.
(2)加框處的程序段實現(xiàn)的功能是
.