浙教版 信息技术 必修 3.8 选择、循环结构程序的设计课件(共33张ppt)

文档属性

名称 浙教版 信息技术 必修 3.8 选择、循环结构程序的设计课件(共33张ppt)
格式 zip
文件大小 506.4KB
资源类型 教案
版本资源 浙教版
科目 信息技术(信息科技)
更新时间 2019-08-21 14:44:01

图片预览

文档简介

课件33张PPT。3.8 选择、循环结构程序的设计考点1考点2考点1选择结构程序的设计
选择语句:根据不同的判断结果,选择执行不同的语句。选择语句主要有If语句,在VB中,If语句又分为两种形式,行If语句和块If语句。
?
1.行If语句
行If语句必须在一行内写完。该语句的执行过程是先计算条件表达式的值,如果条件表达式的计算结果是True,就执行Then后面的语句,否则执行Else后面的语句。如果Else和它的后随语句不出现,则条件表达式值为True时执行Then后面的语句,否则就什么也不执行,程序转向IF语句下面的后继语句。行IF语句格式如下:
If 条件表达式 Then 语句1 Else 语句2

If 条件表达式 Then 语句考点1考点22.块If语句
块If语句的格式如下:
If 条件表达式1 Then
语句块1
ElseIf 条件表达式2 Then
语句块2
……
ElseIf 条件表达式n Then
语句块n
Else
语句块0
End If考点1考点2其中的语句块可以由一个或多个语句组成。如果只有两种不同情形的分别处理,则中间所有的ElseIf部分都不必书写,只保留语句块1和语句块0相应的部分即可,即块If语句可以简化为以下格式:
If 条件表达式 Then
语句块1
Else
语句块0
End If
如果只须处理一种情况,则Else部分也不必书写,即块If语句可以简化为以下格式:
If 条件表达式 Then
语句块
End If考点1考点2当条件表达式为True或False时进行处理的语句都只有一个时,可采用行If语句,也可采用块If语句;而如果分支中进行处理的语句不止一个时,必须采用块If语句。考点1考点2例1目前,世界上普遍采用空气污染指数API确定城市空气质量等级,API的分级标准如下表所示。若变量s已存入了API的值,现根据API值判断空气质量等级,并将等级显示在标签Label1中,下列程序不能正确完成要求的是(  )考点1考点2A.if s<=50 then
grade=″优″
elseif s<=100 then
grade=″良好″
elseif s<=200 then
grade=″轻度污染″
elseif s<=300 then
grade=″中度污染″
else
grade=″重度污染″
end if
label1.caption=″等级:″+grade考点1考点2B.if s<=50 then
grade=″优″
elseif s<=100 and s>=51 then
grade=″良好″
elseif s<=200 and s>=101 then
grade=″轻度污染″
elseif s<=300 and s>=201 then
grade=″中度污染″
elseif s>300 then
grade=″重度污染″
end if
label1.caption=″等级:″+grade考点1考点2C.if s<=50 then grade=″优″
if s<=100 and s>=51 then grade=″良好″
if s<=200 and s>=101 then grade=″轻度污染″
if s<=300 and s>=201 then grade=″中度污染″
if s>300 then grade=″重度污染″
label1.caption=″等级:″+grade
D.if s<=50 then grade=″优″
if s<=100 and s>=51 then grade=″良好″
if s<=200 and s>=101 then grade=″轻度污染″
if s<=300 and s>=201 then grade=″中度污染″ else grade=″重度污染″
label1.caption=″等级:″+grade
答案:D考点1考点2解析:本题是关于选择结构程序的语法结构问题。If语句语法结构主要有行形式和块形式。对于多重判断的块形式If语句,它的语法结构如下:
If条件1 Then
 语句块1
ElseIf条件2 Then
 语句块2
……
ElseIf条件n Then
 语句块n
Else
 语句块0
