0VB复习总结.docx

上传人:b****4 文档编号:4408720 上传时间:2022-12-01 格式:DOCX 页数:22 大小:64.15KB
下载 相关 举报
0VB复习总结.docx_第1页
第1页 / 共22页
0VB复习总结.docx_第2页
第2页 / 共22页
0VB复习总结.docx_第3页
第3页 / 共22页
0VB复习总结.docx_第4页
第4页 / 共22页
0VB复习总结.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

0VB复习总结.docx

《0VB复习总结.docx》由会员分享,可在线阅读,更多相关《0VB复习总结.docx(22页珍藏版)》请在冰豆网上搜索。

0VB复习总结.docx

0VB复习总结

复习要点2

一、选择结构语句的应用2

【典型例程1】(不同区间的判别,进入各分支定义不同的公式,if的嵌套)2

【典型例程2】(根据变量不同取值,进入多分支语句的不同分支处理)3

【典型例程3】(使用if语句对是否满足某条件进行判断)4

二、循环语句的应用4

【典型例程4】(利用循环语句进行累加或累乘)4

【典型例程5】(利用循环语句计算具有变化规律的公式)5

【典型例程6】(利用循环语句对某指定范围内的数进行逐一处理,找出符合条件的数)5

【典型例程7】(利用多重循环进行多个数据各种可能组合的搜索,找出满足条件的数)5

三、数组的定义和使用6

【典型例程8】(数组元素生成和存放数列元素,数组下标和数列元素编号对应)6

【典型例程9】(对多个数据进行统计,使用数组(计数、求和、求平均、求最大最小值))6

【典型例程10】(数组元素的排序,过程调用)6

四、过程和函数的定义和使用7

【典型例程11】(过程和函数的定义和调用,比较)7

【典型例程12】(函数的返回值,调用方式)7

五、文件的读写8

【典型例程13】(顺序文件和随机文件的读写)8

典型题例11

一、数据逐位的处理11

【典型例程14】(整除、取余,分离每位数字)11

【典型例程15】(分离数字,两两比较,标志位的使用)11

二、字符串的处理12

【典型例程16】(取子串MID,转换函数CHR和ASC逐一取出每个字符,字母转换加密)12

【典型例程17】(不同类型字符的判断:

数字、大写字母、小写字母、其他字符)12

【典型例程18】(统计各字母出现的次数,数组的使用)13

【典型例程19】(实际应用)13

三、特殊数的判断14

【典型例程20】(素数判断、函数调用)14

【典型例程21】(形成各种组合按条件判断)14

四、数列公式的计算15

【典型例程22】(数列的计算)15

【典型例程23】(数列的计算)15

复习要点

一、选择结构语句的应用

If<条件表达式>Then

<程序段1>

[Else

<程序段2>]

EndIf

SelectCase<数值|字符串表达式>

Case<值的列表1>

[<程序段1>]

Case<值的列表2>

[<程序段2>]

……

[Case<值的列表n>

[<程序段n>]]

[CaseElse

<程序段n+1>]

EndSelect

【典型例程1】(不同区间的判别,进入各分支定义不同的公式,if的嵌套)

输入一个一元二次方程ax2+bx+c=0的3个系数,求方程的两个根。

PrivateSubForm_Click()

Dima,b,c,d,x1,x2,p,qAsSingle

a=Val(InputBox("a="))

b=Val(InputBox("b="))

c=Val(InputBox("c="))

d=b*b-4*a*c

Ifd>=0Then

Ifd>0Then

x1=(-b+Sqr(d))/2*a

x2=(-b-Sqr(d))/2*a

Print"方程有两个不同的实根:

"

Print"x1=";x1

Print"x2=";x2

Else

x1=(-b)/2*a

Print"方程有两个相同的实根:

"

Print"x1=x2=";x1

EndIf

Else

p=(-b)/2*a

q=Sqr(-d)/2*a

Print"方程有两个不同的虚根:

"

Print"x1=";p;"+";q;"i"

Print"x2=";p;"-";q;"i"

EndIf

EndSub

