VB实验任务6答案 下载本文

实验任务6

课程名称:程序设计基础VB 实验名称——实验六程序设计基础 一、实验目的:

1.掌握常用的接收和输出数据的方法

2.进一步掌握常量、变量、运算符、表达式和常用函数的使用

二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):

实验1请先手工写出以下表达式的值和类型,然后上机验证不同数据类型之间的运算,并判断结果的数据类型。 要求:请分别在窗体的单击事件过程中,按如下形式判断表达式的结果类型,比较不同类型常数运算的结果类型;观察算术运算符的不同,对结果有什么影响;记录验证结果,找出出错原因;

分析:在实际编程中我们应尽量避免不同类型的变量之间的运算和相互赋值,应为可能会引起“类型不匹配”的错误。但是我们应该清楚哪些情况是允许的,哪些情况会出错

注意:类型符省略为:%——Integer,&——Long,!——Single,#——Double,@——Currency, 结果转换方向:整型→长整型→单精度型→双精度型→货币型 Private Sub Form_Click()

Print TypeName(1& + 1!) 'TypeName()函数可以求出数据的类型名称 End Sub

第(1)组(求下面15个表达式的值和类型,若将运算符加号改为减号、乘号和除号又会有什么不同) 1% + 1% 1& + 1% 1! + 1% 1# + 1% 1@ + 1% 1& + 1& 1! + 1& 1#+ 1& 1@+ 1& 1! + 1! 1#+ 1! 1@+ 1! 1#+ 1# 1@+ 1# 1@+ 1@

第(2)组(求下面10个表达式的值和类型) Dim a As Integer, b As Single, c As Single a < 2 = 3 b^2 - 4*a*c > 0 \ \ 200 + True #1/1/2007# - #1/1/2000# \ \ \ \ 实验1

注意:类型符省略为%——Integer,&——Long,!——Single,#——Double,@——Currency,

第(1)组总结

? 加法和减法的情况相同

? 通常相同类型的操作数进行运算,结果同操作数本身,但是除法/比较特殊,除单精度数据除外(Single),相同数据进行

除运算结果是Double

? 不同类型的操作数进行运算,结果通常按占用内存字节数多的方向转换(规则:转换方向整型→长整型→单精度型→

双精度型→货币型);也有特例:单精度与长整型运算结果为Double,单精度与货币型相乘运算结果为Double, 双精度与货币型相乘运算结果为Double,单精度与整型相除运算结果为Single 第(2)组

Dim a As Integer, b As Single, c As Single a < 2 = 3 b^2 - 4*a*c > 0 \ \ 200 + True #1/1/2007# - #1/1/2000# \ \ \ \

实验2请先手工写出以下程序段的运行结果,然后使用在窗体的Click事件过程中分别添加如下的程序段,运行验证,进一步理解和掌握运算符和表达式的应用。 (1) (2) Print Sgn(2) s$ = \Print Sgn(-45 Mod 2) Print Left(s,4) Print Chr$(65) Print Right(s,4) Print Asc(Chr$(65)) Print Mid(s, 4, 8) Print Asc(\Print Instr(s, \Print Chr$(Asc(\Print Sqr(Len(s) + 1) Print String(5, 97), String(5, \Print Lcase(s) (3) Print CInt(3.56),Int(3.56),Fix(3.56) Print Round(3.56),format(3.56,”0”) Print CInt(-3.56),Int(-3.56),Fix(-3.56) Print Round(-3.56),format(-3.56,”0”) Print CInt(3.5),Int(3.5),Fix(3.5) Print Round(3.5),format(3.5,”0”) Print CInt(2.5),Int(2.5),Fix(2.5) Print Round(2.5),format(2.5,”0”) Print Round(2.445,2),format(2.445,”0.00”) (4) 假定当前日期为2009-3-27 Print Day(Now) Print Month(Now) Print Year(Now) Print DateDiff(”d”, Now, #2009/05/01#) Print Weekday(Now) Print Weekday(Now, vbMonday)

实验3 实验书62页 实验4-3

制作一个查看某年的元旦是星期几的万年历。要求在图4-4所示界面上输入年份,单击“查看”按钮,查看某年的元旦是星期几。

图4-4 实验4-3的运行界面

分析:确定某年的元旦是星期几的公式如下:

111??)?1)4100400W?X?Int(X/7)*7 X?Int((Y?1)(1?其中,Y为公元年号,W为计算出的结果星期几(0表示星期日,1表示星期一,依次类推)。请根据上述分析和参考

界面自行编写代码。

Private Sub CmdView_Click()

Dim Y As Integer, X As Integer, W As Integer Y = Val(Text1.Text)

X = Int((Y - 1) * (1 + 1 / 4 - 1 / 100 + 1 / 400) + 1) W = X - Int(X / 7) * 7

Text2.Text = CStr(W) End Sub

实验4实验书63页实验4-4 利用文本框1和文本框2输入直角三角形的两条直角边长,计算直角三角形的周长和面积。

提示:

① 该题先设两条直角边为x,y,根据勾股定理可以计算出直角三角形的斜边,直角三角形面积S =(x*y)/2。可以利用文本框接收数据和输出结果,注意由于文本框的Text属性为字符型,在计算时应使用Val函数进行转换,数值型的结果输出时应使用Str或Cstr函数进行转换。

② 在窗体上放置4个标签控件、4个文本框和3个命令按钮,如图4-5所示。

实验5 实验书63页 实验4-5

加密整数。加密过程:对于一个4位正整数,将每一位上的数字加7,然后对10取余替代原来的数字,再将该4位整数进行左右两边数字互换,第1位与第4位互换,第2位与第3位互换。

提示:4位整数可用随机函数Rnd和取整函数Int生成,最后加密结果可以直接显示在窗体上(见图4-5),或采用文本框、标签显示。

图4-5 实验4-5的运行界面

提示:模仿参考例题的二种方案独立完成程序编写

[参考例题] 如图实现逆序输出用户输入的三位整数。例如:用户输入361,应逆序输出163。

分析:逆序输出整数,其实就是将原整数X的每一位上的数字,重新改变所在位置后输出。关键:如何取得整数X每一位上的数字?

行界面 运

方案一:通过算术运算实现:

个位数字 = X Mod 10 十位数字 = X \\ 10 Mod 10 百位数字 = X \\100 此时逆序后的数据 = 个位数字 * 100 + 十位数字 * 10+ 百位数字 Option Explicit