VB 复习范围.docx

上传人:b****5 文档编号:5657134 上传时间:2022-12-30 格式:DOCX 页数:63 大小:1.93MB
下载 相关 举报
VB 复习范围.docx_第1页
第1页 / 共63页
VB 复习范围.docx_第2页
第2页 / 共63页
VB 复习范围.docx_第3页
第3页 / 共63页
VB 复习范围.docx_第4页
第4页 / 共63页
VB 复习范围.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

VB 复习范围.docx

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

VB 复习范围.docx

VB复习范围

程序设计

1.'-------------------------------------------------

'【程序设计】

'-------------------------------------------------

'题目:

编写函数fun,函数的功能是:

计算两个正整数的

'最大公约数,并显示。

如:

'两个数为15、20,结果显示"5"

'要求使用Do...Loop语句来实现。

Do

r=mModn

Ifr=0ThenExitDo

m=n

n=r

Loop

fun=n

'-------------------------------------------------

'注意:

请在指定的事件内编写代码

'代码只能写在两行标识之间

'不得修改已有代码

'保存时不得修改窗体和工程文件的名称及路径,否则后果自负。

'-------------------------------------------------

2.'-------------------------------------------------

'【程序设计】

'-------------------------------------------------

'题目:

编写函数fun,函数的功能是:

当x的初值为10,

'每年增长率为百分之一,计算多少年以后x的值能达到y,

'并显示所需年数的值(变量名必须为n)。

'要求使用Do...LoopUntil语句来实现。

x=10

n=0

Do

x=x*1.01

n=n+1

LoopUntilx>=y

fun=n

'-------------------------------------------------

'注意:

请在指定的事件内编写代码

'代码只能写在两行标识之间

'不得修改已有代码

'保存时不得修改窗体和工程文件的名称及路径,否则后果自负。

'-------------------------------------------------

3.'-------------------------------------------------

'【程序设计】

'-------------------------------------------------

'题目:

编写函数fun,函数的功能是:

求从m到n的奇数的乘积并显示,

'如:

m为2,n为5时,显示"15"

'存储连乘的乘积的变量必须为Product

'要求使用For语句来实现。

Product=1

Fori=mTon

IfiMod2<>0ThenProduct=Product*i

Nexti

fun=Product

'-------------------------------------------------

'注意:

请在指定的事件内编写代码

'代码只能写在两行标识之间

'不得修改已有代码

'保存时不得修改窗体和工程文件的名称及路径,否则后果自负。

'-------------------------------------------------

4.'-------------------------------------------------

'【程序设计】

'-------------------------------------------------

'题目:

编写函数fun,函数的功能是:

计算并输出给定

'整数n的所有因子之和(不包括1与自身)。

规定

'n的值不大于1000.

'例如:

n的值为855时,应输出704。

Dims,iAsInteger

Fori=2Ton-1

IfnModi=0Then

s=s+i

EndIf

Next

Fun=s

'-------------------------------------------------

程序填空

1.编程求1-10之间任一数字的阶乘。

OptionExplicit

PrivateSubCommand1_Click()

DimxAsInteger

x=Val(Text1.Text)

Ifx>=1Andx<=10Then

Label2.Caption=Text1

'**********FILL**********

text2.Text=CStr(fac(x))

EndSub

PrivateFunctionfac(nAsInteger)AsLong

DimiAsInteger

DimsAsLong

s=1

Fori=1Ton

'**********FILL**********

s=s*i

Nexti

'**********FILL**********

fac=s'返回函数值

EndFunction

PrivateSubCommand2_Click()

End

EndSub

2.编写一个求三个数最大值的函数max(x,y,z),然后调用此函数求下列表达式的值,首先在文本框中输入a,b,c

三个数,然后单击"计算"按钮,在文本框中输出表达式的值m。

表达式为:

m=max(a,b,c)*max(a+b,b,c)-max(a,b,

b+c)

OptionExplicit

PrivateSubCommand1_Click()

DimaAsInteger,bAsInteger

DimcAsInteger,mAsInteger

a=Val(Text1.Text)

b=Val(Text2.Text)

c=Val(Text3.Text)

'**********FILL**********

m=max(a,b,c)*max(a+b,b,c)-max(a,b,b+c)

'**********FILL**********

Text4.Text=CStr(m)

EndSub

PrivateFunctionmax(ByValxAsInteger,ByValyAsInteger,ByValzAsInteger)AsInteger

'**********FILL**********

max=x

Ifmax

Ifmax

EndFunction

PrivateSubCommand2_Click()

End

EndSub

3.求质因子。

设计如图所示的程序界面,并完善下面的程序代码。

按原文件名保存,运行正确。

OptionExplicit

PrivateSubCommand1_Click()

DimnAsInteger,a()AsInteger,kAsInteger