End If考点1考点2其执行过程是当第1个条件满足时,如果该条件成立,执行语句块1,执行语句块1后不再判断其他的条件,直接跳转到End If后面执行后续语句;若第1个条件不满足时,再执行判断第2个条件,如果不成立,再判断第3个条件……如果所有n个条件都不满足,则执行Else后面的语句块0。选项D用了4个独立的If语句,其中第4句的功能是如果API在201~300之间,等级是中度污染,如果不是这个范围,即API<=200或API>=301为重度污染,不合题意。考点1考点2变式有如下VB程序段
Private Sub Command1_Click()
s=val(text1.text)
if s>=62 then
grade=″A″
elseif s>=55 then
grade=″B″
elseif s>=50 then
grade=″C″
elseif s>=43 then
grade=″D″
else考点1考点2grade=″E″
end if
label1.caption=″等级:″+grade
End Sub
运行该程序,在文本框中输入52,单击命令按钮Command1,在标签label1中显示的内容是      。?答案:等级:C
解析:本题是关于选择结构程序的变量求值问题。选择结构涉及多种情况判断,在程序的执行过程中将会选择其中符合条件的一路分支执行。题中变量s的值是52,第3个条件判断s>=50的值为True,因此执行语句grade=″C ″,其他分支不再执行,在标签label1中显示的内容是“等级:C”。考点1考点2Do语句格式:
Do While 条件表达式
语句块
Loop
Do语句与For语句的运行机制相近,但Do语句更侧重于循环次数未知情况下的程序。考点1考点2例2有如下程序:
x=1
For i=1 To 5 Step 2
x=x*i
Next i
该程序运行后,变量x的值是(  )
A.120    B.15    C.5    D.1
答案:B
解析:本题涉及循环结构程序(For语句)的变量求值问题。For语句中的循环变量的值,会在[初值,终值]的范围内按照步长增加或减少,直至超出终值,循环结束。本题是通过循环体中的“x=x*i”语句,将i的值依次累积到变量x中,下表罗列了程序中各变量在语句执行过程中的变化情况:考点1考点2如果把本题中的步长改为-2,要完成同样功能,则程序可改为:
x=1
For i=5 To 1 Step-2
x=x* i
Next i
即如果步长为负值,那么初值须大于等于终值,循环变量i的值将依次是5、3、1、-1。考点1考点2变式有如下程序:
x=1
i=1
do while i<=5
x=x*i
i=i+2
loop
该程序运行后,变量i的值是   。?答案:7
解析:本题涉及循环结构程序(Do语句)的循环变量求值问题。For循环通过Next语句,按照步长改变循环变量的值,直至循环结束。Do语句则需要在其循环体内编写改变循环变量的语句,直至While条件表达式的值为False时,循环结束。程序运行中,各变量变化过程如下表所示:考点1考点2由上表结合程序可知,当语句块进入第3次循环时,执行语句i=i+2后,循环变量x的值将会变为7,从而使条件表达式i<=5的值为False,程序无法进入第4次循环,循环终止。1.有以下VB程序
dim x as integer,y as integer
x=val(text1.text)
if x>=0 then
y=x^3
else
y=-x^3
end if
label2.caption=str(y)
若要测试所有分支程序代码是否正确,下列测试数据中最恰当的一组是(  )
A.0,10   B.-1,-2   C.-1,0   D.10,100
答案:C 2.用VB语句描述:如果x≤10且x>1,则y=x3,否则y=-x3,是(  )
A.If 1B.If x<=10,x>y Then y=x3 else y=-x3
C.If x<=10 and x>1 then y=x^3 else y=-x^3
D.If x<=10 or x>1 then y=x^3 else y=-x^3
答案:C3.有如下Visual Basic程序段:
a=2
b=1
c=3
m=a
If b>a Then m=b
If c>m then m=c
该程序段运行后,变量m的值是(  )
A.1  B.2 C.3  D.0
答案:C 
解析:程序中两个if语句实现了把a、b、c中的最大数赋值给m的功能。4.下列VB程序段用来判断某数的正负情况:
x=val(text1.text)
if       then?
label1.caption=″正数″
else
label1.caption=″负数″
end if
则程序划线处应填入(  )
A.x<0 B.x<>0 C.x>0 D.x<=0
答案:C5.以下事件处理过程用来判断三边能否组成三角形:
Private Sub Command1_Click()
a=3
b=4
c=5
if a+b>c and b+c>a and a+c>b then label1.caption=″可以″ else label1.caption=″不行″ end if
End Sub
运行程序后,单击命令按钮Command1后,结果是(  )
A.标签label1显示“不行”
B.标签label1显示“可以”
C.出现“语法错误”的错误信息
D.出现“块if没有end if”的错误信息
答案:C 
解析:行if语句结尾不需要end if。6.某算法的部分程序代码和其相对应的流程图分别表示如下:
Private Sub Command1_click( )
 dim s as integer,i as integer
 dim n as integer
 n=val(text1.text)
 s=0
 for   ①  ?
