0VB复习总结Word文档下载推荐.docx

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

0VB复习总结Word文档下载推荐.docx

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

0VB复习总结Word文档下载推荐.docx

(素数判断、函数调用)14

【典型例程21】

(形成各种组合按条件判断)14

四、数列公式的计算15

【典型例程22】

(数列的计算)15

【典型例程23】

复习要点

一、选择结构语句的应用

If<

条件表达式>

Then

<

程序段1>

[Else

程序段2>

]

EndIf

SelectCase<

数值|字符串表达式>

Case<

值的列表1>

[<

]

值的列表2>

程序段2>

……

[Case<

值的列表n>

程序段n>

]]

[CaseElse

<

程序段n+1>

EndSelect

(不同区间的判别,进入各分支定义不同的公式,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

0Then

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

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

Print"

方程有两个不同的实根:

"

x1="

;

x1

x2="

x2

Else

x1=(-b)/2*a

方程有两个相同的实根:

x1=x2="

EndIf

p=(-b)/2*a

q=Sqr(-d)/2*a

方程有两个不同的虚根:

Print"

p;

"

+"

q;

i"

-"

EndSub

(根据变量不同取值,进入多分支语句的不同分支处理)

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

PrivateSubCommand1_Click()

Dimscore,iAsInteger

Fori=1To10

score=InputBox("

score="

"

input"

SelectCasescore

Case0To60

MsgBox("

不及格"

Case60To69

差"

Case70To79

中"

Case80To89

良"

Case90To100

优"

CaseElse

输入有误"

Nexti

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

计算规则为:

利润低于或等于20万元时,奖金可提10%;

利润在20万到40万元之间时,高于20万元的部分,可提成8%;

40万到60万之间时,高于40万元的部分,可提成5%;

60万到100万之间时,高于60万元的部分,可提成3%;

高于100万元时,超过100万元的部分按1%提成。

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

DimincomeAsSingle,profitAsSingle

income=Val(Text1.Text)

Ifincome<

MsgBox"

输入有误!

ElseIfincome<

=20Then

profit=income*0.1

ElseIfincome<

=40Then

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

=60Then

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

=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

(使用if语句对是否满足某条件进行判断)

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

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

MsgBoxStr(year)+"

年"

+Str(month)+"

月有"

+Str(day)+"

天!

二、循环语句的应用

For<

循环变量>

=<

初值>

To<

终值>

[Step<

步长>

]

循环体>

Next[<

While<

语句序列>

Wend

Do[While|Until<

Loop

(利用循环语句进行累加或累乘)

计算阶乘和:

1!

+2!

+3!

+。

+n!

Dimi,fact,nAsInteger

n=InputBox("

n="

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))

(利用循环语句计算具有变化规律的公式)

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

DimnAsInteger

n=InputBox("

n="

s=1

Fork=1Ton

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

Nextk

Prints

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

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

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

n=1

DoWhilen<

=1000

s=0'

s用来存放因子之和

Fori=1Ton-1'

用数n除1到n-1

IfnModi=0Then'

若i是n的因子,则将s加上该因子

s=s+i

Next

Ifs=nThenPrintn

n=n+1

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

变化的鸡兔同笼的问题:

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

PrivateSubform_Click()

DimhAsInteger,fAsInteger

DimxAsInteger,yAsInteger,zAsInteger

h=Val(InputBox("

鸡、兔、袋鼠的总只数"

请输入"

0"

f=Val(InputBox("

鸡、兔、袋鼠的总脚数"

Form1.Cls

鸡兔袋鼠"

Forx=1ToInt(f/2)

Fory=1ToInt(f/4)

z=h-x-y

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

Printx,y,z

Nextz

Nexty

Nextx

三、数组的定义和使用

(数组元素生成和存放数列元素,数组下标和数列元素编号对应)

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

Fabonacci数列的特点是:

1n=1

Fib(n)1n=2

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

=3

DimiAsInteger,fib(1To20)AsInteger

fib

(1)=1:

fib

(2)=1

Fori=3To20

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

Fori=1To20

Printfib(i),

IfiMod4=0ThenPrint'

打印换行

(对多个数据进行统计,使用数组(计数、求和、求平均、求最大最小值))

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

Dimscore(1To15)'

定义数组

Fori=1To5

score(i)=Val(InputBox("

请输入第"

&

i&

位同学成绩"

成绩录入"

0))

Sum=Sum+score(i)

Next

Avg=Sum/5'

求平均成绩

平均成绩是:

Avg

(数组元素的排序,过程调用)

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

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

Dims(1To20)AsInteger

Randomize

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

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

Callsort(s,20)

Fori=1To10

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

Nexti

Fori=20To11Step-1

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

PrivateSubsort(s()AsInteger,nAsInteger)

Fori=1Ton-1

k=i

Forj=i+1Ton

Ifs(k)<

s(j)Then

k=j

Nextj

Ifk<

iThen

temp=s(i):

s(i)=s(k):

s(k)=temp

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

(过程和函数的定义和调用,比较)

计算矩形面积。

SubArea1(length,width)

Dims

s=length*width

矩形面积为:

s

functionArea2(length,width)asinteger

area2=length*width

Endfunction

PrivateSubForm_Click()

Dima,b

请输入矩形长:

请输入矩形宽:

callarea1(a,b)

print"

;

area2(a,b)

(函数的返回值,调用方式)

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

Functionprime(nAsInteger)

Fori=2Tosqr(n)

IfnModi=0ThenExitFor

Ifi>

sqr(n)Thenprime=1Elseprime=0

EndFunction

DimaAsInteger

a=InputBox("

请输入一个整数"

判断素数"

1)

b=prime(a)

Ifb=1ThenPrint"

素数"

ElsePrint"

合数"

五、文件的读写

(顺序文件和随机文件的读写)

顺序文件的读写:

'

显示文件

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

PrivateSubCommand2_Click()

追加记录

id=Val(Text1.Text)

nam=Text2.Text

score=Val(Text3.Text)

sex=IIf(Option1.Value,"

男"

女"

\student.txt"

ForAppendAs#1

Print#1,id;

nam;

sex;

score

Picture1.Printid;

Text1.Text="

Text2.Text="

Text3.Text="

Option1.Value=True

Text1.SetFocus

随机文件的读写:

PrivateTypestudtype

idAsInteger

nameAsString*8

sexAsString*2

scoreAsSingle

EndType

DimstudentAsstudtype

DimmypathAsString

PrivateSubForm_Load()

mypath=CurDir("

D"

student.id=Val(Text1.Text)

student.name=Text2.Text

student.score=Val(Text3.Text)

student.sex=IIf(Option1.Value,"

ForRandomAs#1Len=Len(student)

Put#1,LOF

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

Picture1.PrintStr(student.id);

student.name;

student.sex;

Str(student.score)

Get#1,,student

Ifstudent.id<

PrivateSubCommand3_Click()

读取记录

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

Text1.Text=student.id

Text2.Text=student.name

Text3.Text=student.score

Ifstudent.sex="

Option2.Value=True

典型题例

一、数据逐位的处理

(整除、取余,分离每位数字)

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

DimnAsLong,mAsLong

DimtAsLong,kAsLong

t=n

Whilet<

0

k=tMod10

t=t\10

m=m*10+k

Printn,"

逆序输出结果为:

m

(分离数字,两两比较,标志位的使用)

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

条件:

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

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

flag=0

Fori=1Tom-1

Forj=i+1Tom

Ifs(i)=s(j)Then

flag=1

ExitFor

Ifflag=1ThenExitFor

Ifflag

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

当前位置:首页 > 解决方案 > 学习计划

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

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