实验3简单的程序设计.docx

上传人:b****6 文档编号:7626051 上传时间:2023-01-25 格式:DOCX 页数:16 大小:69.88KB
下载 相关 举报
实验3简单的程序设计.docx_第1页
第1页 / 共16页
实验3简单的程序设计.docx_第2页
第2页 / 共16页
实验3简单的程序设计.docx_第3页
第3页 / 共16页
实验3简单的程序设计.docx_第4页
第4页 / 共16页
实验3简单的程序设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

实验3简单的程序设计.docx

《实验3简单的程序设计.docx》由会员分享,可在线阅读,更多相关《实验3简单的程序设计.docx(16页珍藏版)》请在冰豆网上搜索。

实验3简单的程序设计.docx

实验3简单的程序设计

实验3简单的程序设计

实验3简单的程序设计

实验目的:

1.掌握表达式、赋值语句的正确书写规则。

2.掌握VB变量的定义和使用,表达式和常用函数的使用。

3.掌握InputBox与MsgBox的使用。

实验3.1函数考察

实验任务:

考察下列函数的值。

Round(-3.5)

Round(3.5)

Chr(66)

Asc("c")

Asc(Chr(99))

Chr(Asc("K"))

Ucase$("abcdefg")

Lcase(“ABC”)

Str(123.45)

Val(“123AB”)

Len(“123程序设计ABC”)

LenB(“123程序设计ABC”)

Ltrim(“ABC”)

String(3,“ABC”)

Instr(“EFABCDEFG”,“ef”)

Instr(2,“EFABCDEFG”,“ef”,1)

Date()

Now()

Time()

实验步骤:

先自己分析以上函数的功能和可能的结果,然后在立即窗口用Print方法求出相应函数的值,对照比较自己的判断。

实验3.2表达式考察

实验任务:

考察下列表达式的值。

