VB阶段性代码片段总结
前言一年左右的时间结束了对visual basic 语言的学习,下面对一些典型的代码片段进行总结。 主要内容VB中的三大控制结构: A、顺序结构程序设计 栗子 在窗体中建立一个命令按钮command1,俩个标签label1,label2,俩个文本框text1,text2. private Sub Command1_Click() Dim x as integer Dim y as string y="100.23" '将数值形式的字符串赋给y x=y '将字符串变量y赋给整型变量x y=y+20 Text1.Text=x Text2.Text=y End Sub B、选择结构程序设计 栗子 输入三个数a,b,c,输出三者之中最大数 private Sub Command1_Click() dim a as single,b as single,c as single,max as single label1.caption="" a=val(inputbox("请输入第1个数:",",""输入a",0)) b=val(inputbox("请输入第2个数:",""输入b",0)) c=val(inputbox("请输入第3个数:",""输入c",0)) p=a&","&b&","&c p=p&"三个数中最大数是:" max=a if b>max then max=b if c>max then max=c label1.caption=p&max End Sub private sub command2_click() unload me end sub C、循环结构程序设计 栗子 计算1+2+3+......+100 private Sub form_Click() dim s as integer,n as integer show s=0:n=1 do while n<=100 s=s+n n=n+1 loop print "1+2+3+.......+100";s End Sub 选择排序法栗子 随机产生10个10~100之间的整数,使用“选择排序法”由大到小排序,最后输出结果。 (1)利用int(Rnd*91)+10产生10~100之间的随机整数 (2)使用选择排序法由大到小排序,方法如下: 先将10个数存入数组a的10个数组元素中,然后对10个下标变量a(1),a(2),a(3),......a(10)进行选择排序处理。 第一轮:从这10个下标变量中选出最大值,共需比较9次(n个数需要比较n-1次),通过交换把最大值存入a(1). 第二轮:除a(1)之外(a(1)已存放最大值),还剩9个(n-1个)下标变量需要比较选出最大值,共需比较8次(n-2次),通过交换把选出的最大值存入a(2) 根据上述方法,可以总结出任意的第i轮比较进行的操作是:从后n-i+1个数中选出最大者存入a(i),共需比较n-i次 重复上述处理,直至进行到最后一轮,即第九轮(第n-1轮)的比较,此时就需要从最后的2个下标变量a(9),a(10)中选出最大值,需要比较1次,通过交换把最大值存入a(9)(也就是a(n-1))。找出了前9个(n-1个)数,实际上此时a(10)(即a(n))存放的就是整个数组中的最小数了。 综上,使用“选择排序法”对n 个数进行排序,共需比较n-1轮。具体到第i轮需要完成的任务是:对数组后面的n-i+1个下标变量进行比较,需要比较n-i次。 为完成“选择排序”的处理过程,采用二重循环结构进行程序设计,外循环变量i 从1变化到9,共循环9次,即对应9轮;内循环变量从j从i+1变化到10,决定相应轮次的比较次数。 dim a (1 to 10) as integer private sub command1_click() form_load end sub private sub command2_click() p="" for i=1 to 9 '选择排序 for j=i+1 to 10 if a(i) <a(j) then t=a(i):a(i)=a(j):a(j)=t end if next j next i for i=1 to 10 p=p&str(a(i)) & "," next label2.caption=ltrim(left(p,len(p) -1)) end sub private sub form_load() dim p as string randomize p="" for i=1 to 10 do x=int(rnd*91)+10 yes=0 for j=1 to i-1 '使产生数组元素互不相同 if x=a(j) then yes =1:exit for next j loop while yes=1 a(i)=x p=p&str(a(i)) & "," next i label1.caption=ltrim(left(p,len(p)-1)) label2.caption="" end sub 冒泡排序法仍然以10个数由大到小排序为例,冒泡排序总体思想是小数沉底,大数上浮。参加比较的俩个元素是相邻的,每轮比较可以找出一个本轮最小放在本轮最后,使所有大数前移位置。 第1轮比较之后,最小的数沉底,即放到a(10)位置; 第2轮比较a(1)~a(9),使该轮最小数沉底,即放到a(9)位置; 以此类推,最后一轮比较a(1)和a(2),最大数为a(1),比较结束。 代码展示,直接修改上边选择排序程序的command2_click() private sub command2_click() p="" for i=1 to 9 '冒泡排序 for j=1 to 10-i if a(j) <a(j+1) then t=a(j):a(j)=a(j+1):a(j+1)=t end if next j next i for i=1 to 10 p=p&str(a(i)) & "," next i label2.caption=ltrim(left(p,len(p) -1)) end sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |