§13.2基本算法语句
一、知识导学
1. 赋值语句用符号“←”表示,“”表示将 的值赋给,其中是一个变量,是一个与同类型的变量或表达式.
2. 条件语句主要有两种形式:“行If 语句”和“块If语句”.
“行If 语句”的一般形式为:
If A Then B [Else C] .
一个行If 语句必须在一行中写完,其中方括号中的Else部分可以缺省.
“块If 语句”的一般格式为:
If A Then
B
Else
C
End if
Then 部分和 Else 部分是可选的,但块If语句的出口“End if”不能省.
3. 循环语句主要有两种类型:For语句和While语句.
当循环的次数已经确定,可用“For”语句表示.“For”语句的一般形式为:
For I from“初值” to step“步长”… End for
上面“For”和“End for”之间缩进的步骤称为循环体.
当循环次数不能确定是,可用“While”语句来实现循环.“While”语句的一般形式为:
While A
…
End while
其中A表示判断执行循环的条件.
上面“While”和“End While”之间缩进的步骤称为循环体.
二、疑难知识导析
1. 有的条件语句可以不带“Else”分支,即满足条件时执行B,否则不执行任何操作.条件语句也可以进行嵌套,在进行条件语句的嵌套时,书写要有层次.例如:
If A Then
B
Else if C Then
D
Else
E
End if
2.“For”语句是在执行过程中先操作,后判断.而“While”语句的特点是“前测试”,即先判断,后执行.若初始条件不成立,则一次也不执行循环体中的内容.任何一种需要重复处理的问题都可以用这种前测试循环来实现.
三、经典例题导讲
[例1] 下列程序的运行结果是 .
If >5 Then
If >4 Then
If >3 Then
错解:8+7=15
错因:误认为在一个程序中只执行一个条件语句,与在一个条件语句中只选择其中一个分支相混淆.If A Then B [Else C] 若满足条件A 则执行B,否则是执行C,B和C是这个条件语句的分支,而这个程序省略了Else部分.
正解:这里是有三个条件语句,各个条件语句是独立的,三个条件均成立,所以按顺序依次执行,结果为8+7+6+6=27.
[例2] 下面的伪代码的效果是
While <10
End While
End
错解:执行10次循环
错因:将For语句和While语句混淆. For语句中有步长使循环变量不断变化,而While语句则无.
正解:无限循环下去,这是因为这里始终为0,总能满足条件“”,故是一个“死循环”.
点评:“死循环”是设计循环结构的大忌,此题可改变的初始值或每一次循环都增加一个值.
[例3]下面的程序运行时输出的结果是( )
While
End while
Print S
End
错解:第一次循环时,I被赋予2,S被赋予4;第二次循环时,I被赋予3,S被赋予4+=13;第三次循环时,I被赋予4,S被赋予13+=29;第四次循环时,I被赋予5,S被赋予.由于此时,故循环终止,输出S为54.
正解:由于在循环内,每经过一次循环后S都被赋值0,因此,只要求满足条件的最后一次循环S的值,即当时,.
[例4]用语句描述求使成立的最大正整数的算法过程.
解:
While
End while
点评:此题易错的是输出值,根据While循环语句的特征当时跳出循环体,此时的值是时的最小的整数,则使的最大整数应为的前一个奇数即.
[例5]已知当时,,当时,,当时,,设计一算法求的值.
解: Read x
If then
Else if Then
Else
End if
End
点评:嵌套If语句可用如上的紧凑形式书写,要注意的是如不是采取紧凑形式,则需注意一个块If语句对应一个End If,不可省略或缺少.
[例6]设计一个算法,使得输入一个正整数,输出1!+2!+3!+…+!的值.写出伪代码.
解:思路一:利用单循环,循环体中必须包括一个求各项阶乘的语句以及一个求和语句.
Read n
For I from 1 to n
End For
Print S
思路二:运用内外双重循环,但尤其注意的是每一次外循环T的值都要从1开始.
Read n
For I from 1 to n
For J from 1 to I
End For
End For
Print S
四 、典型习题导练
1. 下列的循环语句循环的次数为( )
For I from 1 to 7
For J from 1 to 9
Pint I+J
End for
End for
End
A.7次 B.9次 C.63次 D.16次
2.运行下面的程序后输出的结果是 ,若将程序中的A语句与B语句的位置互换,再次执行程序后输出的结果为 .
While
′A语句
′B语句
End While
Print x,y
End
3.伪代码描述的求T的代数式是 ,求的代数式是 .
Read n
For I from 1 to n
End for
Print T,S
4.运行下面程序后输出的结果为
For I from 10 to 1 step -2
Print I
End for
End
5. 将100名学生的一门功课的成绩依次输入并计算输出平均成绩.
联系客服