课件43张PPT。第二章算法初步§3 几种基本语句3.1 条件语句自主预习学案中央电视台《开心辞典》正在进行,主持人王小丫:“第一个题目:酱油分老抽和生抽,是老抽咸一点还是生抽咸一点?有下列两个选项,二选一:A老抽,B.生抽.请做答.”这时参与答题的人面临着两种选择,即回答A(错)或B(对).正是由于这两种不同的选择而导致下一步执行的方式不同,即:答A则游戏终止,答B则继续下面的答题.
你能用算法中的语句来描述上面的小故事吗?1.条件语句
条件语句是表达____________最常用的语句.
2.If语句的一般格式
对于框图(1)的算法可以用下列语句来表示.
If ________ Then
语句1
Else
语句2
End If选择结构 条件 3.复合If语句的一般格式
对于形如图(2)所示框图描述的算法,都可以用复合语句来表示.
If 条件1 Then
__________
Else
If 条件2 Then
语句2
Else
__________
End If
End If语句1 语句3 1.执行一个条件语句,可以有几种结果( )
A.1种 B.2种
C.3种 D.多于3种
[解析] 不论执行哪种程序,执行一次只有一个结果. A
2.下列关于条件语句的叙述正确的是( )
A.条件语句中必须有Else和End If
B.条件语句中可以没有End If
C.条件语句中可以没有Else,但必须有End If
D.条件语句中可以没有End If,但必须有Else
[解析] 由条件语句的形式可知,只有C正确.C3.若输入8时,则下列程序执行后输出的结果是__________.
输入t
If t≤4 Then
C=0.2
Else
C=0.2+0.1*(t-3)
End If
输出C
[解析] 当输入t=8时,因为t=8>4.所以执行语句2,故输出C=0.2+0.1×(8-3)=0.7.0.7 互动探究学案命题方向1 ?条件语句的理解a negative number 分别判断下列两组语句执行的结果:
(1)输入a;
If a>0 Then
m=a*a+3*a+2
输出m.
Else
输出“a negative number”.
End If
若输入-3,则输出的结果为_________________;若输入2,则输出的结果为________;12 (2)输入x;
If x≤10 Then
p=x*0.35
Else
p=10*0.35+(x-10)*0.7
End If
输出p.
若输入6,则输出的结果为__________;若输入18,则输出的结果为__________.2.1 9.1 [思路分析] (1)中,若输入-3,则条件判断为假,所以执行Else后面的语句:输出“a negative number”.若输入2,则条件判断为真,所以执行Then后面的语句:m=a*a+3*a+2;输出m(先将a*a+3*a+2的值赋予变量m,然后输出变量m的值).同理可分析得出(2)的答案.
[解析] (1)若输入-3,则输出的结果为:a negative number;若输入2,则输出的结果为12.
(2)若输入6,则输出的结果为2.1;若输入18,则输出的结果为9.1.『规律总结』 解决此类题目,首先要明确程序中所给的判断条件,其次要理解在不同的条件下需要执行的语句.解题的关键是条件的准确判断.分别输入8,4和2,4,则两次执行该语句的输出结果分别为( )
A.8,2 B.8,4
C.4,2 D.4,4C命题方向2 ?应用If语句描述算法[思路分析] 本题是已知分段函数的解析式求函数值的问题,当输入一个x的值,由于x所在的范围不同,因而用来计算函数值的解析式也有所不同,因此要计算函数值必须先判断x的范围,因而要设计求函数值的算法必须用条件结构.相应程序的书写也应用条件语句书写.[解析] 算法流程图为:
算法语句为:
输入x;
If x≥0 Then
y=x2-1
Else
y=2*x2-5
End If
输出y.『规律总结』 当计算机执行If语句时,首先对If后边的条件进行判断,如果满足条件,那么执行语句1,再执行End If之后的语句,即结束条件语句;如果不满足条件,那么执行语句2,再执行End If之后的语句,即结束条件语句.〔跟踪练习2〕 编写程序,输入任意两个实数,输出其差的绝对值.
[解析] 设a和b是任意两个实数,则当a≥b时,其差的绝对值等于a-b,否则等于b-a,可用条件语句实现这一算法.
流程图如下图所示.
用条件语句描述这个算法:
输入a,b
If a≥b Then
输出a-b
Else
输出b-a
End If命题方向3 ?复合If语句及应用 给出一个算法:
1.输入x.
2.若x<0,则y=x+1.
3.若x=0,则y=0.
4.若x>0,则y=x.
5.输出y.
(1)指出该算法的功能;
(2)将该算法用流程图表示出来;
(3)用基本语句写出该算法.[思路分析] 本题的算法是一个分段函数问题,故要用条件语句来处理.x的取值共分三部分,需要用复合If语句.(2)流程图如图所示.(3)用基本语句描述为:
输入x
If x<0 Then
y=x+1
Else
If x=0 Then
y=0
Else
y=x
End If
End If
输出y『规律总结』 在一些较为复杂的算法中,有时需要在判断之后接着进行判断,亦即在执行语句1或语句2的过程中又需要进行条件的判断,这就形成了复合的选择结构,我们可以利用复合条件语句来描述这种类型的算法.[解析] 用复合If语句描述算法:
输入x
If x<0 Then
y=-x+2
Else If x=0 Then
y=4
Else
y=x+2
End If
End If
输出y
流程图如图所示. 算法如下:
1.输入x;
2.判断x>0是否成立,若成立,则z=1;若不成立,则z=-1;
3.z=z+1;
4.输出z;
试将上面算法用程序表示.[错解] 用语句描述为:
输入x
If x≤0 Then
z=-1
Else
z=1
z=z+1
输出z.
[辨析] 丢掉“End If”,这样条件语句的结构就不完整了.算法流程图如下图所示:
用语句描述为:
输入x;
If x≤0 Then
z=-1
Else z=1
End If
z=z+1
输出z.
[点评] 由If语句的格式知,条件语句的结束语为“End If”,如果漏掉,该语句是不完整的,程序无法运行.条件语句在实际问题中的应用 乘坐火车时,可以托运货物.从甲地到乙地,规定每张火车客票托运费计算方法是:行李质量不超过50 kg时按0.25元/kg;超过50 kg而不超过100 kg时,其超过部分按0.35元/kg.超过100 kg时,其超过部分按0.45元/kg.设计算法语句,输入行李质量,计算出托运的费用.
[思路分析] 本题要对条件语句有较好的理解,要先列出托运的费用关于行李质量的函数关系式,然后写出算法,画出流程图,转化为条件语句.算法步骤:
1.输入行李质量x;
2.当x≤50时,计算y=0.25x,否则执行下一步;
3.当x≤100时,计算y=0.35x-5,否则计算y=0.45x-15;
4.输出y.算法流程图,如下图.算法语句如下:
输入x;
If x≤50 Then
y=0.25*x
Else
If x≤100 Then
y=0.35*x-5
Else
y=0.45*x-15
End If
End If
输出y『规律总结』 对复合If语句的理解
①复合If语句一般用于要解决的问题需要分类(分为3类或3类以上)讨论的情况.
②在复合If语句中,要注意“If”和“End If”的配对,一般可利用文字的缩进表示复合的层次.
③对于复合If语句,一定要分清内层条件语句和外层条件语句,内层的条件结构是外层条件结构的一个分支.其中不需要用条件语句来描述相应算法的有( )
A.1个 B.2个
C.3个 D.4个
[解析] 根据条件语句的适用范围,当需要根据某个给定条件是否满足而决定是否执行某一步时,应该使用条件语句.由此可判断出问题③不需要用条件语句,因为正方形周长一定时,其面积也一定.A[解析] 只有③④使用条件语句.D 3.求实数x的绝对值的程序如下,其中空白处应填入( )
A.x>0 B.x<=0
C.x<0 D.x>=0
[解析] 求的是x的绝对值,输出的为y=-x,故输入条件应用x<=0,选B.B 4.阅读下列程序:
输入“x=”,x
IF x≥2 Then
y=x
Else
y=x+1
End If
输出y
输入x的值为π,则程序运行的结果为______.
[解析] 因为输入的x=π≥2,故执行语句1,所以输出π.π 第二章 §3 3.1
A级 基础巩固
一、选择题
1.条件语句的一般格式是
If A Then
B
Else
C
End If
其中B表示的是( A )
A.满足条件A时执行的内容
B.条件语句
C.条件
D.不满足条件A时执行的内容
[解析] 格式中的A表示条件,Else后面的C表示不满足条件A时执行内容,而在Then后面的B表示满足条件A时执行的内容,故选A.
2.当a=3时,下面的程序输出的结果是( D )
输入a
If a<10 Then
y=2*a
Else
y=a*a
End If
输出y
A.9 B.3
C.10 D.6
[解析] 程序执行的顺序为a=3,y=2×3=6,输出6.
3.下列关于条件语句的说法中正确的是( C )
A.任何条件语句中不能没有Else及后序语句
B.在复合If语句中,可以只有一个End If语句
C.在算法语句中,可以同时使用多个条件语句
D.在Else和Then后面只能有一个语句
[解析] A中If—Then语句可以没有Else语句,所以A错;B中在复合If语句中,有多少个If应对应多少个End If,所以B错;D中在复合If语句中Else和Then后面可以不只有一个语句,故D错.
4.根据下列算法语句,当输入x的值为-2时,输出结果是( D )
输入x
If x>0 Then
y=2*x*x-1
Else
If x=0 Then
y=2*x+1
Else
y=-2*x*x+4*x
End If
End If
输出y
A.7 B.-3
C.0 D.-16
[解析] 程序表示的是函数y=,
∴当x=-2时,y=-2×(-2)2+4×(-2)=-16.
故选D.
二、填空题
5.执行下面语句:
输入a;
If a<0 Then
输出“不存在”
Else
t=sqr(a)
输出t
End If
当a=-3时,输出结果为_不存在___;当a=9时,输出结果为_3___.
[解析] 本算法语句的作用是输入一个数,若该数大于等于0,求该数的算术平方根,若输入的数小于0,则该数的算术平方根不存在.
6.写出下列程序运行的结果:
输入a;
If a<0 Then
b=0.5*a
Else
b=a^2+3*a+1
End If
输出b
若a=4,则b=_29___;若a=-4,则b=_-2___.
[解析] 分析程序可以知道,上述程序是一个分段函数的程序,即b=,
所以当a=4时,b=42+3×4+1=29;
当a=-4时,b=0.5×(-4)=-2.
三、解答题
7.已知函数y=,试用If语句来描述算法.要求输入x的值,求y的值.
[解析] 根据题意写出算法程序为:
输入x;
If x>0 Then
y=1
Else
If x=0 Then
y=0
Else
y=-1
End If
End If
输出y
8.已知语句:
说明其功能并画出算法流程图.
[解析] 该程序的功能为求分段函数
y=的值.
算法流程图如图.
B级 素养提升
一、选择题
1.给出一个算法的程序:
输入a,b,c;
If a a=b
End If
If a a=c
End If
输出a
该程序的功能是( A )
A.求出a,b,c三数中的最大数
B.求出a,b,c三数中的最小数
C.将a,b,c按从小到大排列
D.将a,b,c按从大到小排列
[解析] 由程序分析可知,当比较a,b的大小后,选择较大的数赋给a;当比较a,c的大小,选择较大的数赋给a;最后输出a.所以此程序的作用是输出a,b,c中最大的数.
2.为了在运行下面的语句之后输出y=9,应输入的x值为( C )
输入x;
If x<0 Then
y=(x+1)^2
Else
y=(x-1)^2
End If
输出y.
A.-4 B.-2
C.4或-4 D.-2或2
[解析] 算法表示函数
y=
∴当y=9时,由(x+1)2=9得x=-4;
由(x-1)2=9得x=4.
二、填空题
3.给出下列程序:
输入a,b,c
If a>b Then
a=b
End If
If a>c Then
a=c
End If
输出a
如果输入-10,-26,8,那么输出的是_-26___.
[解析] 该程序的功能是输入a,b,c的值,求它们中的最小值.
4.读算法语句完成下列题目.
输入x
If x>1 Then
y=x+1
Else
y=2*x+1
End If
输出y
(1)若执行算法时,没有执行语句y=x+1,则输入x的范围是_x≤1___;
(2)若执行结果y的值是5,则执行的赋值语句是_y=x+1___,输入的x的值是_4___.
[解析] 依题意,题目所给的是求函数f(x)=的算法.
因此,当x≤1时,没有执行y=x+1;
又当x>1时,x+1>2.当x≤1时,2x+1≤3,
从而输出的y的值是5时,x=4.
三、解答题
5.用基本语句描述判断点P(a,b)与圆C︰x2+y2=r2(r>0)的位置关系的算法.
[解析] 用基本语句描述为:
输入a,b,r;
If a^2+b^2>r^2 Then
输出“点P在圆C外”.
Else
If a^2+b^2=r^2 Then
输出“点P在圆C上”.
Else
输出“点P在圆C内”.
End If
End If
6.用基本语句描述下图所示的框图表示的算法.
[解析] 该框图表示的算法的功能是求分段函数y=的函数值.
用基本语句描述为:
输入x;
If x<0 Then
If x<-4 Then
y=4*x
Else
y=-1
End If
Else
y=3*x-1
End If
输出y
7.某服装厂生产一种服装,每件服装的成本为40元,出厂单价为60元.该厂为鼓励销售商订购,决定当一次订购量超过100件时,每多订购一件,订购的全部服装的出厂单价就降低0.02.根据市场调查,销售商一次订购量不会超过500件.设一次订购量为x件,服装的实际出厂单价为P元,写出函数P=f(x)的表达式,并画出算法流程图,用基本语句描述该算法.
[解析] 当0当100所以P=f(x)=.
算法流程图如下图所示,
算法语句如下:
输入x;
If x≤100 Then
P=60
Else
If x≤500 Then
P=62-x/50
Else
输出“无意义”
End If
End If
输出P.