早教吧作业答案频道 -->其他-->
懂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 ' 子程序结束 希望能帮到你,如有疑问,请继续追问。
看了懂VB的高手进来翻译下下面的代...的网友还看了以下:
用matlab求最短距离时出现问题,function [D,path,min1,path1]=fl 2020-05-17 …
model:sets:yh/1,2,3/:;fq/1,2,3/:;link(yh,fq):x,d; 2020-06-12 …
matlab图像处理,提取图片的高频分量!我是这样写的:function gOK=laplace( 2020-06-27 …
设ξ1,ξ2,…,ξ9相互独立,Eξi=1,Dξi=1(i=1,2,…,9),则根据切贝谢夫不等式 2020-07-18 …
C语言冒泡排序法,疑问啊~~~~~~~~~~~~~~~~~#include<stdio.h>#de 2020-07-23 …
下列程序运行后的输出结果是()#includemain(){inti=1,j=3printf("% 2020-07-23 …
此一元高次多项式怎么推导f(i)=A(1+i)^(n-1)+(1+i)^(n-2)…(1+i)+1 2020-07-23 …
(求高手解惑)二重积分I=∫∫Dxsinydxdy,D={(x,y)|1≤x≤2,0≤y≤π/2} 2020-07-31 …
懂VB的高手进来翻译下下面的代码Dimd(10000)AsLongDimkAsIntegerPriv 2020-11-01 …
小明对家里冰箱的描述正确的一项是()A.高1.5米,容积180毫升,重60千克B.高1.5米,容积1 2020-11-14 …