DimstAsString,iAsInteger

n=Text1

'**********FILL**********

k=2'给k赋初值

Do

IfnModk=0Then

i=i+1

'**********FILL**********

ReDimPreservea(i)

a(i)=k

n=n\k'设置循环

Else

k=k+1

EndIf

'**********FILL**********

LoopUntiln=1'设置循环loop

st=Text1&"="

'**********FILL**********

Fori=1ToUBound(a)-1

st=st&a(i)&"*"

Nexti

Text2=st&a(i)

EndSub

 

PrivateSubCommand2_Click()

Text1.Text=""

Text2.Text=""

EndSub

PrivateSubCommand3_Click()

End

EndSub

4.随机产生10个两位数整数,利用函数调用求这10个数的最大值和最小值。

OptionExplicit

OptionBase1

PrivateSubCommand1_Click()

Dima(10)AsInteger,iAsInteger

DimmaxAsInteger,minAsInteger

Randomize

Fori=1To10

'**********FILL**********

a(i)=Int(Rnd*90+1)

Printa(i);

Nexti

Print

'**********FILL**********

max=f(a,min)

Printmax;min

EndSub

PrivateFunctionf(b()AsInteger,minAsInteger)AsInteger

DimiAsInteger

'**********FILL**********

f=b

(1)

min=b

(1)

Fori=2ToUBound(b)

'**********FILL**********

Iff

Ifmin>b(i)Thenmin=b(i)

Nexti

EndFunction

5.'本程序段将一个十进制整数m转换成r(2-16)进制字符串

'方法:

将m不断除r取余数,直到商为零,以反序得到结果。

'-------------------------------------------------------

FunctionTranDec$(ByValm%,ByValr%)

DimStrDtoR$

DimiB%,mr%

StrDtoR=""

DoWhilem<>0

'**********FILL**********

mr=mModr

m=m\r

Ifmr>=10Then

'**********FILL**********

StrDtoR=Chr(mr-10+65)&StrDtoR

Else

StrDtoR=mr&StrDtoR

EndIf

Loop

TranDec=StrDtoR

EndFunction

PrivateSubCommand1_click()

Dimm0%,r0%,i%

m0=Val(Text1.Text)

r0=Val(Text2.Text)

Ifr0<2Orr0>16Then

i=MsgBox("输入的R进制数超出范围",vbRetryCancel)

Ifi=vbRetryThen

Text2.Text=""

Text2.SetFocus

Else

End

EndIf

EndIf

Label3.Caption="转换成"&r0&"进制数"

'**********FILL**********

Text3.Text=TranDec(m0,r0)

EndSub

6.

 

OptionBase1

Dima(5,8)AsSingle,athlete(5)AsString*8

PrivateSubCommand1_Click()

DimchAsString

Text1=""

'**********FILL**********

OpenApp.Path&"\in5.dat"ForInputAs#1

Fork=1To5

Input#1,ch

'**********FILL**********

athlete(k)=ch

Text1=Text1&ch&""

Forj=1To8

Input#1,ch

a(k,j)=Val(ch)

Text1=Text1&ch&""

Nextj

Text1=Text1&Chr(13)&Chr(10)

Nextk

Close#1

EndSub

PrivateFunctiongetmark(nAsInteger)AsSingle

s=a(n,1)

maxnum=s

minnum=s

Fork=2To7

'**********FILL**********

s=s+a(n,k)

Ifmaxnum

maxnum=a(n,k)

EndIf

Ifminnum>a(n,k)Then

minnum=a(n,k)

EndIf

Nextk

'**********FILL**********

s=(s-maxnum-minnum)/5

getmark=s*3*a(n,8)

EndFunction

PrivateSubCommand2_Click()

'要求考生编写的程序

'*************begin*************

DimkAsInteger

maxmark=getmark

(1)

m=1

Fork=2To5

Ifmaxmark

maxmark=getmark(k)

m=k

EndIf

Nextk

Text2=athlete(m)

Text3=maxmark

 

'**************end**************

EndSub

PrivateSubCommand3_Click()

'**********FILL**********

OpenApp.Path&"\out5.dat"ForOutputAs#1

Print#1,Text2,Text3

Close#1

EndSub

 

7.对动态数组的生成、排序、插入元素和删除重复元素操作。

设计如图10-2所示的程序界面,并完善下面的程序代码。

按原文件名保存,运行正确。

OptionExplicit

OptionBase1

Dima()AsInteger

'利用随机函数给动态数组赋值

PrivateSubCmd_shengcheng_Click()

DimiAsInteger

ReDima(10)

Randomize

Picture1.Cls

Picture1.Print"初始序列为:

"

'**********FILL**********

Fori=1To10

a(i)=Int(Rnd*90+0)'利用随机函数产生数组元素的值

Picture1.Printa(i);

