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