1、§3 几种基本语句 知识梳理 1.前面我们已学习了用自然语言和流程图来描述算法,但要使算法能在计算机上实现运行,还得借助于程序语言.在众多的程序语言中,都会涉及以下5种基本语句:输入语句、输出语句、赋值语句、条件语句和循环语句. 2.算法中的选择结构由条件语句来表达,其一般格式为If<条件>Then<语句>. 3.在循环结构中,若预先知道循环次数,一般用For语句来表达,其一般格式为 For循环变量=初始值To终值 循环体 知识导学 条件语句是表达选择结构的语句,也就是条件语句和选择结构相互对应.同理,循环语句与循环结构相对应.所以应结合框图中的选择结构和循环结构,
2、理解条件语句和循环语句的结构形式,学习使用条件语句和循环语句的方法. 通过实例,感触用条件语句和循环语句解决具体问题的过程,明确条件语句和循环语句的格式、用法,领会条件语句和循环语句就是程序框图中选择结构和循环结构的另一种表现形式. 在应用条件语句编写解决某一问题的算法程序时,可遵循以下思维步骤: (1)构思出解决该问题的一个算法(可用自然语言); (2)画出程序框图,形象直观地把算法描述出来; (3)据这个框图来编写程序,即逐步把框图中的算法步骤用算法语句表达出来,在把程序框图转化为程序语句的过程中,注意其中的条件结构相应地用条件语句正确地表示出来. 疑难突破
3、1.条件语句的作用和形式 剖析:条件语句是表达选择结构最常用的语句,主要是针对所给条件进行判断,根据条件的真假决定执行下一步的任务.例如,对一个分段函数的求值,首先要对自变量的范围进行判断,根据范围决定选取相应的函数表达式,就要用到条件语句.实际上,如图2-3-1的流程图就可以用条件语句进行表示. 图2-3-1 条件语句的一般形式如下: If 条件 Then 语句1 Else 语句2 2.循环语句的作用和形式 剖析:循环结构是算法中的基本结构,循环语句是实现这一算法的基础,它能解决那些需要重复进行运算的问题,把循环结构的算法转化为易于理解的类似计算机的语言,
4、从而实现编写程序,运算结果.例如,要求1+2+3+…+100的计算就要反复进行加法运算,就可以使用循环语句实现. 循环语句主要有两种类型: For语句是表达循环结构最常见的语句之一,其格式为: For循环变量=初始值To终值 循环体 另一种是Do Loop语句,一般形式为: Do 循环体 Loop While条件为真 3.复合If语句 剖析:有些选择结构需要经过几次判断或者判断之后还要接着判断,靠单纯的If语句无法实现算法,就可以使用复合If语句.例如,输入一个年份判断是不是闰年,就需要判断这个数字是不是4的倍数,接着还要判断它是不是100和400的倍数,
5、就可以使用复合If语句来实现.其流程图如图2-3-2所示: 图2-3-2 复合If语句的一般形式为: If条件1 Then语句1 Else If条件2 Then语句2 Else语句3 典题精讲 例1 叙述下列流程图(如图2-3-3)所表示的含义,并用复合If语句描述流程图. 图2-3-3 思路分析:首先要理解流程图的含义,根据对x值的判断输出不同结果,可知它表示的是一个分段函数的求值,进而可以使用If复合语句写出相应结果. 解:流程图的含义是:求分段函数的值.函数解析式为:y= 用If复合语句可以表示为: 输入x, If
6、 x<0,Then If x<-4,Then y=4x; Else y=-1; Else y=3x-1. 输出y. 黑色陷阱: 本题最容易犯的错误是,对条件的判断不准确,特别是在x<0后的复合中的x与-4关系的判断是本题最容易混淆的,因此一定要看清题意,理解流程图中是与非的界定. 变式训练 输入x的值,求函数y=的值,用程序语言表达该算法. 思路分析:由于函数是分段函数,函数值是1、0要看输入的x值的正负,即算法中需用到条件结构进行对x值的判断,相应的算法语句要用到条件语句.可以先画出解决该问题的程序框图,再对应写出程序语言. 图2-3-4 解:算法的程序框
7、图(如图2-3-4)和程序语言如下: Input x If x>0 Then y=1 Else y=0 End If Print “y=”;y End 例2 输出1~100之间的所有偶数,使用For循环. 解: 具体过程如下: For i=1 To 100 If i mod 2=0 Then 输出i. 变式训练 利用循环语句编写一个程序,求所输入的50名同学数学成绩中大于80分的成绩的平均分. 解:程序如下: s=0 b=0 For i=1 To 50 a=input(“chengji=”); If a>80
8、 s=s+a b=b+1 End aver=s/b 例3 某次对550个产品进行检验,测得550个质量数据,请你用程序设计一个算法,用来统计质量在95克以上(包含95克),90~94克以及90克以下产品的数量. 思路分析:要对550个数据进行统计,计算量较大,所以适合使用循环语句,又因为数据的数量是已知的,所以可以使用Repeat循环,这里还要判断数据的大小,所以还要使用条件语句进行判断. 解:i=1; m=0; n=0; l=0; Repeat 输入S; If S≥95 Then m=m+1; Else If S≥90; Then n
9、n+1; Else l=l+1; i=i+1; Until (i>550); 输出m,n,l. 绿色通道:有效地利用计算机进行一些统计可以节约大量的人力,特别是对于那些需要重复进行的计算,使用循环语句还可以节约很多的时间,使结果更加明确. 变式训练 某市电信部门规定:拨打市内电话时,如果通话时间不超过3 min,则收取通话费0.2元;如果通话时间超过3 min,则超过部分以0.1元/min收取通话费(时间t以分钟计,不足1 min按1 min计),问:如何设计一个计算通话费用的算法? 思路分析:我们令y表示通话费用(单位:元),t表示通话时间(单位:min)
10、则有 y= 这是一分段函数,它实际上是关于条件的选择,用条件结构,相应的程序用条件语句,据此可先写出算法步骤,画出流程图,再写出程序语言. 解:依据上面的分析可知解决这一问题的算法步骤如下: 第一步:输入通话时间t; 第二步:如果0<t≤3,那么y=0.2,否则y=0.2+0.1(t-3); 第三步:输出费用y. 算法流程框图如图2-3-5: 图2-3-5 算法程序为: Input “通话时间”;t If t<=3 And t>0 Then y=0.2 Else y=0.2+0.1*(t-3) End If Print “通话费
11、用为”;y End 例4 已知算法程序为: 输入a1,a2,a3,…,a20, i=1;a=0;b=0;c=0; Repeat If ai>0 Then a=a+1; Else If ai=0 Then b=b+1; Else c=c+1; i=i+1; Until (i>20) 输出a,b,c. 请改用For循环语句写出. 思路分析:先分析所给程序的作用,这个算法的过程是:首先输入20个数据,然后判断输入数值的正负或者是0,根据判断统计出正数、负数及0的个数,再输出结果.根据算法的作用然后用For循环写出算法即可. 解:改写为:输入a1
12、a2,a3,…,a20 a=0;b=0;c=0; For i=1 To 20; If ai>0; Then a=a+1; Else If ai=0; Then b=b+1; Else c=c+1; End 输出a,b,c. 绿色通道:条件语句和循环语句是实现算法的最基本的语句,要认真理解这两种语句的含义和使用格式,还要注意Repeat循环和For循环语句的区别与联系.好多问题都是几种语句的综合运用,在综合使用各种语句时,还要考虑主次之分,比如本题首先要考虑循环,其次是判断,因此把循环作为主题. 变式训练 1×3×5×7×…×_______>10 00
13、0,问:如何寻找满足条件的最小整数?请设计算法并用循环语句表示出来. 思路分析:当循环次数不能确定时,可用Repeat循环语句来实现. 解:算法描述如下: 记初始值s=1; 循环变量i=3; 若s≤10 000,则s=s×i,i=i+2; 输出i 用Repeat循环语句描述是: s=1 i=3 Repeat s≤10 000 s=s*i i=i+2 Print(%io(2),i) End 问题探究 问题 计算机语言(程序语言)作为一种特殊的语言形式,有它的格式和要求,每一个字母或符号都表示特定的意思.If条件语句也有一定的
14、表达格式,那么,在使用这种语句时应注意哪些问题?谈谈你的认识. 导思:可根据If条件语句的格式要求及具体实例加以说明. 探究:首先要知道条件语句的一般形式: If <条件> Then <语句1> Else <语句2> 在使用时还应考虑以下几种情况: (1)条件执行语句中“Else 语句2;”部分是选择项,可以缺省,此时条件语句变成: If(逻辑表达式) 语句1; 表示若条件为真,则执行语句1,否则跳过语句1继续执行. (2)如果语句1或语句2有多于一条语句要执行时,必须使用“{“和”}”把这些语句包括在其中,此时条件语句形式为: If(逻辑表达式){
15、语句体1;} Else {语句体2;} 这里语句体指多个语句,每个语句都必须以“;”结尾. (3)条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个If对应哪个Else. 例如: If(x>20 Or x<-10) If(y<=100 And y>x) A=“Good”; Else B=“Bad”; 对于上述情况,规定:Else语句与最近的一个If语句匹配,上例中的Else与If(y<=100 And y>x)相匹配.为了使Else与If(x>20 Or x<-10)相匹配,必须用花括号.如下所示: If(x>20 Or x<-10) If(y<=100 And y>x) A=“Good”;} Else B=“Bad”; (4)可用阶梯式If-Else-If结构. 阶梯式结构的一般形式为: If(逻辑表达式1) 语句1; Else If(逻辑表达式2) 语句2; Else If(逻辑表达式3) 语句3;
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818