Nexti

EndSub

PrivateSubCmd_maopao_Click()

DimiminAsInteger,iAsInteger,jAsInteger,tempAsInteger

Dimv

Fori=1ToUBound(a)'用UBound(a)测试a的上界,得到比较次数

'**********FILL**********

Forj=1ToUBound(a)-i

'在每一次比较中,对1到UBound(a)-i的元素两两相邻比较,较大的数沉底

Ifa(j)>a(j+1)Then'次序不对即交换

temp=a(j)

a(j)=a(j+1)

a(j+1)=temp

EndIf

Nextj

Nexti

Picture1.PrintvbCrLf+"冒泡排序后的序列:

"

ForEachvIna

Picture1.Printv;

Nextv

EndSub

'删除数组中重复的数据

PrivateSubCmd_chongfu_Click()

DimkAsInteger,iAsInteger,jAsInteger

DimtAsInteger,nAsInteger,v

k=UBound(a)

n=1

DoWhilen

i=n+1

DoWhilei<=k

'**********FILL**********

Ifa(i)=a(n)Then

'找到重复的元素

Forj=iTok-1

a(j)=a(j+1)

'将后面的元素依次前移一位,则删除第i个元素

Nextj

k=k-1

ReDimPreservea(k)

'删除元素后重新定义数组大小

Else

i=i+1

EndIf

Loop

n=n+1

Loop

Picture1.PrintvbCrLf+"删除重复数据后的序列:

"

ForEachvIna

Picture1.Printv;

Nextv

EndSub

'对有序数列插入数据

PrivateSubCmd_charu_Click()

DimiAsInteger,kAsInteger,xAsInteger,nAsInteger

Dimv,sAsString

n=UBound(a)

s=InputBox("请输入需要查找的数:

")

Ifs=""Then

MsgBox"您输入的为空,退出该过程。

"

ExitSub

Else

x=Val(s)

EndIf

Fork=1Ton

Ifx

Nextk

'**********FILL**********

ReDimPreservea(n+1)

'数组增加一个元素

Fori=nTokStep-1'数组元素后移一个位置,为插入数留出一个位置

a(i+1)=a(i)

Nexti

a(k)=x'将x插入到空位上

Picture1.PrintvbCrLf+"插入数据后的序列:

"

ForEachvIna

Picture1.Printv;

Nextv

EndSub

PrivateSubCommand1_Click()

End

EndSub

8.利用通用对话框部件,完成文件的打开、保存。

并把打开当前考生文件数据显示在文本框(Text1)中,进行排序,

保存到指定文件中,并且输出到文本框(Text2)中。

'本例排序采用冒泡排序算法,读者可以尝试采用其他算法完成程序。

OptionBase1

DimArr()AsInteger,numAsInteger

PrivateSubCommand4_Click()

End

EndSub

PrivateSubComOpen_Click()

DimiAsInteger

'打开文件之间,应先关闭文件

Close#1

'设置过滤器,只显示文本文件

'**********FILL**********

CommonDialog1.Filter="所有文件(*.*)|*.*|文本文件(.txt)|*.txt|VB程序(.VBP)|*.VBP"

'显示"打开"对话框或使用CommonDialog1.ShowOpen

CommonDialog1.Action=1

IfCommonDialog1.FileName<>""Then

Text1.Text=""

OpenCommonDialog1.FileNameForInputAs#1

'读入文件

DoWhileNotEOF

(1)

i=i+1

ReDimPreserveArr(i)

'**********FILL**********

Input#1,Arr(i)

Text1.Text=Text1.Text&Arr(i)&Space

(2)

Loop

num=i

EndIf

Close#1

EndSub

PrivateSubComSave_Click()

CommonDialog1.Filter="文本文件|*.txt|所有文件|*.*"

'**********FILL**********

CommonDialog1.FilterIndex=2

CommonDialog1.FileName="冒泡排序.txt"'设置默认文件名

CommonDialog1.InitDir=App.Path

CommonDialog1.Action=2'显示"另存为"(SaveAs)对话框

OpenCommonDialog1.FileNameForOutputAs#1

Print#1,Text2'把修改后的Text1文本框内容写到文件中

Close#1

EndSub

PrivateSubCommao_Click()

Text2.Text=""

DimtAsInteger

'冒泡排序

Fori=1Tonum

Forj=i+1Tonum

'**********FILL**********

IfArr(i)>Arr(j)Then

t=Arr(i)

Arr(i)=Arr(j)

Arr(j)=t

EndIf

Nextj

Nexti

Fori=1Tonum

Text2=Text2&Arr(i)&Space

(2)

Next

EndSub

PrivateSubComExit_Click()

End

EndSub

9.将{10,50,23,56,78,50,58,61,

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

当前位置:首页 > 初中教育 > 英语

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

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