早教吧 育儿知识 作业答案 考试题库 百科 知识分享

懂VB的高手进来翻译下下面的代码Dimd(10000)AsLongDimkAsIntegerPrivateSubCommand1Click()DimaAsLonga=Val(text1.Text)k=k+1i=kDoWhilei>1Andd(i-1)>ad(i)=d(i-1)i=i-1Loopd(i)=atext2.Text=""F

题目详情
懂VB的高手进来翻译下下面的代码Dim d(10000) As Long Dim k As Integer Private Sub Command1_Click() Dim a As Long a = Val(text1.Text) k = k + 1 i = k Do While i > 1 And d(i - 1) > a d(i) = d(i - 1) i = i - 1 Loop d(i) = a text2.Text = "" For j = 1 To i - 1 text2.Text = text2.Text & Str(d(j)) & "" Next j text2.Text = text2.Text & "(" & Str(d(i)) & ") " For j = i + 1 To k text2.Text -text2.Text & Str(d(j)) & " " Next j text1.Text = "" text1.SetFocus End Sub 麻烦把每行都说清楚点~解释的好的可以追加分数!!!
▼优质解答
答案和解析
程序功能是为输入的数字用插入法进行排序。在 text1 文本框打入数字,按 Command1 按钮输入,text2 文本框显示输入过的数字,按从小到大次序排列,刚刚输入的数字前后加括号,以作识别。以下把程序逐行解释: Dim d(10000) As Long ' 表格全局变量,数组 d 是长整型,一开始全部是 0 Dim k As Integer ' 表格全局变量,k 是整型,一开始是 0 Private Sub Command1_Click() ' 点击 Command1 按钮开始运行以下子程序 Dim a As Long ' 局部变量,a 是整型 a = Val(text1.Text) ' 把 text1 文本框中的数值存到 a 里。 k = k + 1 ' k 增加 1,记住一共按过多少次 Command1,即输入过多少个数字。 i = k ' 把 k 的值存到 i 里。 Do While i > 1 And d(i − 1) > a ' 从d 表最后一个元素 d(k − 1) 开找到不比 a 大的数字。 d(i) = d(i − 1) ' 如果比 a大,数字往后移一格,留空位置。 i = i − 1 ' i 减少 1。 Loop ' 处理下一个靠前的元素。 d(i) = a ' 找到前面的数字不比 a 大或者已经到表头了,就插入数字 a。 text2.Text = "" ' 把 test2 文本框清空,准备输出。 For j = 1 To i − 1 ' 重复以下动作,范围是 j从 1 到 i − 1,就是刚才不比 a 大的数字。 text2.Text = text2.Text & Str(d(j)) & "" ' 把数组 d 里储存的数字打印到 text2 里。 Next j ' 处理下一个 j(如果前面没有数字,不会打印任何东西) text2.Text = text2.Text & "(" & Str(d(i)) & ") " ' 把刚插入的数字前后加括号,打印到 text2。 For j = i + 1 To k ' 重复以下动作,从插入的位置后面一个数字到表末。 text2.Text -text2.Text & Str(d(j)) & " " '' 把数组 d 里储存的数字打印到 text2 里。 Next j ' 处理下一个 j(如果后面没有数字,不会打印任何东西) text1.Text = "" ' 把输入文本框 text1 清空。 text1.SetFocus ' 焦点定在输入文本框 text1,方便下一个输入 End Sub ' 子程序结束 希望能帮到你,如有疑问,请继续追问。