Dateadd(“m”,1,#1/30/2000#)

Datediff(“y”,#12/03/1999#,#1/03/2000#)‘计算时间间隔多少日

123+Mid(“123456”,3,2)

123&Mid(“123456”,3,2)

Ucase(Mid(“abcdefgh”,3,4))

16/4–2^5*8/4MOD5\2

实验步骤:

先自己分析表达式的功能和可能的结果,然后在立即窗口用Print方法求出相应表达式的值,对照比较自己的判断。

实验3.3简单打印图形

实验任务:

使用Print方法、Tab函数和String函数设计一个过程,显示如图3-1所示的图形,并将结果保存到文件中。

图3-1实验3.2运行界面

参考代码如下:

PrivateSubForm_Load()

PrintTab(15);String(1,"1")

PrintTab(14);String(3,"2")

PrintTab(13);String(5,"3")

PrintTab(12);String(7,"4")

EndSub

操作提示:

应先将Form窗体的AutoRedraw属性值设为True。

实验3.4考察随机函数

实验任务:

编程实现随机产生30个100-9999之间的任意年份,并显示在列表框List1中,实验结果界面如图3-2所示。

图3-2实验3.4运行界面

参考代码如下:

PrivateSubCommand1_Click()

Dimi,aAsInteger

List1.Clear     '清空列表框

Randomize   '产生随机数种子

Fori=1To30'循环产生30个随机整数

a=Int(Rnd*9900)+100'产生100-9999之间的随机整数

List1.AddItema'将产生的随机数添加到列表框

Nexti

EndSub

实验3.5简单输入输出

实验任务:

设计一个程序让用户从键盘上输入一个人的出生年份,然后显示出该人的生肖。

例如:

1984年出生的人生肖为“鼠”,则1990年出生的人生肖计算公式为(1990-1984Mod12)=6,则1990年出生的人生肖为“马”,因为十二生肖的顺序为:

("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"),程序要求:

(1)使用inputbox函数读取用户输入的出生年份;

(2)能够计算出1984年份后的生肖;

(3)用msgbox函数输出结果。

提示:

本程序在窗体上设计一个按钮即可。

实验3.6温度转换

实验任务:

实现华氏温度与摄氏温度之间转换计算,实验结果界面如图3-3所示。

图3-3实验3.6运行界面

要使用转换的公式是:

'摄氏温度转换为华氏温度,F为华氏

'华氏温度转换为摄氏温度,C为摄氏

要求用两种方法进行转换:

(1)用按钮实现转换。

即单击“华氏转”按钮,则将摄氏温度转换为华氏温度:

同样,单击“摄氏转”按钮,则将华氏温度转换为摄氏温度。

(2)不用命令按钮,当文本输入时直接完成转换。

当用户在摄氏温度文本框中输入结束(以按回车表示),激发KeyPress事件并KeyAscII的值为13时,将摄氏温度转换为华氏温度:

同样,华氏转换为摄氏的实现也是如此。

提示:

假定Textl存放C摄氏温度、Text2存放F华氏温度,则C摄氏转换为F华氏的KeyPress事件过程为:

PrivateSubTextl_KeyPress(KeyAsciiAsinteger)

IfKeyAscii=13Then

Text2=9/5*Textl+32

Endif

EndSub

注意:

Text文本框存放的即使是数字也为String类型,为了使其参与数值运算,可通过Val()函数将字符串转换为数值类型。

实验3.7简单计算

实验任务:

编程输入半径、计算圆周长和圆面积,实验结果界面如图3-4所示。

要求:

对输入的半径进行合法性检查,若发现输入的数中有非法数字,利用MsgBox显示出错信息,利用SetFocus方法定位于出错的文本框,重新输入。

图3-4实验3.7运行界面

思考:

如何修改界面增加一个“保存”按钮,将三个文本框的内容,依次保存到一个文件中?

试一试。

实验3.8求解方程

实验任务:

编程实现任意输入一元二次方程的系数a,b,c,计算并输出方程的两个根xl,x2。

界面如图3-5所示。

要求:

(1)输入a,c,c三个数,为了程序设计的方便可由三个文本框来实现,然后通过求根公式求得方程的根。

计算的结果可通过文本框显示。

(2)为了保证程序运行的正确,对输入的三个数要进行检查,若发现输入的数中有非法数字,利用MsgBox显示出错信息,利用Setfocus方法定位于出错的文本框处,重新输入。

图3-5实验3.8运行界面

实验3.9Shell函数

实验任务:

在窗体上建立两个按钮,分别显示“计算器”和“记事本”(如图3-6所示),利用Shell函数执行对应的应用程序。

图3-6实验3.9运行界面

实验3.10数值计算

实验任务:

编程随机产生一个五位整数,然后逆序输出,产生的数与逆序数同时显示。

如:

产生12345,输出54321。

(注意五位整数的存储类型,不要利用StrReverse函数,利用算术方法)

实验3.11文字处理

实验任务:

编程建立一个文本框,并输入文本。

在该文本中,随机抽取连续6个字符作为流动密码待用。

在右边文本框中显示密码,在左边文本框中将密码部分替换为“******”。

实验结果如图3-7所示。

图3-7实验3.11运行界面

习题3

习题3.1选择题

1.在一个语句内写多条语句时,每个语句之间用()符号分隔。

(A),(B):

(C)、(D);

2.一句语句要在下一行继续写,用()符号作为续行符。

(A)+(B)—(C)_(D)……

3.下面()是合法的变量名。

(A)X_yz(B)123abc(C)integer(D)X—Y

4.下面()是不合法的整常数。

(A)100(B)&O100(C)&H100(D)%100

5.下面()是合法的字符常数。

(A)ABC$(B)"ABC"(C)’ABC’(D)ABC

6.下面()是合法的单精度型变量。

(A)num!

(B)sum%(C)xinte$(D)mm#

7.下面()是不合法的单精度常数。

(A)100!

(B)100.0(C)1E十2(D)100.0D+2

8.表达式16/4—2^5*8/4MOD5\2的值为()。

(A)14(B)4(C)20(D)2

9.数学关系3≤x<10表示成正确的VB表达式为()。

(A)3<=x<10(B)3<=xANDx<10

(C)x>=3ORx<10(D)3<=xAND<10

10.\、/、Mod、*四个算术运算符中,优先级别最低的是()。

(A)\(B)/(C)Mod(D)*

11.与数学表达式

对应,VB的不正确表达式是()。

(A)a*b/(3*c*d)(B)a/3*b/c/d

(C)a*b/3/c/d(D)a*b/3*c*d

12.Rnd函数不可能为下列()值。

(A)0(B)1(C)0.1234(D)0.0005

13.Int(198.555*100+0.5)/100的值()。

(A)198(B)199.6(C)198.56(D)200

14.已知A$="12345678",则表达式Val(Left$(A$,4)十Mid$(A$,4,2))的值为()。

(A)123456(B)123445(C)8(D)6

15.PrintDateAdd("m",1,#1/30/2000#)语句显示的结果是()。

(A)00-2-29(B)00-2-28(C)00-2-30(D)00-1-31

16.表达式DateDiff("y",#12/30/1999#,#1/13/2000#)的结果是()。

(A)1(B)11(C)14(D)99

17.表达式Len("123程序设计ABC")的值是()。

(A)10(B)14(C)20(D)17

18.表达式LenB("123程序设计ABC")的值是()。

(A)10(B)14(C)20(D)17

19.下面正确的赋值语句是()。

(A)x+y=30(B)y=π*r*r(C)y=x+30(D)3y=x

20.为了给x,y,z三个变量赋初值1,下面正确的赋值语句是()。

(A)x=l:

y=l:

z=l(B)x=l,y=l,z=l

(C)x=y=z=1(D)xyz=l

21.赋值语句:

a=123+MID("123456",3,2)执行后,a变量中的值是()。

(A)“12334”(B)123(C)12334(D)157

22.赋值语句:

a=123&MID("123456",3,2)执行后,a变量中的值是()。

(A)“12334”(B)123(C)12334(D)157

23.如下程序:

e=30:

f=20:

Printe>f

该程序的执行结果是()。

(A)1(B)True(C)0(D)False

24.如果在立即窗口执行如下语句:

a$="Myfaverate":

b$="Delete"

c$=b$&ucase(mid(a,3,8)):

printc

则输出结果是()。

(A)DeleteFAVERATE(B)DELEThFAVERATE

(C)DeleteMYFAVERATE(D)MYFAVERATE

25.下列选项中,合法的变量名是()。

(A)5X_yz(B)d%a(C)Else(D)sum_3

26.下列表达式中,不合法的是()。

(A)C="Del"+"123"(B)C=1+2/3

(C)C="Del"&"123"(D)C=[3*7+6-5]/6

27.下面()是合法的字符常数。

(A)True$(B)"True"(C)’True’(D)True

28.表达式64/2^3—4^2*8/4MOD7\2的值为()。

(A)4(B)16(C)6(D)8

29.数学关系5≤y<7表示成正确的VB表达式为()。

(A)5<=y<7(B)5<=yORy<7

(C)y>=5ANDy<7(D)5<=yAND<7

30.^、/、Mod、*四个算术运算符中,优先级别最低的是()。

(A)^(B)/(C)Mod(D)*

31.为了给a,b两个变量赋初值2,下面正确的赋值语句是()。

(A)a=2:

b=2(B)a=2,b=2

(C)a=b=2(D)ab=2

参考答案

1.B2.C3.A4.D5.B6.A7.D8.B9.B

10.C11.D12.B13.C14.B15.A该函数表示在当前日期按“m”月格式加一个月,本应该C,但这是不合法的日期。

16.C17.A18.C19.C20.A21.D22.A23.B24.A25.D26.D27.B28.C29.C30.C31.A

习题3.2填空题

1.在VB中,1234、123456&、1.2346E+5、1.2346D+5四个常数分别表示()、()、()、()类型。

2.整型变量x中存放了一个两位数,要将两位数交换位置,例如,13变成31,实现的表达式是()。

3.数学表达式sin15°的VB算术表达式为

()。

4.数学表达式的VB算术表达式为()。

 

5.表示x是5的倍数或是9的倍数的逻辑表达式为()。

6.已知a=3.5,b=5.0,c=2.5,d=True,则表达式:

a>=0ANDa+c>b+3ORNOT d的值是()。

7.Int(-3.5)、Int(3.5)、Fix(-3.5)、Fix(3.5)、Round(-3.5)、Round(3.5)的值分别是()、()、()、()、()、()。

8.表达式Ucase(Mid("abcdefgh",3,4))的值是()。

9.在直角坐标系中,(x,y)是坐标系中任意点的位置,用x与y表示在第一或第三象限的表达式是()。

10.要以xxxx年xx月xx日形式显示当前机器内日期的Format函数表达式为()。

11.计算离你毕业(假定毕业年月为2010年7月3日)还有多少个星期的函数表达式是()。

12.表示s字符变量是字母字符(大小写字母不区分)的逻辑表达式为()。

参考答案

1.整型、长整型、单精度型、双精度型

2.(xmod10)*10+x\10

3.sin(15*3.14/180)+sqr(x+exp(3))/abs(x-y)-log(3*x)

4.(a+b)/(1/(c+5)—c*d/2)5.xmod5=0orxmod9=0

6.False

7.-4,3,-3,3,-4,4

8.CDEF

9.x>0AndY>0orx<0AndY<0

10.Format(Date,”YYYY年mm月dd日”)

11.DateDiff(“d”,#1/1/2001#,Now)+1

12.UCase(s)>=”A”AndUCase(s)<=”Z”

习题3.3简答题

1.下列哪些字符串可作为VisualBasic的变量名,哪些不行?

4*DeltaAlpha4ABcABrrReadData

FilenameA(A+B)c254DRead

2.VisualBasic中是否允许出现下列形式的数?

±25.743.457E-10.3681.87E+50

10^(1.256)D322.5E12E3

8.75D+60.258

3.把下面的数写成普通的十进制数:

(1)2.6535897933D-006

(2)1.215766754590569D+019

(3)8.6787E+8(4)2.567E-12

4.符号常量和变量有什么区别?

什么情况下宜用符号常量?

什么情况下宜用变量?

5.指出下列VisualBasic表达式中的错误,并写出正确的形式:

(1)COS(28°)

(2)-3/8+8.INT24.8

(3)(8+6)^(4÷-2)+SIN(2*π)(4)[(x+y)+z]×80-5(C+D)

6.将下列数学式子写成Visua1Basic表达式:

(1)cos2(c+d)

(2)5+(a+b)2(3)cosx(sinx+1)

(4)e2+2(5)2a(7+b)(6)8e3·1n2

7.设a=2,b=3,c=4,d=5,求下列表达式的值:

(1)a>bANDc<=dOR2*a>c

(2)3>2*bORa=cANDb<>cORc>d

(3)NOTa<=cOR4*c=b^2ANDb<>a+c

8.改正下列语句中的错误:

(1)A$=abc

(2)Printa=34+23

(3)x=5,y=6(4)Print"c=":

5+6

(5)Text1.Print"******"(6)A*5=B+2

习题3.4操作题

1.在“立即”窗口中试验下列函数的操作:

(1)printchr(65)

(2)printsgn(3)

printsqr

(2)

(3)a$=”Happy”

b$=”NewYear”

printa$+b$

printa$&b$

(4)m$=”ABCDEFGHIJK”

printleft$(m$)

printright$(m$)

printmid$(m$2,3)

printlen(m$)

printinstr(m$,”bcd”)

printlcase(m$)

(5)printnow

printday(now)

printmonth(now)

printyear(now)

printweekday(now)

(6)printrnd

Fori=1to5:

printrnd:

nexti

2.写出下列语句的输出结果,并上机验证:

(1)Print"25+32=";25+32

(2)x=12.5

Print"x=";x

(3)s$="China"

s$="Beijing"

Prints$

(4)a%=3.14156

printa%

(5)Print"China";"Beijing","Tianjin";"Shanghai","Wuhan",

Print"Nanjing";

Print"Shenyang","Chongqing";"Wulumuqi"

Print,,"Guangzhou",,"chengdo"

(6)PrintTab(5);100;Space$(5);200,Tab(35);300

PrintTab(10);400;Tab(23);500;Space$(5);600

(7)a=Sqr(3)

printFormat$(a,”000.00”)

printFormat$(a,”###.#00”)

printFormat$(a,”00.00E+00”)

printFormat$(a,”-#.####”)

3.写出下列程序的输出结果:

SubForm_Click()

a=10:

b=15:

c=20:

d=25

Printa;spc(5);b;spc(7);c

Printa;space$(8);b;space(5);c

Printc;spc(3);”+”;spc(3);d

Printspc(3);”=”;spc(3);c+d

EndSub

4.在窗体上画一个命令按钮,然后编写如下事件过程:

PrivateSubCommand1_Click()

a=InputBox(”EntertheFirstinteger”)

b=InputBox(”EntertheSecondinteger”)

Printb+a

EndSub

程序运行后,单击命令按钮,先后在两个输入对话框中分别输入456和123,输出结果是什么?

习题3.5设计题

1.利用InputBox输入三角形三条边的长度a,b,c,计算并显示三角形的面积。

公式为:

面积=

,其中s=(a+b+c)/2

2.用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,之间有间隔

3.从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。

通过InputBox函数输人数据,并在窗体上显示和及平均值。

4.编写程序,要求用户输人下列信息:

姓名、年龄、通信地址、邮政编码、电活,然后将输人的数据用适当的格式在窗体上显示出来。

5.编写程序,求解鸡兔同笼问题。

一个笼子中有鸡x只,兔y只。

每只鸡有2只脚,每个兔有4只脚。

今知鸡和兔的总头数为h,总脚数为f。

问笼中鸡和兔各若干?

提示:

根据数学知识,可以写出如下联立方程式:

x+y=h

2x+4y=f

由以上二式可推导出:

x=(4h-f)/2

y=(f-2h)/2

可按上式编写程序。

用InputBox函数输入h和f的值,设h=71,f=158,请编写程序并上机运行。

6.自由落体位移公式为:

S=1/2gt2+ν0t

其中,ν0为初始速度,g为重力加速度,t为经历的时间。

编写程序,求位移量S。

ν0=4.8m/s,t=0.5s,g=9.81m/s2。

在程序中把g定义为符号常量,用InputBox函数输人ν0和t两个变量的值。

参考答案

1.参考程序:

PrivateSubCommand1_Click()

Dima&,b&,c&,s#

a=InputBox("请输入三角形a边的长度")

b=InputBox("请输入三角形b边的长度")

c=InputBox("请输入三角形c边的长度")

s=(a+b+c)/2

Text1=Sqr(s*(s-a)*(s-b)*(s-c))

EndSub

2.参考程序:

PrivateSubCommand1_Click()

Dima#

a=InputBox("请输入一个正实数")

Printformat(a^2,“0.000“),format(Sqr(a),“0.000“),

Printformat(a^3,“0.000“),format(a^(1/3),“0.000“)

EndSub

3.参考程序:

PrivateSubForm_Click()

Dima!

b!

c!

d!

sum!

aver!

a=InputBox("a=?

")

b=InputBox("b=?

")

c=InputBox("c=?

")

d=InputBox("d=?

")

sum=a+b+c+d

aver=sum/4

Print"sum=";sum,"aver=";aver

EndSub

4.参考程序:

PrivateSubForm_Click()

Dimxm$,nl%,txdz$,y

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

当前位置:首页 > 经管营销 > 经济市场

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

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