【典型例程2】(根据变量不同取值,进入多分支语句的不同分支处理)

(select语句)任意输入10个百分制成绩,输出每个分数分数对应的级别。

PrivateSubCommand1_Click()

Dimscore,iAsInteger

Fori=1To10

score=InputBox("score=","input")

SelectCasescore

Case0To60

MsgBox("不及格")

Case60To69

MsgBox("差")

Case70To79

MsgBox("中")

Case80To89

MsgBox("良")

Case90To100

MsgBox("优")

CaseElse

MsgBox("输入有误")

EndSelect

Nexti

EndSub

(if的多分支语句)一企业员工的奖金根据利润额计算。

计算规则为:

利润低于或等于20万元时,奖金可提10%;利润在20万到40万元之间时,高于20万元的部分,可提成8%;40万到60万之间时,高于40万元的部分,可提成5%;60万到100万之间时,高于60万元的部分,可提成3%;高于100万元时,超过100万元的部分按1%提成。

提示用户输入利润额,编程计算并显示应发奖金总数。

PrivateSubCommand1_Click()

DimincomeAsSingle,profitAsSingle

income=Val(Text1.Text)

Ifincome<=0Then

MsgBox"输入有误!

"

ElseIfincome<=20Then

profit=income*0.1

ElseIfincome<=40Then

profit=(income-20)*0.08+20*0.1

ElseIfincome<=60Then

profit=(income-40)*0.05+20*0.08+20*0.1

ElseIfincome<=100Then

profit=(income-60)*0.03+20*0.05+20*0.08+20*0.1

Else

profit=(income-100)*0.01+40*0.03+20*0.05+20*0.08+20*0.1

EndIf

Label3.Caption=profit

EndSub

【典型例程3】(使用if语句对是否满足某条件进行判断)

任意输入一个年份和月份,输出该月份对应的天数。

PrivateSubCommand1_Click()

Dimyear,month,dayAsInteger

