信息技术基础第二章:第7节 函数和表达式课件(23张)+试题

文档属性

名称 信息技术基础第二章:第7节 函数和表达式课件(23张)+试题
格式 zip
文件大小 2.0MB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2019-05-23 14:16:32

文档简介

第7节 函数和表达式
知识点
目标
考试要求
算法的程序实现
①常用的标准函数(Abs、Int、Sqr、Rnd、Val、Str、Len、Mid)
②算术、关系、逻辑三类基本表达式
c
必考+加试
1.写出下列常见标准函数的功能
函数名
功能
应用举例
函数返回值
Abs(x)
取x的绝对值
Abs(-6.3)
6.3
Int(x)
求不大于x
的最大整数
Int(-6.3)
-7
Sqr(x)
求x的平方根
Sqr(9)
3
Rnd()
产生一个[0,1)
之间小数
Rnd()
[0,1)之
间小数
Str(x)
将数值转
换成文本
Str(123)
”123”
Val(s)
将文本转
换成数值
Val(”63”)
63
Len(s)
求字符串的长度
Len(”Abc”)
3
Mid(s,i,n)
在字符串s第i个
位置开始n个字符
Mid(”I am
a boy”,3,2)
”am”
2.算术类基本运算符及优先级按从高到低排列为
^(开方)→-(取负) →*、/和→Mod→+—
3.关系类运算符 =、>、<、 <>、>=、<=
4.逻辑类运算符 Not→ And→ Or
5.基本运算的优先级
算术类运算符→关系类运算符→逻辑类运算符
解算法与程序设计题目的一个关键要素是理解每个结构的功能和作用,而这些结构往往是由若干函数、表达式和语句构成,因此函数和表达式的含义是理解选择结构的前提。
一、Int函数
1.判断数x能被y整除
若x除以y是一个整数,那么x能被y整除,整数在取整后的值与取整前的值是相等,这也是判断是否是整数的关键。逻辑表达式为Int(x/y)=x/y,或者xy=x/y。
【例1】 判断一个数x是否是整数的逻辑表达式____________。
解析 本题考核的知识点是Int函数的应用。是否是整数,实际上是判断数x能被1整除。即他取整后等于本身,那么该数原来就是整数。
答案 Int(x)=x
[方法总结] 整除的依据是商为整数,整数的依据是对他本身取整与他本身是相等的。
2.产生一定范围内的随机整数
结合Rnd函数使用,Rnd函数产生一个在[0,1)之间的随机小数,该数乘以一个数x,乘积的范围[0,x),取整后的整数范围是[0,x-1]。
【例2】 已知字母A-Z的AscII码值的范围是[65,90],则随机产生一个大写英文字母AscII码值的表达式为________。
解析 本题考核的知识点是Rnd函数与Int函数的应用。从Rnd函数产生的范围[0,1)来看,把该范围先转换一个下限是可取的、上限取不到的范围,再把该区域平移到0为起点的范围。这个新范围又是[0,1)的若干倍。具体的计算步骤如下:
[65,90] →[65,91) →[0, ? )+65→[0,26)+65→[0,1)*26+65,再把这个表达式用VB语言来表示。
答案 Int(Rnd()*26+65)
[方法总结] 生成一个随机数的范围应围绕Rnd函数产生的[0,1),他的特点有两个,一是下限能取到,而上限是不能取到;二是下限总是从0开始,把区域平移若干个单位,使得左边为0,并把[0,1)扩大若干倍。
【变式训练】 用计算机程序来模拟掷骰子的过程,掷骰子一次可能的点数为1~6,写出相应的VB表达式__________________________。
解析 [1,6] →[1,7) →[0,6)+1→[0,1)*6+1
答案 Int(Rnd()*6+1)
3.对小数进行四舍五入进位处理
四舍五入进位指的是小位点后第一位,如果小于或等于4,舍去小数部分;如果大于或等于5,则将整数部分加1,舍去小数部分。小数部分值的范围是[0,1) 可以表示为[0,0.5)和[0.5,1)两个区间,这两个区间范围是一样的。那么前者+0.5后,不会超出1,而后者+0.5后,最小的值为1。
对小数x四舍五入保留整数的表达式Int(x+0.5)
若要将某个小数四舍五入保留两小数,可以将该数扩大100倍并四舍五入取整数,再将该整数缩小100倍。对小数x四舍五入保留两位小数的计算过程:x→100*x(作为一个新的小数)→对100*x四舍五入保留整数→Int(100*x+0.5) →把该整数缩小100倍→Int(100*x+0.5)/100。
同理,若要保留一位小数,只需先把数扩大10倍并四舍五入取整数,然后缩小10倍,得到1位小数。
二、Mod函数
1.判断数x能被y整除(y是x的倍数)
整除还可以从余数来判断,如果x除y的余数为0,即x Mod y=0,则表示y是x的倍数
2.取出整数x的个位数
用x Mod 10 来取出数x的个位数
3.用在数制转换时
在十进制向其他进制转换时,每次先得到除其他进制的余数。
三、对字符串进行分解
对某个字符串s进行操作时,往往要把这个字符串s中每个字母进行分离,此时用到两个函数,一个是分离的次数,取决于他的长度,用Len函数;取出每个字母,用Mid函数,常见的表达式为Mid(s,i,1),表示在字符串第i个位置取1个字符。
【例3】 字符串s的值为”X能被Y整除”,则表达式Mid(s,4,3)的值为____________________;表达式Mid(s,3,4)的值为________________________。
解析 本题考核的知识点是Mid函数的应用。Mid(s,i,n)表示在字符串s第i个位置取出n个字符。
答案 ”Y整除” ”被Y整除”
[方法总结] 对字符进行操作时,Len函数决定了循环的次数,Mid函数是对每次查找或比较的对象进行分离,特别要注意Mid函数的参数。
【变式训练】 身份证第7位到第10位(共4个数字)表示出生的年份,输入一个身份证号码s,今年(2017年)与出生年份的差值,表示他的周岁年龄,写出计算周岁年龄的VB表达式__________________。
解析 本题考核的知识点是Mid函数及表达式的应用。要注意Mid函数的参数,从起始位置取字符的个数,而不是从起始位置到终止位置。该函数的值为文本类型,在算术运算时,要转换成数值。
答案 2017-Val(Mid(s,7,4))
四、当用余数作为Mid函数起始位置时注意问题
在十进制数向其他进制转换、已知年份求属相时,往往用一个数除另一个数的余数作为Mid函数的起始值的参数,但余数的最小值为0,而在字符串的位置是从第1个位置开始的。
【例4】 在十进制数向十六进制数转换时,得到余数r,该余数转换成文本的方法是从字符串s(s=”012345789ABCDEF”)中得到,根据余数r,取出该文本的VB表达式______________。
解析 当余数为0时,他是字符串s的第1个位置开始取出1个字符,余数是1时,取出位置为2,因此得到取出字符位置是余数加1。
答案 Mid(s,r+1,1)
【变式训练】 已知字符串s的值为”零壹贰叁肆伍陆柒捌玖”,写出小写数字t转换成大写数字的VB表达式__________________。
解析 当t=0时,是字符串第一个位置的字符,同理其他的数字也是类似的情况。
答案 Mid(s,t+1,1)
五、多条件表达式
在VB表达式中,要注意不等号的表示方法“<>”,大于等于号的表示方法“>=”,小于等于号的表示方法“<=”。多个条件之间要有逻辑表达And或者Or进行连接。如判断整数x是奇数的条件表达式是x Mod 2<>0;如判断整数x是3的倍数或者是5的倍数的条件表达式是x Mod 3=0 Or x Mod 5=0;如要找出年龄nl大于或等于45岁的男性(xb为文本变量) nl>=45 and xb=“男”。
【例5】  判断一个字符变量ch是否是字母的VB表达式____________________。
解析 字母的范围在a~z之间,但可能是大写的字母,也可能是小写字母。若ch是大写字母,他比“A”要大,但比“Z”要小,因此条件为ch>=“A” And ch<=”Z”;同理若ch是小写字母,满足ch>=”a” and ch<=”z”;他可能是大写,也可能是小写,只可能满足一个,因此两个条件是Or的关系,(ch>=”A” And ch<=”Z”) Or (ch>=”a” and ch<=”z”)。根据Not、 And、 Or的优先级关系,And 的优先级高于Or,两个括号可以省略。
答案 ch>=”A” And ch<=”Z” Or ch>=”a” and ch<=”z”
[方法总结] 在表示某个范围或者某个区间时,往往会与两个界点进行比对,因此需要用到两个条件表达式的逻辑关系(And或Or的关系),同时要还注意是两个条件均要满足,还是满足其中一个条件。
【变式训练】 判断一个字符变量ch不是数字的VB表达式__________________。
解析 数字即在数字0和9之间,不是数字就是该表达式的非。
答案 Not (ch>=”0” And ch<=”9”)
1.在VB中,下列表达式的值等于2的是(  )
A.Int(-1.7) B.Abs(-2)
C.Sqr(4.2) D.Len(”OK123”)
解析 本题考核的知识点是基本函数的功能。Int是取不大于该数的最大整数,与-1.7最接近且不大于他的整数是-2,Sqr是取参数的平方根,Len是取字符串的长度4。
答案 B
2.下列表达式中,值最小的是(  )
A.5 Mod 8 B.58
C.5/8 D.8 Mod 5
解析 本题考核的知识点是mod 和及/的计算。5除以8的整数是0,余数是5,5除以8的值为0.635。8除以5的余数是3。*、和/优先级是一样的,哪个在前先算哪个,比Mod优先级要高。
答案 B
3.下列Visual Basic表达式的值等于34的是(  )
A.Mid(”1234567”,3,2) B.Abs(-33)+1
C.Sqr(34) D.Len(”34”)+1
解析 本题考核的知识点是基本函数的功能。Mid函数取出的是文本,Abs是绝对值,Sqr是算术平方根,Len是字符串的长度。
答案 B
4.在若干个项相加时(如1-1/2+1/3-1/4+1/5-1/6……),要实现符号不断地正负交替,对变量a赋初值为1,在下列语句中,每执行一次能实现该功能的是(  )
A.a=1-a B.a=-a
C.a=a+1 D.a=a/1
解析 本题考核的知识点是对于变量值的推断。
I=1
A=1
I=4
-1
I=2
A=-1
I=5
1
I=3
A=1
I=
-1
从上表可以看出,每个a是上个a的取负,因此答案为B。也可以用-1偶数次方幂是1,奇数次方幂是-1的特性,用a=(-1)^(i+1) 或a=(-1)^(i-1)来表示。A选项表示是0和1的交替变化,C是计数语句。
答案 B
5.设x是一个三位数,则分别取出百位上的数VB表达式____________、十位上的数VB表达式____________和个位上的数VB表达式____________。
解析 本题考核的知识点是x Int函数和Mod函数在取出数字的各个位数的计算方法。 Int(x/100)表示有多少个整的100,x Mod 100表示减去整的100,还剩下的数。通常用来取百位数及以上的数字,后者用来取后两位数。而x Mod 10要常记的取个位数方法。x/10表示十位数以上的数字。
答案 Int(x/100)或 x '100 x/10 Mod 10或 (x Mod 100) '10 x Mod 10
6.要产生一个[100,300]之间的正整数x的表达式的过程:
[100,300]→[____,____) →[0,____)+______→[0,______)+______→[0,1)*______+______
转换为VB的表达式为________________________。
解析 本题考核的知识点是Int函数和Rnd函数的综合应用。[100,300]→[100,301) →[0,?)+100→[0,201)+100→[0,1)*201+100
Int(Rnd()*201+100)
答案 见解析
7.用计算机模拟掷硬币,要产生一个0或1整数x的VB表达式__________。
解析 本题考核的知识点是Int函数和Rnd函数的综合应用。解一:[0,1] →[0,2) → [0,1)*2,解二:[0,1)可以表示为[0,0.5)和[0.5,1)两个区间,这两个区间范围是一样的。那么前者+0.5后,不会超出1,而后者+0.5后,最小的值为1。
答案 Int(Rnd()*2) 或Int(Rnd()+0.5)
8.把数x进行四舍五入保留整数的VB表达式______________________。
解析 本题考核的知识点是四舍五入取整的方法。小数部分值的范围是[0,1) 可以表示为[0,0.5)和[0.5,1)两个区间,这两个区间范围是一样的。那么前者+0.5后,不会超出1,而后者+0.5后,最小的值为1。
答案 Int(x+0.5)
9.把数x进行四舍五入保留三位小数的VB表达式_______________。
解析 本题考核的知识点是四舍五入取整的方法。把x扩大1000倍,第4位小数成为新数的第1位小数,对新数进行四舍五入取整,再缩小1000倍。
答案 Int(x*1000+0.5)/1000
10.把身份证中家庭住址变量s分离出省份和县市文本的方法是:先找到省所在字符串中位置t1,再找到县市所在字符串中位置t2,再用Mid函数分别进行计算。则取出某省(含“省”)的VB表达式是__________;取出县市(含“县市”)的VB表达式是____________。
解析 本题考核的知识点是Mid函数的应用。省份是从s第1个位置开始取,共取t1个字符。而县市是从省字向后取,是从t1+1的位置开始取字符。找出各个变量之间的关系时,可以采用特殊值法,如令s=“浙江省长兴县”,则t1的值为3,t2的值为6,取出县市的个数为3,从t2至t1+1之间,则为t2-(t1+1)+1。
答案 Mid(s,1,t1) Mid(s,t1+1,t2-t1)
11.公元1900年是鼠年,以后每12年一个轮回,生肖排列文本存储在变量中sx中( sx=“鼠牛虎兔龙蛇马羊猴鸡狗猪”),在文本框Text1中输入一个年份y(数值型),计算该年生肖的VB表达式为______________________,若输入的年份为2018,则该年的属相是________________。
解析 本题考核的知识点是Mid函数的应用。理解开始取的位置是关键。该年与1900年的差值有多少个12年轮回,余数若是0,表示与1900年是相同的属相,在sx字符中是第1个位置。
答案 Mid(sx,((y-1900) Mod 12+1),1) 狗
12.在字符串s第i个位置,输出与字符串s1相同长度字符串的VB表示式____________________。
解析 本题考核的知识点是Mid函数的应用。关键要理解参数的意义,是从哪个位置开始,共取字符的数量。
答案 Mid(s,i,Len(s1))
13.在一个字符串中找出首尾对称的字符,即第1个字符的对称字符是最后1个字符,第2个字符的对称字符是最后第2个……。计算字符串s中第i个位置首尾对称字符的VB表达式是________________________。
解析 本题考核的知识点是Mid函数的应用。用变量j表示与i对称的位置,用表格的形式表示
I
J
1
Len(s)
2
Len(s)-1
3
Len(s)-2
4
Len(s)-3
不难发现i和j的关系,i与j和是定值Len(s)+1。因此j=Len(s)+1-i
答案 Mid(s,(Len(s)-i+1),1)
14.判断一个数x的平方根是否是整数的表达式____________________。
解析 本题考核的知识点是Int函数的应用。数x的平方根为Sqr(x),若他是一个整数,那么他取整后的值与不取整是一样大的。
答案 Sqr(x)=Int(Sqr(x))
15.三个在0-9之间的整数a、b、c,满足条件a>b>c,则用这三个数组成一个最大三位数的VB表达式________________________,组成最小三位数的VB表达式______________________。
解析 本题考核的知识点是基本运算符的应用。
答案 a*100+b*10+c c*100+b*10+a
16.判定一个数x是否是素数条件:该数x不能被2和不大于他平方根的最大整数之间数整除,则表示不大于x平方根的最大整数VB表达式是______________________。
解析 本题考核的知识点是Int和Sqr函数的应用。Sqr(x)表示x的平方根,Int对数进行取整。
答案 Int(Sqr(x))
17.身份证号码最后一位是验证码,校验的方法:通过各种计算,得到一个0至10之间的整数t,数t对应的校验码如下表所示:
数t
0
1
2
3
4
5
6
7
8
9
10
校验码
1
0
X
9
8
7
6
5
4
3
2
若该校验码与身份证号码第18位一致,说明身份证号码正确,按数t从小到大的顺序,依次把校验码存储在字符变量s中(s=“10X98765432”),根据数t取出验证码的VB表达式是_________________。
解析 本题考核的知识点是Mid函数的应用。理解开始取的位置是关键。t的取值范围是[0,9],而s中分别对应是1至10位置的字符。
答案 Mid(s,t+1,1)
18.在文本框Text1中输入一个角度值,单击“换算”按钮Command1,在标签Label2中显示角度转换为弧度的值,结果四舍五入保留两位小数,程序运行界面如图所示:
为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
 Dim jd As Integer,hd As Single
