实验3简单的程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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方法求出相应函数的值,对照比较自己的判断。

22
实验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 / 4 MOD 5 \ 2
实验步骤:
先自己分析表达式的功能和可能的结果,然后在立即窗口用Print方法求出相应表达式的值,对照比较自己的判断。

实验3.3简单打印图形
实验任务:
使用Print方法、Tab函数和String函数设计一个过程,显示如图3-1所示的图形,并将结果保存到文件中。

图3-1 实验3.2运行界面
参考代码如下:
Private Sub Form_Load()
Print Tab(15); String(1, "1")
Print Tab(14); String(3, "2")
Print Tab(13); String(5, "3")
Print Tab(12); String(7, "4")
End Sub
操作提示:
应先将Form窗体的AutoRedraw属性值设为True。

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

图3-2 实验3.4运行界面
参考代码如下:
Private Sub Command1_Click()
Dim i, a As Integer
List1.Clear '清空列表框
Randomize '产生随机数种子
For i = 1 To 30 '循环产生30个随机整数
a = Int(Rnd * 9900) + 100 '产生100-9999之间的随机整数
List1.AddItem a '将产生的随机数添加到列表框
Next i
End Sub
实验3.5简单输入输出
实验任务:
设计一个程序让用户从键盘上输入一个人的出生年份,然后显示出该人的生肖。

例如:1984年出生的人生肖为“鼠”,则1990年出生的人生肖计算公式为(1990-1984 Mod 12)=6,则1990年出生的人生肖为“马”,因为十二生肖的顺序为:("鼠","牛", "虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"),程序要求:
24
(1)使用inputbox 函数读取用户输入的出生年份;
(2)能够计算出1984年份后的生肖;
(3)用msgbox 函数输出结果。

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

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

图3-3 实验3.6运行界面
要使用转换的公式是:
325
9
+=C F '摄氏温度转换为华氏温度,F 为华氏 )32(95
-=F C '华氏温度转换为摄氏温度,C 为摄氏
要求用两种方法进行转换:
(1)用按钮实现转换。

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

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

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

提示:假定Textl 存放C 摄氏温度、Text2存放F 华氏温度,则C 摄氏转换为F 华氏的KeyPress 事件过程为:
Private Sub Textl_KeyPress (KeyAscii As integer )
If KeyAscii = 13 Then
Text2 = 9 / 5 * Textl + 32
End if
End Sub
注意: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方法定位于出错的文本框处,重新输入。