year=Val(InputBox("输入年份:

",,""))

month=Val(InputBox("输入月份:

",,""))

SelectCasemonth

Case1,3,5,7,8,10,12

day=31

Case4,6,9,11

day=30

Case2:

IfyearMod400=0OryearMod4=0AndyearMod100<>0Then

day=28

Else

day=29

EndIf

CaseElse

Print"输入有误!

"

EndSelect

MsgBoxStr(year)+"年"+Str(month)+"月有"+Str(day)+"天!

"

EndSub

二、循环语句的应用

For<循环变量>=<初值>To<终值>[Step<步长>]

<循环体>

Next[<循环变量>]

While<条件表达式>

<语句序列>

Wend

Do[While|Until<条件表达式>]

<语句序列>

Loop

【典型例程4】(利用循环语句进行累加或累乘)

计算阶乘和:

1!

+2!

+3!

+。

+n!

PrivateSubCommand1_Click()

Dimi,fact,nAsInteger

n=InputBox("n=","input")

i=1

s=0

fact=1

Whilei<=n

fact=fact*i

s=s+fact

i=i+1

Wend

MsgBox("1!

+2!

+...+"+Trim(Str(n))+"!

="+Str(s))

EndSub

【典型例程5】(利用循环语句计算具有变化规律的公式)

计算下列公式的值,K值由用户输入决定。

PrivateSubForm_Click()

DimnAsInteger

n=InputBox("n=")

s=1

Fork=1Ton

s=s*(2*k)*(2*k)/(2*k-1)/(2*k+1)

Nextk

Prints

EndSub

【典型例程6】(利用循环语句对某指定范围内的数进行逐一处理,找出符合条件的数)

编写完数程序,输出1000之内的所有完数。

完数是指一个数恰好等于它的因子之和,如6的因子为1、2、3而6=1+2+3,因而6就是完数。

PrivateSubForm_Click()

n=1

DoWhilen<=1000

s=0's用来存放因子之和

Fori=1Ton-1'用数n除1到n-1

IfnModi=0Then'若i是n的因子,则将s加上该因子

s=s+i

EndIf

Next

Ifs=nThenPrintn

n=n+1

Loop

EndSub

【典型例程7】(利用多重循环进行多个数据各种可能组合的搜索,找出满足条件的数)

变化的鸡兔同笼的问题:

提示用户输入鸡、兔和袋鼠的总只数和总脚数(默认袋鼠有3条腿),编程计算并显示出所有可能的鸡、兔和袋鼠数量组合?

PrivateSubform_Click()

DimhAsInteger,fAsInteger

DimxAsInteger,yAsInteger,zAsInteger

h=Val(InputBox("鸡、兔、袋鼠的总只数","请输入","0"))

f=Val(InputBox("鸡、兔、袋鼠的总脚数","请输入","0"))

Form1.Cls

Print"鸡兔袋鼠"

Forx=1ToInt(f/2)

Fory=1ToInt(f/4)

z=h-x-y

If2*x+4*y+3*z=fThen

Printx,y,z

EndIf

Nextz

Nexty

Nextx

EndSub

三、数组的定义和使用

【典型例程8】(数组元素生成和存放数列元素,数组下标和数列元素编号对应)

打印输出Fibonacci数列的前20项。

Fabonacci数列的特点是:

1n=1

Fib(n)1n=2

fib(n-2)+fib(n-1)n>=3

PrivateSubForm_Click()

DimiAsInteger,fib(1To20)AsInteger

fib

(1)=1:

fib

(2)=1

Fori=3To20

fib(i)=fib(i-1)+fib(i-2)

Next

Fori=1To20

Printfib(i),

IfiMod4=0ThenPrint'打印换行

Next

EndSub

【典型例程9】(对多个数据进行统计,使用数组(计数、求和、求平均、求最大最小值))

编写一个用来统计某班级英语成绩平均值的程序。

PrivateSubCommand1_Click()

Dimscore(1To15)'定义数组

Fori=1To5

score(i)=Val(InputBox("请输入第"&i&"位同学成绩","成绩录入",0))

Sum=Sum+score(i)

Next

Avg=Sum/5'求平均成绩

Print"平均成绩是:

",Avg

EndSub

【典型例程10】(数组元素的排序,过程调用)

随机生成20个100以内的整数,将20个数中大的10个数和小的10个数分成两组,先按从大到小的顺序输出大的10个数,再按从小到大的顺序输出小的10个数。

要求排序过程调用过程sort完成。

PrivateSubCommand1_Click()

Dims(1To20)AsInteger

Randomize

Fori=1To20

s(i)=Int(Rnd*100+1)

Label1.Caption=Label1.Caption+Str(s(i))

Next

Callsort(s,20)

Fori=1To10

Label2.Caption=Label2.Caption+Str(s(i))

Nexti

Fori=20To11Step-1

Label3.Caption=Label3.Caption+Str(s(i))

Nexti

EndSub

PrivateSubsort(s()AsInteger,nAsInteger)

Fori=1Ton-1

k=i

Forj=i+1Ton

Ifs(k)

k=j

EndIf

Nextj

Ifk<>iThen

temp=s(i):

s(i)=s(k):

s(k)=temp

EndIf

Nexti

EndSub

四、过程和函数的定义和使用

【典型例程11】(过程和函数的定义和调用,比较)

计算矩形面积。

SubArea1(length,width)

Dims

s=length*width

MsgBox"矩形面积为:

"&s

EndSub

functionArea2(length,width)asinteger

area2=length*width

Endfunction

PrivateSubForm_Click()

Dima,b

a=Val(InputBox("请输入矩形长:

"))

b=Val(InputBox("请输入矩形宽:

"))

callarea1(a,b)

print"矩形面积为:

";area2(a,b)

EndSub

【典型例程12】(函数的返回值,调用方式)

要求用函数过程判断素数。

Functionprime(nAsInteger)

Fori=2Tosqr(n)

IfnModi=0ThenExitFor

Next

Ifi>sqr(n)Thenprime=1Elseprime=0

EndFunction

PrivateSubForm_Click()

DimaAsInteger

a=InputBox("请输入一个整数","判断素数",1)

b=prime(a)

Ifb=1ThenPrint"素数"ElsePrint"合数"

EndSub

五、文件的读写

【典型例程13】(顺序文件和随机文件的读写)

顺序文件的读写:

PrivateSubCommand1_Click()

'显示文件

Picture1.Cls

Openmypath+"\student.txt"ForInputAs#1

Picture1.Print"学号";Tab(6);"姓名";Tab(16);"性别";Tab(22);"成绩"

DoUntilEOF

(1)

LineInput#1,NewLine

Picture1.PrintNewLine+vbCrLf

Loop

Close#1

EndSub

PrivateSubCommand2_Click()

'追加记录

id=Val(Text1.Text)

nam=Text2.Text

score=Val(Text3.Text)

sex=IIf(Option1.Value,"男","女")

Openmypath+"\student.txt"ForAppendAs#1

Print#1,id;Tab(6);nam;Tab(16);sex;Tab(22);score

Picture1.Printid;Tab(6);nam;Tab(16);sex;Tab(22);score

Close#1

Text1.Text=""

Text2.Text=""

Text3.Text=""

Option1.Value=True

Text1.SetFocus

EndSub

随机文件的读写:

PrivateTypestudtype

idAsInteger

nameAsString*8

sexAsString*2

scoreAsSingle

EndType

DimstudentAsstudtype

DimmypathAsString

PrivateSubForm_Load()

mypath=CurDir("D")

EndSub

PrivateSubCommand2_Click()

'追加记录

student.id=Val(Text1.Text)

student.name=Text2.Text

student.score=Val(Text3.Text)

student.sex=IIf(Option1.Value,"男","女")

Openmypath+"\student.txt"ForRandomAs#1Len=Len(student)

Put#1,LOF

(1)/Len(student)+1,student

Picture1.PrintStr(student.id);Tab(6);student.name;Tab(16);student.sex;Tab(22);Str(student.score)

Close#1

Text1.Text=""

Text2.Text=""

Text3.Text=""

Option1.Value=True

Text1.SetFocus

EndSub

PrivateSubCommand1_Click()

'显示文件

Picture1.Cls

Openmypath+"\student.txt"ForRandomAs#1Len=Len(student)

Picture1.Print"学号";Tab(6);"姓名";Tab(16);"性别";Tab(22);"成绩"

DoUntilEOF

(1)

Get#1,,student

Ifstudent.id<>0Then

Picture1.PrintStr(student.id);Tab(6);student.name;Tab(16);student.sex;Tab(22);Str(student.score)

EndIf

Loop

Close#1

EndSub

PrivateSubCommand3_Click()

'读取记录

Openmypath+"\student.txt"ForRandomAs#1Len=Len(student)

Get#1,Val(Text4.Text),student

Text1.Text=student.id

Text2.Text=student.name

Text3.Text=student.score

Ifstudent.sex="男"Then

Option1.Value=True

Else

Option2.Value=True

EndIf

Close#1

EndSub

典型题例

一、数据逐位的处理

【典型例程14】(整除、取余,分离每位数字)

任意输入一个位数为十位以内的整数,将各位数字逆序排列,输出新形成的整数。

PrivateSubCommand1_Click()

DimnAsLong,mAsLong

DimtAsLong,kAsLong

n=InputBox("n=","input")

t=n

Whilet<>0

k=tMod10

t=t\10

m=m*10+k

Wend

Printn,"逆序输出结果为:

",m

EndSub

【典型例程15】(分离数字,两两比较,标志位的使用)

编写程序,输出指定位数的数中所有符合条件的数。

条件:

该数是完全平方数,并且至少有两位数字是相同的。

PrivateSubCommand1_Click()

Dims(1To10)AsInteger

m=InputBox("m=")

a=10^(m-1)

b=10^m-1

Forn=aTob

IfSqr(n)=Int(Sqr(n))Then

num=n

Fori=1Tom

s(i)=numMod10

num=num\10

Nexti

flag=0

Fori=1Tom-1

Forj=i+1Tom

Ifs(i)=s(j)Then

flag=1

ExitFor

EndIf

Nextj

Ifflag=1ThenExitFor

Nexti

Ifflag

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1