jd=____①____
②____
Label2.Caption=____③____+”度角转换为弧度的值为”+Str(hd)
End Sub
划线处代码为①____________________________________________________
②________________________________________________________________
③________________________________________________________________
答案 ①Val(Text1.Text) ②hd=Int(3.14159/180*jd*100+0.5)/100 ③Str(jd)
19.在文本框Text1、Text2、Text3中输入儿童、标准和商务餐的数量,单击“确定”按钮Command1,在文本框Text4中显示金额,程序运行界面如图所示:
为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
 Dim sum As Long,a As Integer,b As Integer,c As Integer
 sum=0
 a=____①____
 b=____②____
 c=____③____
____④____
 Text4.Text=Str(sum)
End Sub
划线处代码为①____________________________________________________
②________________________________________________________________
③________________________________________________________________
④________________________________________________________________
答案 ①Val(Text1.Text) ②Val(Text2.Text) ③Val(Text3.Text) ④sum=a*10+b*15+c*25
20.在文本框Text1中输入身份证号码,单击“提取”按钮Command1,在标签Label2中显示出生年月信息,在文本框Text2中显示年龄,程序运行界面如图所示:
为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
 Dim sfz As String,y As Integer,m As Integer,d As Integer,n As Integer
 sfz=____①____
 ____②____
 ____③____
 ____④____
 n=2017-y
 Label2.Caption=”该同志出生于”+Str(y)+”年”+Str(m)+”月”+Str(d)+”日”
 Text2.Text=______⑤______