26
图3-5 实验3.8运行界面
实验3.9 Shell函数
实验任务:
在窗体上建立两个按钮,分别显示“计算器”和“记事本”(如图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/4MOD 5\2的值为()。

(A)14 (B)4 (C)20 (D)2
9.数学关系3≤x<10表示成正确的VB表达式为()。

(A)3<=x<10 (B)3<=x AND x<10
(C)x>=3 OR x<10 (D)3<=x AND <10
10.\、 /、 Mod、 * 四个算术运算符中,优先级别最低的是()。

(A) \ (B) / (C)Mod (D)*
28
11. 与数学表达式cd ab
3对应,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. Print DateAdd("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: Print e>f
该程序的执行结果是( )。

(A )1 (B )True (C )0 (D )False
24. 如果在立即窗口执行如下语句:
a$="Myfaverate": b$="Delete"
c$=b$ & ucase(mid(a,3,8)): print c
则输出结果是( )。

(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
30
27. 下面( )是合法的字符常数。

(A )True$ (B )"True" (C )’True ’ (D )True
28. 表达式64/2^3—4^2*8/4 MOD 7\2的值为( )。

(A )4 (B )16 (C )6 (D )8
29. 数学关系5≤y<7表示成正确的VB 表达式为( )。

(A )5<=y<7 (B )5<=y OR y<7
(C )y>=5 AND y<7 (D )5<=y AND <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.B
2.C
3.A
4.D
5.B
6.A
7.D 8.B 9.B
10.C 11.D 12.B 13.C 14.B 15.A 该函数表示在当前日期按“m ”月格式加一个月,本应该C ,但这是不合法的日期。

16.C 17.A 18.C 19.C 20.A 21.D 22.A 23.B 24.A 25.D 26.D
27.B 28.C 29.C 30.C 31.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>=0 AND a+c>b+3 OR NOT d 的值是( )。

)3ln(3x y x e x --++cd c b a 2
151-++
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.要以x x x x年x x月x x日形式显示当前机器内日期的Format函数表达式为( )。

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

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

参考答案
1.整型、长整型、单精度型、双精度型
2.(x mod 10)*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.x mod 5=0 or x mod 9=0
6.False
7. -4, 3, -3, 3, -4, 4
8.CDEF
9.x>0 And Y> 0 or x<0 And Y<0
10.Format(Date,”YYYY年mm月dd日”)
11.DateDiff(“d”, #1/1/2001#,Now)+1
12.UCase(s)>=”A” And UCase(s)<=”Z”
习题3.3简答题
1. 下列哪些字符串可作为Visual Basic的变量名,哪些不行?
4*Delta Alpha 4ABc ABrr ReadData
Filename A(A+B) c254D Read
2 .Visual Basic中是否允许出现下列形式的数?
±25.74 3.457E-10 .368 1.87E+50
10^(1.256) D32 2.5E 12E3
8.75D+6 0.258
3. 把下面的数写成普通的十进制数:
(1)2.6535897933D-006 (2)1.215766754590569D+019
(3)8.6787E+8 (4)2.567E-12
4. 符号常量和变量有什么区别?什么情况下宜用符号常量?什么情况下宜用变量?
5 .指出下列Visual Basic表达式中的错误,并写出正确的形式:
(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. 将下列数学式子写成Visua1 Basic表达式:
(1) cos2(c+d) (2)5+(a+b)2(3) cos x(sin x+1) (4)e2+2 (5)2a(7+b) (6) 8e3²1n2
7. 设a=2,b=3,c=4,d=5,求下列表达式的值:
(1)a>b AND c<=d OR 2*a>c
(2)3>2*b OR a=c AND b<>c OR c>d
(3)NOT a<=c OR 4*c=b^2 AND b<>a+c
8. 改正下列语句中的错误:
(1)A$=abc (2)Print a=34+23
(3)x=5,y=6 (4)Print "c=":5+6
(5)Text1.Print "******" (6)A*5=B+2
习题3.4操作题
1. 在“立即”窗口中试验下列函数的操作:
(1) print chr(65)
(2) print sgn(3)
print sqr(2)
(3) a$=”Happy”
b$=”New Year”
print a$+b$
print a$ & b$
(4) m$=”ABCDEFGHIJK”
print left$(m$)
print right$(m$)
print mid$(m$2,3)
print len(m$)
print instr(m$,”bcd”)
print lcase(m$)
(5) print now
32
print day(now)
print month(now)
print year(now)
print weekday(now)
(6) print rnd
For i=1 to 5: print rnd :next i
2. 写出下列语句的输出结果,并上机验证:
(1)Print "25+32=";25+32
(2)x=12.5
Print "x=";x
(3)s$="China"
s$="Beijing"
Print s$
(4)a%=3.14156
print a%
(5)Print "China";"Beijing","Tianjin";"Shanghai","Wuhan", Print "Nanjing";
Print "Shenyang","Chongqing";"Wulumuqi"
Print ,,"Guangzhou",,"chengdo"
(6)Print Tab(5);100;Space$(5);200,Tab(35);300
Print Tab(10);400;Tab(23);500;Space$(5);600
(7)a=Sqr(3)
print Format$(a,”000.00”)
print Format$(a,”###.#00”)
print Format$(a,”00.00E+00”)
print Format$(a,”-#.####”)
3. 写出下列程序的输出结果:
Sub Form_Click()
a=10:b=15:c=20:d=25
Print a;spc(5);b;spc(7);c
Print a;space$(8);b;space(5);c
Print c;spc(3);”+”;spc(3);d
Print spc(3);”=”;spc(3);c+d
End Sub
4. 在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
a= InputBox(”Enter the First integer”)
b= InputBox(”Enter the Second integer”)
Print b+a
End Sub
程序运行后,单击命令按钮,先后在两个输入对话框中分别输入456和123,输出结果是什么?
习题3.5设计题
1.利用InputBox输入三角形三条边的长度a, b, c,计算并显示三角形的面积。

公式为:
面积=)
s-
s
-,其中s=(a+b+c)/2
a
-
)(
)(
(c
s
b
s
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两个变量的值。

34
参考答案
1.参考程序:
Private Sub Command1_Click()
Dim a&, 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))
End Sub
2. 参考程序:
Private Sub Command1_Click()
Dim a#
a = InputBox("请输入一个正实数")
Print format(a ^ 2,“0.000“),format(Sqr(a),“0.000“),
Print format(a ^ 3 ,“0.000“), format(a ^ (1 / 3) ,“0.000“)End Sub
3. 参考程序:
Private Sub Form_Click()
Dim a!, 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
End Sub
4. 参考程序:
Private Sub Form_Click()
Dim xm$, nl%, txdz$, yzbm&, dh&
xm = InputBox("姓名")
nl = InputBox("年龄")
txdz = InputBox("通讯地址")
yzbm = InputBox("邮政编码")
dh = InputBox("电话")
Print "姓名", "年龄", "通讯地址", "邮政编码", "电话"
Print xm, nl, txdz, yzbm, dh
End Sub
5. 参考程序:
Private Sub Form_Click()
Dim h&, f&
h = InputBox("h=?")
f = InputBox("f=?")
x = (4 * h - f) / 2
y = (f - 2 * h) / 2
Print "x="; x; "y="; y
End Sub
6. 参考程序:
Private Sub Form_Click()
Dim v0!, t!, s!
Const g = 9.81
v0 = InputBox("v0=?")
t = InputBox("t=?")
s = g * t ^ 2 / 2 + v0 * t
Print "s="; s
End Sub
36。

相关文档
最新文档