實現上述功能的VB程序如下,但加框處代碼有誤,請改正。 Const n=10 Dim d(1To n) As Integer Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,t As Integer '讀取一組正整數,存儲在數組d中,代碼略 i=1 Do While i<=n-1 For j=n To i+1Step-1 If d(j) Mod 2=d(j-1)Mod 2Then If Then'(1) t=d(j):d(j)=d(j-1):d(j-1)=t End If (2) t=d(j):d(j)=d(j-1):d(j-1)=t End If Next j i=i+1 Loop '依次輸出排序后的數據,代碼略 End Sub
17.計算機的基本功能是計算,信息加工處理本質上都是通過計算完成的。現有一圖象模糊處理的算法,以10*10像素圖象的模糊處理為例,具體算法如下: (1)各像素點的顏色信息值(介于0至255之間的一個正整數),存儲至數組a中。 (2)給定模糊處理的模糊中心位置p和模糊半徑r(r>1),中心位置p即為半徑為1的區域, ①確定模糊中心點在如下數陣中的位置。若模糊中心為36時,該模糊中心在數陣中對應位置為第4行第6列; ②根據中心點和模糊半徑確定模糊處理的像素點的范圍。 (3)依序將模糊處理范圍內的像素點進行模糊處理。模糊處理的方式為:最外側的像素點顏色信息不變,中間各像素點的新顏色信息值為該像素點上下左右相鄰四個像素點顏色信息值的平均值。 程序運行時,在文本框Text1中輸入模糊的中心點p,在文本框Text2中輸入模糊的半徑r,窗體加載,通過列表框List1輸出圖象模糊處理前的信息,單擊命令按鈕Command1后通過列表框List2輸出模糊后的圖象信息。程序運行效果如圖b所示。相應的模糊中心位置由橢圓圈注,中間各像素點由矩形框圈注 實現上述功能的VB程序如下。請回答下列問題: (1)若以a(48)為模糊中心,布置成如第17題圖a所示數陣后模糊中心處于數陣的第 行。 (2)請在橫線處填入合適的代碼。 Const n=10 Dim a(1To n*n) As Integer'介于0至255之間的值,存儲10*10圖象像素點的顏色信息 Private Sub Form_Load ( ) '讀取100個正整數,存儲在數組a中以表示10*10圖片的像素點顏色信息,代碼略。 '并按右對齊方式將該圖片的各像素點顏色信息輸出至列表框List1中,代碼略。 End Sub Private Sub Command1_Click ( ) Dim r As Integer,p As Integer Dim i As Integer,j As Integer,k As Integer p=Val(Text1.Text):r=Val(Text2.Text) ①
i=1 Do While j>n j=j-n i=i+1 Loop '確定模糊處理的范圍,處理范圍的起始行,結束行,起始列,結束列保存到i1,i2,j1,j2中,代碼略 For i=i1+1To i2-1'中間像素點的模糊處理 For j=j1+1To j2-1 ②
a(k)=ave(k) Next j Next i '并按右對齊方式將該圖片的各像素點顏色信息輸出至列表框List2中,代碼略。 End Sub Function ave(k As Integer) As Integer ave=③