End Sub
划线处代码为①____________________________________________________
②________________________________________________________________
③________________________________________________________________
④________________________________________________________________
⑤________________________________________________________________
答案 ①Text1.Text ②y=Mid(sfz,7,4) ③m=Mid(sfz,11,2) ④d=Mid(sfz,13,2) ⑤Str(n)
1.将数学表达式y=写成VB表达式,正确的是(  )
A.y=x^2+1/Abs(x)+3
B.y=(x^2+1)/(Sqr(x)+3)
C.y=(x^2+1)/(Abs(x)+3)
D.y=x^2+1/Sqr(x)+3
解析 本题考核的知识点是基本函数的应用及运算符的先后关系。Abs是求绝对值函数,Sqr是求平方根函数。
答案 C
2.在VB中,已知z、a、b均是正整数,当逻辑表达式(z mod a=0) And (z mod b=0)为真时,则表示(  )
A.z是a的倍数,但不是b的倍数
B.z既是a的倍数,又是b的倍数
C.z是a的倍数或者是b的倍数
D.z既不是a的倍数,也不是b的倍数
解析 本题考核的知识点是逻辑表达式的应用。两个条件同时满足。
答案 B
3.在Visual Basic中,设x=7146,能得到其十位上数字“4”的正确表达式是(  )
A.x '10 Mod 100 B.x '10 Mod 10
C.x '100 Mod 10 D.x Mod 10 '10
解析 本题考核的知识点是基本运算符的应用。整除10表示缩小10倍,Mod 10表示取出个位数,Mod 100表示取出后两位。
答案 B
4.产生闭区间[20,47]之间的随机整数的Visual Basic表达式是(  )
A.Int(Rnd*27)+20 B.Int(Rnd*28)+20
C.Int(Rnd*27)+21 D.Int(Rnd*28)+21
解析 本题考核的知识点是基本函数的应用。
答案 B
5.在VB中,表达式Val(”36”)+Len(”36”)的值为________________________。
解析 本题考核的知识点是函数的基本功能。
答案 38
6.求一个正整数n的后两位数的VB 表达式为__________________________。
解析 本题考核的知识点是基本运算符的运算。Mod 100表示取出整数个100后剩下数的大小。
答案 n Mod 100
7.产生一个红包yuan(单位元)的VB表达式,要求金额不能少于1分,不能多于8元。____________________________。
解析 产生一个[1,800]之间的整数,并把这个整数缩小100倍。[1,800]→[1,801)→[0,? )+1→[0,800)+1→[0,1)*800+1。
答案 Int(Rnd()*800+1)/100
8.在结算费用fy(单精度数)时,往往以“元”为单位,精确到“分”,则对费用变量fy进行四舍五入的VB表达式是________________________。
解析 本题考核的知识点是Int函数在四舍五入的应用。该题实际是要考核对第三位小数四舍五入,保留两位小数的要求。
答案 Int(fy*100+0.5)/100
9.十天干与十二地支的组合,形成了六十甲子。输入一个年份year,该年份除10后的余数为0-9,分别对应的天干名称依次为“庚辛壬癸甲乙丙丁戊已”,存储在变量tg中。除12后的余数分别对应的地支名称依次是“申酉戌亥子丑寅卯辰巳午未”,保存在变量dz中。在文本框Text1中输入一个年份y(数值型),计算该年天干的VB表达式为______________________,计算该年地支的VB表达式为______________________,若输入的年份为2018,则该年的天干地支年是________________。
解析 本题考核的知识点是Mid函数的应用。理解开始取的位置是关键。余数最小为0,而字符串位置是从1开始的,余数为0,对应的是第1个位置。
答案 Mid(tg,(y Mod 10+1),1) Mid(dz,(y Mod 12+1),1) 戊,戌
10.电子邮箱格式为“用户名@域名”,某电子邮箱名称存储在字符串s中,且已知“@”符号在字符串的位置t,则表示用户名的VB表达式为____________,表示域名的VB表达式为_______________。
解析 本题考核的知识点是Mid函数的应用。用户名是取到t前面的字符。而域名是从t后面第1个位置开始取,取到最后。同时的也是采用特殊值法,如用户名长度是5个,总共字符是11个,则“@”符号是第6个,从第7个到第11个,总共字符为11-7+1。
答案 Mid(s,1,t-1) Mid(s,t+1,Len(s)-t)
11.在文本框Text1中输入脚的长度(CM),单击“转换”按钮Command1,在文本框Text2中显示鞋码,结果四舍五入保留整数,程序运行界面如图所示:
为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
 Dim jc As Single,xm As Integer
 jc=____①____
 xm=____②____
 Text2.Text=____③____