②  ?
 next i
 label1.caption=str(s)
End Sub则程序①②处应填入的代码是(  )
A.①i=0 to n step 2 ②s=s+i
B.①i=0 to n ②s=s+i
C.①i=1 to n step 2 ②s=s+i
D.①i=0 to n step 2 ②s=s*i
答案:A 
解析:由流程图可知,i是循环变量,初值是0,终值是n,步长为2,则1处代码是i=0 to n step 2;每次循环把i的值累加到S中,则2处代码是s=s+i。7.有以下VB程序段:
s=0
for i=1 to 10 step 3
s=s+i
next
该程序执行后,变量i和s的值分别为(  )
A.13,22 B.10,22
C.13,35 D.10,35
答案:A 
解析:for语句步长是3,循环变量i的值依次是1、4、7、10,循环4次,最后i=13,每次循环把i的值累加到s中,所以s=1+4+7+10=22。8.为计算1+3+5+…+99的值,某人编程如下:
k=1
s=0
do while k<=99
k=k+2
s=s+k
loop
print s
在调试时发现运行结果有错误,需要修改。下列对于错误原因和修正方案的描述正确的是(  )
A.do while...loop循环语句错误,应改为For k=1 To 99...Next k
B.循环条件错误,应改为k<99
C.循环前的赋值语句k=1错误,应改为k=0
D.循环中两条赋值语句的顺序错误,应改为s=s+k:k=k+2
答案:D9.有以下VB程序段:
s=1:i=1
do while s<100
s=s*i
i=i*2
loop
该程序执行后,变量i和s的值分别为(  )
A.8,64 B.16,1024 C.32,1024 D.16,64
答案:C 
解析:程序运行中,各变量变化过程如下表所示:10.有以下VB程序段:
s=0
for i=10 to    step-2?
s=s+i
next i
若要使语句s=s+i执行6次,则循环变量i终值应为 (  )
A.0 B.1 C.2 D.-2
答案:A11.有如下VB程序
s=0:i=1
do while    ?
s=s+i
i=i+2
loop
该程序运行后,变量S的值等于16,则程序划线处的语句是(  )
A.i<=5 B.i<=7
C.i<7 D.i<=9
答案:B 
解析:i的变化规律是1、3、5、7、9….,s的值由i累加而得,s=1+3+5+7=16,所以条件是i<=7。12.现要求编写VB程序,编辑界面如图甲所示,运行界面如图乙所示,程序功能如下:在文本框Text1中输入N的值,单击“求和”按钮Command1,完成N以内奇数和的计算,并在文本框Text2中显示计算结果。(1)观察编辑界面和运行界面,发现缺少控件,需要添加的对象为
       (填写对象名称)。?
(2)请根据题意将下列程序补充完整。
Private Sub Command1_Click()
Dim n As Integer,s As Integer,i As Integer
n=Val(Text1.Text)
For i=①   ?
s=s+i
Next i
②     =Str(s)?
End Sub
答案:(1)Text2 (2)①1 To n Step 2 ②Text2.Text解析:题目要求文本框Text2中显示计算结果,需要添加的对象为Text2,程序最后把求和结果显示在文本框Text2中,所以②处填写Text2.Text。程序中for循环用以计算N以内奇数和,每次循环把i的值累加到s中,所以i的变化规律应该是1、3、5、7…n,所以①处填入1 To n Step 2。