加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB阶段性代码片段总结

发布时间:2020-12-17 00:12:18 所属栏目:大数据 来源:网络整理
导读:前言 一年左右的时间结束了对visual basic 语言的学习,下面对一些典型的代码片段进行总结。 主要内容 VB中的三大控制结构: A、顺序结构程序设计 栗子 在窗体中建立一个命令按钮command1,俩个标签label1,label2,俩个文本框text1,text2. private Sub Com

前言

一年左右的时间结束了对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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读