End Sub
划线处代码为①___________________________________________________
②_______________________________________________________________
③________________________________________________________________
答案 ①Text1.Text ②Int(jc*2-10+0.5) ③Str(xm)
12.在标签Label1中显示一首藏头诗,在该诗的第1、9、17、25各取一个字,组成藏头诗的含义,单击“藏头诗”按钮Command1,在文本框Text1中显示该含义。程序运行界面如图所示:
为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
 Dim s As String,s1 As String
 s=____①____
 s1=____②____
 Text1.Text=____③____
End Sub
划线处代码为①____________________________________________________
②________________________________________________________________
③________________________________________________________________
答案 ①Val(Text1.Text) ②Mid(s,1,1)+Mid(s,9,1)+Mid(s,17,1)+Mid(s,25,1) ③s1
课件23张PPT。第7节 函数和表达式1.写出下列常见标准函数的功能取x的绝对值求不大于x的最大整数求x的平方根产生一个[0,1)之间小数将数值转换成文本将文本转换成数值求字符串的长度在字符串s第i个
位置开始n个字符2.算术类基本运算符及优先级按从高到低排列为
^(开方)→-(取负) →*、__和→ _____ →+—
3.关系类运算符 =、>、<、 ____、>=、<=
4.逻辑类运算符 Not→ _____→ Or
5.基本运算的优先级
_____________→ _____________ → _____________/Mod<>And算术类运算符关系类运算符逻辑类运算符解算法与程序设计题目的一个关键要素是理解每个结构的功能和作用,而这些结构往往是由若干函数、表达式和语句构成,因此函数和表达式的含义是理解选择结构的前提。一、Int函数
1.判断数x能被y整除
若x除以y是一个整数,那么x能被y整除,整数在取整后的值与取整前的值是相等,这也是判断是否是整数的关键。逻辑表达式为Int(x/y)=x/y,或者xy=x/y。【例1】 判断一个数x是否是整数的逻辑表达式__________。
解析 本题考核的知识点是Int函数的应用。是否是整数,实际上是判断数x能被1整除。即他取整后等于本身,那么该数原来就是整数。
答案 Int(x)=x
[方法总结] 整除的依据是商为整数,整数的依据是对他本身取整与他本身是相等的。2.产生一定范围内的随机整数
结合Rnd函数使用,Rnd函数产生一个在[0,1)之间的随机小数,该数乘以一个数x,乘积的范围[0,x),取整后的整数范围是[0,x-1]。【例2】 已知字母A-Z的AscII码值的范围是[65,90],则随机产生一个大写英文字母AscII码值的表达式为________。
解析 本题考核的知识点是Rnd函数与Int函数的应用。从Rnd函数产生的范围[0,1)来看,把该范围先转换一个下限是可取的、上限取不到的范围,再把该区域平移到0为起点的范围。这个新范围又是[0,1)的若干倍。具体的计算步骤如下:[65,90] →[65,91) →[0, ? )+65→[0,26)+65→[0,1)*26+65,再把这个表达式用VB语言来表示。
答案 Int(Rnd()*26+65)[方法总结] 生成一个随机数的范围应围绕Rnd函数产生的[0,1),他的特点有两个,一是下限能取到,而上限是不能取到;二是下限总是从0开始,把区域平移若干个单位,使得左边为0,并把[0,1)扩大若干倍。【变式训练】 用计算机程序来模拟掷骰子的过程,掷骰子一次可能的点数为1~6,写出相应的VB表达式___________。
解析 [1,6] →[1,7) →[0,6)+1→[0,1)*6+1
答案 Int(Rnd()*6+1)3.对小数进行四舍五入进位处理
四舍五入进位指的是小位点后第一位,如果小于或等于4,舍去小数部分;如果大于或等于5,则将整数部分加1,舍去小数部分。小数部分值的范围是[0,1) 可以表示为[0,0.5)和[0.5,1)两个区间,这两个区间范围是一样的。那么前者+0.5后,不会超出1,而后者+0.5后,最小的值为1。对小数x四舍五入保留整数的表达式Int(x+0.5)
若要将某个小数四舍五入保留两小数,可以将该数扩大100倍并四舍五入取整数,再将该整数缩小100倍。对小数x四舍五入保留两位小数的计算过程:x→100*x(作为一个新的小数)→对100*x四舍五入保留整数→Int(100*x+0.5) →把该整数缩小100倍→Int(100*x+0.5)/100。
同理,若要保留一位小数,只需先把数扩大10倍并四舍五入取整数,然后缩小10倍,得到1位小数。二、Mod函数
1.判断数x能被y整除(y是x的倍数)
整除还可以从余数来判断,如果x除y的余数为0,即x Mod y
=0,则表示y是x的倍数
2.取出整数x的个位数
用x Mod 10 来取出数x的个位数
3.用在数制转换时
在十进制向其他进制转换时,每次先得到除其他进制的余数。三、对字符串进行分解
对某个字符串s进行操作时,往往要把这个字符串s中每个字母进行分离,此时用到两个函数,一个是分离的次数,取决于他的长度,用Len函数;取出每个字母,用Mid函数,常见的表达式为Mid(s,i,1),表示在字符串第i个位置取1个字符。【例3】 字符串s的值为”X能被Y整除”,则表达式Mid(s,4,3)的值为____________________;表达式Mid(s,3,4)的值为________________________。
解析 本题考核的知识点是Mid函数的应用。Mid(s,i,n)表示在字符串s第i个位置取出n个字符。
答案 ”Y整除” ”被Y整除”
[方法总结] 对字符进行操作时,Len函数决定了循环的次数,Mid函数是对每次查找或比较的对象进行分离,特别要注意Mid函数的参数。【变式训练】 身份证第7位到第10位(共4个数字)表示出生的年份,输入一个身份证号码s,今年(2017年)与出生年份的差值,表示他的周岁年龄,写出计算周岁年龄的VB表达式__________________。
解析 本题考核的知识点是Mid函数及表达式的应用。要注意Mid函数的参数,从起始位置取字符的个数,而不是从起始位置到终止位置。该函数的值为文本类型,在算术运算时,要转换成数值。
答案 2017-Val(Mid(s,7,4))四、当用余数作为Mid函数起始位置时注意问题
在十进制数向其他进制转换、已知年份求属相时,往往用一个数除另一个数的余数作为Mid函数的起始值的参数,但余数的最小值为0,而在字符串的位置是从第1个位置开始的。【例4】 在十进制数向十六进制数转换时,得到余数r,该余数转换成文本的方法是从字符串s(s=”012345789ABCDEF”)中得到,根据余数r,取出该文本的VB表达式______________。
解析 当余数为0时,他是字符串s的第1个位置开始取出1个字符,余数是1时,取出位置为2,因此得到取出字符位置是余数加1。
答案 Mid(s,r+1,1)【变式训练】 已知字符串s的值为”零壹贰叁肆伍陆柒捌玖”,写出小写数字t转换成大写数字的VB表达式___________。
解析 当t=0时,是字符串第一个位置的字符,同理其他的数字也是类似的情况。
答案 Mid(s,t+1,1)五、多条件表达式
在VB表达式中,要注意不等号的表示方法“<>”,大于等于号的表示方法“>=”,小于等于号的表示方法“<=”。多个条件之间要有逻辑表达And或者Or进行连接。如判断整数x是奇数的条件表达式是x Mod 2<>0;如判断整数x是3的倍数或者是5的倍数的条件表达式是x Mod 3=0 Or x Mod 5=0;如要找出年龄nl大于或等于45岁的男性(xb为文本变量) nl>=45 and xb=“男”。【例5】  判断一个字符变量ch是否是字母的VB表达式_______。
解析 字母的范围在a~z之间,但可能是大写的字母,也可能是小写字母。若ch是大写字母,他比“A”要大,但比“Z”要小,因此条件为ch>=“A” And ch<=”Z”;同理若ch是小写字母,满足ch>=”a” and ch<=”z”;他可能是大写,也可能是小写,只可能满足一个,因此两个条件是Or的关系,(ch>=”A” And ch<=”Z”) Or (ch>=”a” and ch<=”z”)。根据Not、 And、 Or的优先级关系,And 的优先级高于Or,两个括号可以省略。
答案 ch>=”A” And ch<=”Z” Or ch>=”a” and ch<=”z”[方法总结] 在表示某个范围或者某个区间时,往往会与两个界点进行比对,因此需要用到两个条件表达式的逻辑关系(And或Or的关系),同时要还注意是两个条件均要满足,还是满足其中一个条件。【变式训练】 判断一个字符变量ch不是数字的VB表达式__________________。
解析 数字即在数字0和9之间,不是数字就是该表达式的非。
答案 Not (ch>=”0” And ch<=”9”)
同课章节目录