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