(共35张PPT)
第11章 算法初步
第11章 算法初步
INPUT
变量
变量
PRINT
表达式
常量
变量
系统信息
表达式所代表的值
变量
表达式的值
变量
×
×
√
×
本部分内容讲解结束
按ESC键退出全屏播放
A
预习案,自生学习
研读·思考·尝试
探究案·讲练叵动
解惑·探究·突破
开始
输入xy
2
y=5y
输出x,y
D=3-y
y=y-1
输出x,y
结束
开始
输入x1,x2,
y1=2
92
2
y1-y2
1=
v1-x2
输出k
结束
开始
输入M,N
44M-N
2
B=M-A
输出A,B
结東
INPUT“鸡和兔的总数量:”;M
INPUT“鸡和兔的脚的总数量:”;N
A=(4兴M一N)/2
B=M—A
PRINT“鸡的数量:”;A
PRINT“兔的数量:”;B
END11.3.1 输入、输出语句和赋值语句
掌握三种语句的定义,了解它们的一般格式和作用,借助三种语句完成算法到程序语句的转化.
三种算法语句的格式及功能
名称
格式
功能
输入语句
INPUT“提示信息”;变量.其中“提示信息”一般是提示用户输入什么样的内容
把程序中新输入的值赋给变量
输出语句
PRINT“提示信息”;表达式
在计算机的屏幕上输出常量、变量的值和系统信息
赋值语句
变量=表达式
将表达式所代表的值赋给变量.一般先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量
1.判断正误.(对的打“√”,错的打“×”)
(1)“i+1=i”是正确的赋值语句.( )
(2)INPUT语句每次只能输入一个变量的值.( )
(3)PRINT语句有计算功能.( )
(4)PRINT语句每次可以输出多个表达式,不同表达式之间用“;”隔开.( )
答案:(1)× (2)× (3)√ (4)×
2.在INPUT语句中,如果同时输入多个变量,变量之间的分隔符是( )
A.逗号
B.分号
C.空格
D.引号
解析:选A.在算法语句中,若同时输入多个变量,变量之间用逗号隔开.
3.若输入的x值为3,则计算机执行下面的伪代码后,输出的结果为________.
解析:y=x2+2=9+2=11.
答案:11
输入、输出和赋值语句的格式[学生用书P12]
(1)下列给出的输入、输出语句正确的是( )
①输入语句:INPUT a;b;c
②输入语句:INPUT x=3
③输出语句:PRINT A=4
④输出语句:PRINT 20,3
2
A.①②
B.②③
C.③④
D.④
(2)阅读下列伪代码,并指出当a=3,b=-5时的计算结果:a,b= W.
【解析】 (1)①INPUT语句可以给多个变量赋值,变量之间用“,”隔开;②INPUT语句中只能是变量,而不能是表达式;③PRINT语句中不用赋值号“=”;④PRINT语句可以输出常量、表达式的值.
(2)因为a=3,b=-5,所以a=a+b=3-5=-2,
b=a-b=-2-(-5)=3,
a=(-2+3)/2=,
b=/2=-.
【答案】 (1)D (2),-
牢记计算机语句的各种书写格式并灵活应用是解题的关键.
1.下列正确的语句的个数是( )
①输入语句 INPUT a+2
②赋值语句 x=x-5
③输出语句 PRINT M=2
A.0
B.1
C.2
D.3
解析:选B.①中输入语句只能给变量赋值,不能给表达式a+2赋值,所以①错误;②中x=x-5表示变量x减去5后再将值赋给x,即完成x=x-5后,x比原来的值小5,所以②正确;③中不能输出赋值语句,所以③错误.
算法语句与程序框图[学生用书P12]
给出如图所示程序框图,写出相应的算法语句.
【解】
INPUT x,yx=x/2y=3
yPRINT x,yx=x-yy=y-1PRINT x,yEND
由程序框图写语句时,对顺序结构的程序框图只需利用输入、输出、赋值语句即可完成.其中输入、输出框对应输入、输出语句,执行框对应赋值语句.
2.将下列算法语句改为程序框图,并指明其作用.
算法语句如下:
INPUT x1,x2y1=2∧x1y2=2∧x2K=(y1-y2)/(x1-x2)PRINT
KEND
解:程序框图如下:
作用:求过指数函数y=2x的图象上两点A(x1,y1),B(x2,y2)直线的斜率k.
用三种语句编写伪代码[学生用书P13]
编写一个伪代码,要求输入两个正数a、b的值,输出ab与ba的值.
【解】 法一:伪代码如下:
法二:伪代码如下:
法二中通过引进一个中间变量x实现了变量a和b的值的交换,因此只需用一个赋值语句即可实现算法.在一些较为复杂的算法问题中,经常需要对两个变量的值进行交换,因此应熟练掌握这种方法.
3.已知函数y=x2-2x+3,编写一个伪代码,使每输入一个x的值,都得到相应的y值.
解:伪代码
1.输入语句的作用是实现算法的输入信息功能.
输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式.
2.输出语句可以在计算机的屏幕上输出常量、变量的值和系统信息,也可以输出数值计算的结果.
3.赋值语句的左边只能是变量的名字,而不能是表达式;右边表达式可以是一个常量、变量或含变量的运算式.赋值号的左、右两边位置不能对换.
4.算法语句中的符号变化
在算法语句中变量和常量要参与算术运算、比较大小及逻辑判断,加法、减法运算符号以及大于、小于符号仍然保持不变,但有些算术运算符号发生了变化,详细情况见下表:
数学符号
伪代码符号
×(乘法运算符)
(表示乘法的运算符)
÷(除法运算符)
/(表示除法的运算符)
[](取整运算符,如[5÷3]=1)
\(表示取整的符号,如5\3=1)
ab(指数运算符)
a∧b(表示指数的运算符)
≤(小于等于符号)
<=(表示小于等于的符号)
≥(大于等于符号)
>=(表示大于等于的符号)
≠(不等号)
<>(表示不等于的符号)
|x|(绝对值)
ABS(x)(表示取绝对值的函数)
(求算术平方根)
SQR(x)(表示求算术平方根的函数)
且(逻辑中的“且”运算)
AND(表示逻辑中的“且”运算)
或(逻辑中的“或”运算)
OR(表示逻辑中的“或”运算)
(1)输出语句和输入语句的区别:输出语句具有计算功能,而输入语句不具有计算功能;输出语句中的表达式可以是变量、计算公式,而输入语句不能.
(2)赋值号左、右两边不能对换,A=B和B=A的含义及运行结果是不同的.
(3)赋值语句只能给一个变量赋值,不能接连出现两个或多个“=”.可给一个变量多次赋值,但只保留最后一次所赋的值.
1.下列对赋值语句的描述正确的是( )
①可以给变量提供初值
②可以将表达式的值赋给变量
③可以给一个变量重复赋值
④不能给同一变量重复赋值
A.①②③
B.①②
C.②③④
D.①②④
解析:选A.根据赋值语句的特点判定.
2.下列赋值语句中错误的是( )
A.N=N+1
B.K=K
K
C.C=A(B+D)
D.C=A/B
解析:选C.C中赋值号“=”右边的乘号不能与数学运算中的乘号混淆,不能省略,应为“C=A
(B+D)”.
3.执行算法语句PRINT (3+2)
4的结果是 W.
解析:(3+2)×4=5×4=20.
答案:20
4.“鸡兔同笼”问题是我国古代著名的趣题之一.大约在1500年前,《孙子算经》中就记载了这个有趣的问题.书中这样描述:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔几何?
试设计一个算法,输入鸡、兔的总数和鸡、兔的脚的总数,分别输出鸡、兔的数量.
解:算法步骤如下:
S1:输入鸡和兔的总数量M.
S2:输入鸡和兔的脚的总数量N.
S3:鸡的数量为A=.
S4:兔的数量为B=M-A.
S5:输出A,B,得出结果.
程序框图如图所示,
伪代码如下:
[A 基础达标]
1.下列关于赋值语句的说法错误的是( )
A.赋值语句先计算出赋值号右边的表达式的值
B.赋值语句是把左边变量的值赋给赋值号右边的表达式
C.赋值语句是把右边表达式的值赋给赋值号左边的变量
D.赋值语句中的“=”和数学中的“=”不一样
解析:选B.赋值语句的作用是把右边表达式的值赋给赋值号左边的变量.
2.“x=3
5”“x=x+1”是某一程序中先后相邻的两个语句,那么下列说法正确的是( )
①“x=3
5”的意思是x=3×5=15,此式与算术中的式子是一样的;
②“x=3
5”的意思是将数值15赋给x;
③“x=3
5”可以写成“3
5=x”;
④“x=x+1”语句在运行时“=”右边的x的值是15,执行后左边的x的值是16.
A.①③
B.②④
C.①④
D.②③
解析:选B.“x=3
5”是将数值15赋给x;“x=x+1”是将15+1=16重新赋给x,赋值语句中,赋值号左、右两边不能互换.所以②④正确.故选B.
3.设A=10,B=20,则可以实现A,B的值互换的伪代码是( )
解析:选C.A中伪代码执行后A=B=10,B中伪代码执行后A=B=10,C中伪代码执行后A=20,B=10,D中伪代码执行后A=B=10.
4.下面的伪代码输出的结果是( )
A.27
B.9
C.2+25
D.11
解析:选D.该伪代码的运行过程是
x=6,
y=3,
x=6÷3=2,
y=4×2+1=9,
x+y=2+9=11.
所以输出11.
5.给出下面一个伪代码:
此伪代码运行的结果是( )
A.5,8
B.8,5
C.8,13
D.5,13
解析:选C.此伪代码先将A的值赋给X,再将B的值赋给A,再将X+A的值赋给B,即将原来的A与B的和赋给B,最后A的值是原来B的值8,而B的值是两数之和13.
6.下列语句执行完后,A,B的值分别为 W.
解析:因为A=2,B=A2,即有B=4,
所以A=A+B,即A=2+4=6,
所以B=A+B,即B=6+4=10.
答案:6,10
7.下面伪代码的运行结果为 W.
a=2b=3c=4a=bb=c+2c=b+4d=(a+b+c)/3PRINT “d=”;dEND
解析:a=b=3,b=c+2=4+2=6,c=b+4=6+4=10,
所以d=(a+b+c)=(3+6+10)=.
答案:d=
8.读如下两个伪代码,完成下列题目.
(1)伪代码①的运行结果为 W.
(2)若伪代码①,②运行结果相同,则伪代码②输入的x的值为 W.
解析:赋值语句给变量赋值时,变量的值总是最后一次所赋的值,故伪代码①中x的值最后为6.要使伪代码②中y的值为6,即x2+6=6,故x=0.即输入的x的值为0.
答案:(1)6 (2)0
9.已知函数f(x)=3x-1,求f[f(2)]的值,设计一个伪代码,解决上述问题.
解:伪代码如下:
10.中秋节到了,糕点店的售货员很忙,请设计一个伪代码,帮助售货员算账,已知豆沙馅的月饼每千克25元,蛋黄馅的月饼每千克35元,莲蓉馅的月饼每千克30元,那么依次购买这三种月饼a、b、c千克,应收多少钱?
解:伪代码如下:
[B 能力提升]
11.下面伪代码运行的结果是( )
A.1,2,-1
B.1,2,1
C.1,-2,-1
D.1,-2,1
解析:选C.第三步c=1-2=-1,
第四步b=1+(-1)-2=-2.
所以结束时,a=1,b=-2,c=-1.
12.下面一段伪代码执行后的结果是 W.
解析:执行第2句时A=2×2=4,
执行第3句时A=4+6=10.
答案:10
13.把下列伪代码用程序框图表示出来.
解:程序框图如下:
14.(选做题)已知一个圆柱的底面半径和高,试编写一个伪代码,求该圆柱的表面积和体积.
解:设圆柱的底面半径为R,高为h,伪代码如下:
INPUT “半径=”;R
INPUT “高=”;h
S=3.14
R
R
2+2
3.14
R
h
V=3.14
R
R
h
PRINT “表面积=”;S
PRINT “体积=”;V
END
PAGE
1(共25张PPT)
本部分内容讲解结束
按ESC键退出全屏播放
A
A=10
A=10
B=20
B=20
B
B=A
C=A
A=B
B=C
A=10
A=10
B=20
B=20
C=A
CC=A
D=B
A-B
B=C
B=C
A-B
INPUT“a=”;a
INPUT“b=”;b
INPUT“c=”;c
y=a关25十b关35十c关30
PRINT“应收糕点钱”;y
END(共44张PPT)
11.3.2 条件语句
第11章 算法初步
第11章 算法初步
语句体A
语句体A
语句体B
条件
语句体A
END
IF
条件
语句体A
语句体B
×
√
√
本部分内容讲解结束
按ESC键退出全屏播放
A
预习案,自生学习
研读·思考·尝试
探究案·讲练叵动
解惑·探究·突破
开始
输入x
y=in
a
y<0
否
是
y==y
输出y
结束)
INPUT“x=”;x
IF
=0
THEN
y=x2-1
ELSE
y=2兴x2-5
END
F
PRINT“y=”;y
END
INPUT
IF
x<=3
500
THEN
ELSE
IF
X<=5
000
THEN
y=0.03“x-105
ELSE
IF
x<=8
000
THEN
v=0.1#x-455
ELSE
IF
x<=10
000
THEN
0.2+x-1255
ELSE
PRINT“输入有误”
END
IF
END
IF
END
IF
END
IF
PRINT
END
INPUT“x
IF
x0
THEN
ELSE
IF
x=0
THEN
y
ELSE
END
IF
END
IF
PRINT“y=";y
END11.3.2 条件语句
1.了解条件语句的意义. 2.掌握条件语句的格式. 3.能用条件语句编写简单的程序.
1.算法逻辑结构中的条件结构一般由算法语句中的条件语句来实现.
2.条件语句的格式、功能及与条件结构的对应关系
格式一
格式二
条件语句
IF 条件 THEN 语句体A END
IF
IF 条件 THEN 语句体A ELSE 语句体B END
IF
语句功能
首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体A,否则执行END
IF之后的语句
首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体A,否则(ELSE)执行语句体B
对应条件结构框图
1.判断正误.(对的打“√”,错的打“×”)
(1)条件语句中的“语句体”只含有一条语句.( )
(2)在解决分类处理的问题时需要用条件语句.( )
(3)条件语句必须以IF开始,以END
IF结束.( )
答案:(1)× (2)√ (3)√
2.求下列函数的函数值的算法中需要用到条件语句的函数为( )
A.f(x)=x2-1
B.f(x)=x3-1
C.f(x)=
D.f(x)=2x
解析:选C.A、B、D只需要用顺序结构就能描述算法.C需要对自变量进行判断,要用条件语句,故选C.
IF—THEN语句的应用[学生用书P15]
下列是求函数y=|ln
x|(x>0)的值的程序框图,将其用条件语句改写.(其中y=ln
x用y=LOG(x)表示)
程序框图如图:
【解】 伪代码如下:
INPUT x
y=LOG(x)
IF y<0 THEN
y=-y
END
IF
PRINT y
END
注意所用伪代码的书写格式.
1.阅读下面的伪代码:
INPUT“a=”;a
IF a<=3 THEN
PRINT 3
END IF
IF a<=4 THEN
PRINT 4
END IF
IF a<=5 THEN
PRINT 5
END IF
IF a<=6 THEN
PRINT 6
END IF
END
如果输入a=3,则伪代码运行的结果是( )
A.3
B.3 4
C.3 4 5
D.3 4 5 6
解析:选D.本题主要考查了条件语句的叠加,伪代码执行条件语句的叠加的过程中对于所有的条件都要进行判断,依次验证每一个条件,直到结束.在本题中共出现四次判断条件,每一条件都成立,故输出结果为3 4 5 6.
2.根据下面的伪代码,画出程序框图.
INPUT x
IF
x>0
THEN
PRINT
x
ELSE
PRINT
-x
END
IF
END
解:程序框图:
IF—THEN—ELSE语句的应用[学生用书P16]
已知函数f(x)=编写一个伪代码,使输入的每一个x值,都得到相应的函数值.
【解】 用变量x,y分别表示自变量和函数值.步骤如下:
S1:输入x值;
S2:判断x的范围.若x≥0,则用解析式y=x2-1求函数值;否则,用y=2x2-5求函数值;
S3:输出y值.
程序框图如图所示.
伪代码如下:
对于分段函数的求值问题,由于计算之前,需要对自变量进行判断,因此需要用到条件结构,并且本例还是一个两个分支的条件结构,所以可运用条件语句的“IF-THEN-ELSE”格式来表示算法.
3.给出一个伪代码如下:
说出上面伪代码的功能,并求f(-1)+f(2)的值.
解:伪代码的功能:
已知函数f(x)=
输入自变量x的值,
求对应的函数值.
由函数解析式可得
f(-1)=4×(-1)=-4,
f(2)=22=4.
所以f(-1)+f(2)=0.
条件语句的嵌套[学生用书P16]
“依法纳税是每个公民应尽的义务”,在开始执行新的纳税标准时,规定个人所得税税率表(工资、薪金所得适用)如下:
级数
全月应纳税所得额
税率%
1
不超过1
500元部分
3
2
超过1
500元至4
500元部分
10
3
超过4
500元至9
000元部分
20
…
…
…
9
超过80
000元部分
45
上表中“全月应纳税所得额”是从月工资、薪金收入中减去3
500元后的余额,例如某人月工资、薪金收入5
000元,减去3
500元后,应纳税所得额就是1
500元,应缴纳个人所得税45元.在此规定下,编写一个伪代码,输入某人月工资、薪金收入(不超过10
000元),输出这个人应缴纳的个人所得税.
【解】 算法分析:
用x(元)表示月工资、薪金收入,用y(元)表示应缴纳的个人所得税,y与x的函数关系式为
y=
伪代码:
(1)在编写条件语句的嵌套中的“条件”时,要注意IF和END
IF的配对,常常利用文字的缩进来表示嵌套的层次,以便于程序的阅读和理解.
(2)理解条件语句的嵌套时,要分清内层条件语句与外层条件语句,内层的条件结构是外层条件结构的一个分支.
4.已知分段函数y=编写一个伪代码并画出程序框图,输入x的值,输出其相应的y值.
解:用程序框图表示为:
伪代码如下:
1.条件语句使程序框图中的条件结构能让计算机执行其中IF后的“条件”表示判断的条件,放在判断框中,语句体1表示满足条件时执行的操作内容,放在判断框中“是”后的执行框中,语句体2表示不满足条件时执行的操作内容,放在判断框中“否”后的执行框中.
2.若程序只对条件满足时作处理,不用处理条件不满足时的情况,则可以省略ELSE分支.
3.当判断条件多于一个时,若重复应用条件语句,书写程序繁琐,可利用条件语句的嵌套写.
(1)在编写条件语句的嵌套中的“条件”时,要注意IF和END
IF的配对,常常利用文字的缩进来表示嵌套的层次,以便于程序的阅读和理解.
(2)条件语句是一个语句,IF,THEN,ELSE,END
IF都是语句的一部分.整个程序必须以END语句结束.
1.在解决下面问题的伪代码中必须用条件语句才能实现的个数是( )
(1)已知三角形三边长,求三角形的面积;
(2)求方程ax+b=0(a,b为常数)的根;
(3)求三个实数a,b,c中的最大值;
(4)求1+2+3+…+100的值.
A.4
B.3
C.2
D.1
解析:选C.语句(1)使用顺序结构就可以完成;语句(2)中求方程的根,需根据a=0和a≠0两种情况分类,所以要用到条件语句;语句(3)要对a,b,c三个数的大小进行判断,所以一定要用到条件语句;语句(4)实现时要用到循环结构.
2.下列对条件语句的描述正确的是( )
A.ELSE后面的语句不可以是条件语句
B.两个条件语句可以共用一个END
IF语句
C.条件语句可以没有ELSE后的语句
D.条件语句中IF—THEN和ELSE后的语句必须都有
解析:选C.条件语句有两种格式:分别是IF—THEN格式和IF—THEN—ELSE格式.对于一个分支的条件语句可以没有ELSE后的语句.
3.根据如图所示的伪代码,当输入a,b分别为2,3时,最后输出的m的值为 W.
解析:因为a=2,b=3,所以a答案:3
4.设计一个伪代码,任意输入四个数a,b,c,d,将它们按照从小到大的顺序排列后输出.
解:伪代码如下:
INPUT “a,b,c,d=”;a,b,c,d
IF
a>b THEN
t=a
a=b
b=t
END
IF
IF
c>d THEN
t=c
c=d
d=t
END
IF
IF
a>c THEN
t=a
a=c
c=t
END
IF
IF
b>c THEN
t=b
b=c
c=t
END
IF
IF
b>d THEN
t=b
b=d
d=t
END
IF
IF
c>d THEN
t=c
c=d
d=t
END
IF
PRINT
a,b,c,d
END
[A 基础达标]
1.阅读下面伪代码:
如果输入x=-2,则输出结果为( )
A.2
B.-12
C.10
D.-4
解析:选D.输入x=-2,则x<0,执行“y=7
x/2+3”这一语句,即有y=-4.
2.阅读下列伪代码:
如果输入a=5,则该伪代码运行结果为( )
A.1
B.10
C.25
D.26
解析:选D.a=5时,条件a>5不成立,故执行ELSE后的语句b=a2+1=52+1=26.
3.已知伪代码如下:
根据伪代码提示输入a=4,b=2,c=-5,则伪代码运行结果是( )
A.max=a
B.max=b
C.max=c
D.max=4
解析:选D.我们读一个伪代码应按照从上到下逐个语句进行阅读,本题首先是输入a,b,c的值,然后把a的值放到max中,接下来是两个条件语句,首先判断b是否大于max,若是,则把b的值放到max中,否则,max的值不变;然后再判断c是否大于max,若是,则把c的值放到max中,否则max不变,最后输出max的值.由此可知本题是用来输出三个数中的最大值的一个算法程序.
4.在如图所示的伪代码中,如果输入x=,则输出的y值为( )
A.0
B.1
C.3
D.
解析:选B.先判断输入的x的取值范围,再执行相应操作.由于>0,故输出y=×-5=1.
5.运行伪代码:
在两次运行中分别输入8,4和2,4,则两次运行伪代码的输出结果分别为( )
A.8,2
B.8,4
C.4,2
D.4,4
解析:选C.对A、B的情况进行区分,当输入8,4的时候,A>B,所以C==4;当输入2,4时,A>B不成立,所以选择执行C==2.
6.在下面这个伪代码中,
若输入a=35,则输出的b= W.
解析:a=35>10,故执行
b=a\10+a MOD 10,
即b=35\10+35 MOD 10=3+5=8.
答案:8
7.下面给出的是用条件语句编写的伪代码,该伪代码的功能是求函数 的函数值.
解析:该伪代码的主要功能是对分段函数f(x)求值,当x≤3时,y=2x;当x>3时,y=x2-1.
答案:f(x)=
8.读伪代码完成下列题目:
(1)若执行伪代码时,没有执行语句y=x+1,则输入的x的范围是 ;
(2)若输出结果是5,则执行的赋值语句是 ,输入的x的值是 W.
解析:依题意,题目所给的伪代码是求函数y=的函数值.因此,当x≤1时,没有执行语句y=x+1;又当x>1时,x+1>2,当x≤1时,2x+1≤3,从而输出结果是5时,执行的语句是y=x+1,故输入的x的值为x=5-1=4.
答案:(1)x≤1 (2)y=x+1 4
9.给出如下伪代码.(其中x满足:0伪代码:
(1)该伪代码用函数关系式怎样表达;
(2)画出这个伪代码的程序框图.
解:(1)函数关系式为
y=.
(2)程序框图:
10.儿童乘坐火车时,若身高不超过1.2
m,则无需购票;若身高超过1.2
m但不超过1.5
m,可买半票;若超过1.5
m,应买全票,试写出一个购票的伪代码.
解:用x表示儿童身高,则购票的伪代码如下:
[B 能力提升]
11.已知伪代码如下,若输入的x值为5,则运行结果是( )
A.y=5
B.y=-5
C.y=1
D.y=-1
解析:选C.因为x=5>0,所以y=1,所以运行结果为1.
12.下面是判断所输入的正整数的奇偶性的伪代码
将其补充完整,则横线上应填(x
MOD
2的意思是求x除以2的余数) W.
解析:第一个空是“x是奇数”的条件,应填“m=1”;第二个空应填“x为偶数”,并加引号.
答案:m=1 “x为偶数”
13.已知函数f(x)=试编写伪代码,根据输入的x值输出对应的y值.
解:伪代码如下:
14.(选做题)到银行办理个人异地汇款(不超过100万)时,银行要收取一定的手续费.汇款额不超过100元,收取1元手续费;超过100元但不超过5
000元,按汇款额的1%收取;超过5
000元,一律收取50元手续费.试用条件语句描述汇款额为x元时,银行收取的手续费为y元的过程,画出程序框图并写出伪代码.
解:依分析可知程序框图如图所示:
伪代码如下:
PAGE
1(共32张PPT)
本部分内容讲解结束
按ESC键退出全屏播放
A
INPUT
X
IF
XO
THEN
2+3
ELSE
ⅠFx>0THEN
7米x/2
ELSE
END
IF
END
IF
PRINTy
END
ⅠNPUT“x=”;x
IF
XO
AND
X<=4
THEN
2兴x
ELSE
8
THEN
ELSE
y=24-2兴x
END
IF
END
IF
PRINT
y
END
INPUT“儿童身高”;x
IF
x<=1.2
THEN
PRINT“免票
ELSE
IF
1.5
THEN
PRINT“全票”
ELSE
PRINT“半票”
END
F
END
IF
END
INPUT
X
IF
0
THEN
y=2
x2-1
ELSE
IF
x=0
THEN
y=2米x+1
ELSE
2兴x^2+4
END
IF
END
IF
PRINTy
END
开始
输入x的值
否
是
0否
是
x≤5000
y=50
y=0.01x
输出y
结束
INPUT“汇款金额为:”;x
IF
0
AND
X<=100
THEN
ELSE
IF
X=5
000
THEN
y=0.01兴x
ELSE
y=50
END
IF
END
IF
PRINT“手续费为:”;y
END(共40张PPT)
11.3.3 循环语句
第11章 算法初步
第11章 算法初步
循环结构
LOOP
UNTIL
WEND
DO
UNTIL
执行循环体
执行循环体
条件符合
UNTIL
条件符合
条件仍符合
条件不符合
WEND
本部分内容讲解结束
按ESC键退出全屏播放
A
预习案,自生学习
研读·思考·尝试
探究案·讲练叵动
解惑·探究·突破
开始
S=0
=1
输入G
s=s+G
Ⅰ=I+1
否
>20
是
A=S/20
输出A
结束
开始
元=2
m=1
i=i+2
m=m
Xl
i≤100
否
输出m
结束
WHILE
i<=100
m=m兴1
i=i+2
WEND
PRINT
m
END
〔始
i=1
S=0
否
i=i+1
是
②2
Sss+p
/输出
结束
WHILE
j兴j100
j=j+1
WEND
j=j—1
PRINT“j=”;
END11.3.3 循环语句
1.正确理解循环语句的概念,并掌握其结构. 2.会应用两种循环语句编写程序.
3.会根据给出的用循环语句编写的程序判断算法功能及输出结果.
1.循环语句用来实现算法中的循环结构,主要有两种类型:直到型语句和当型语句.
2.循环语句的格式、功能及程序框图的对应关系
名称
直到型
当型
格式
DO循环体LOOP
UNTIL条件
WHILE 条件循环体WEND
功能
先执行一次DO和UNTIL之间的循环体,再判断UNTIL后的条件是否符合,如果不符合,继续执行循环体,然后再检查上述条件,如果仍不符合,再次执行循环体,直到条件符合时为止.这时不再执行循环体,跳出循环体执行UNTIL语句后面的语句
先判断条件的真假,如果条件符合,则执行WHILE和WEND之间的循环体,然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止,这时不再执行循环体,跳出循环体,执行WEND后面的语句
对应程序框图
1.判断正误.(对的打“√”,错的打“×”)
(1)算法中的循环结构只能由WHILE语句来实现.( )
(2)一般程序设计语言中有当型和直到型两种循环语句结构.( )
(3)算法中的循环结构由循环语句来实现.( )
解析:循环结构包含两种基本类型:WHILE语句和UNTIL语句,故(1)×;(2)(3)都对.
答案:(1)× (2)√ (3)√
2.以下伪代码:( )
A.循环1次
B.循环2次
C.循环4次
D.循环10次
解析:选B.第一次执行循环体时,x=(-2)×(-2)=4,不符合条件,继续执行循环体,此时x=4×4=16,符合条件,结束循环,共循环2次.
3.给定伪代码:
则伪代码运行的结果是 W.
解析:当I=7时,s>20,终止循环,此时输出I=7.
答案:7
直到型循环语句(UNTIL语句)[学生用书P18]
某问题的算法列举如下:
S1:S=0;(使S=0)
S2:I=1;(使I=1)
S3:输入G;(输入一个数)
S4:S=S+G;(求S+G,其和仍放在变量S中)
S5:I=I+1;(使I的值增加1)
S6:如果I>20,执行第七步;否则,转第三步;
S7:A=;
S8:输出A.
(1)这个算法的功能是 ;
(2)用UNTIL语句改写此算法;
(3)画出程序框图.
【解】 (1)计算20个数的平均数.
S=0I=1DO INPUT G S=S+G I=I+1LOOP
UNTIL I>20A=S/20PRINT “A=”;AEND
(2)伪代码为:
(3)程序框图如图:
(1)循环次数的控制往往是判断条件,在循环体内要有控制条件的改变,否则会陷入死循环.
(2)控制循环次数的变量要综合考虑初始化时和LOOP
UNTIL后两处,若初始值为1,则循环体中累加,若初始值为循环的次数,则循环体中递减.
1.根据如图所示程序框图,把伪代码中所缺少的语句补充完整.
程序框图: 伪代码:
解析:由程序框图可知利用了直到型循环结构,对应的语句为直到型循环语句,DO后面执行的为循环体,故①②处应分别为S=S+i∧2,i=i+1,直到满足条件i>100为止,所以③处应为i>100.
答案:①S=S+i∧2 ②i=i+1 ③i>100
当型循环语句(WHILE语句)[学生用书P19]
编写伪代码求2×4×6×…×100的值.
【解】 程序框图如图:
伪代码如下:
法一:
法二:
累加、累乘问题一般都要应用循环语句来设计伪代码,应用循环语句时,关键是设计循环条件及循环体.
2.给出的30个数1,2,4,7,11,…,其规律是第1个数是1,第2个数比第1个数大1,第3个数比第二个数大2,第4个数比第3个数大3…依次类推,要求计算这30个数的和,先将如图所给出的程序框图补充完整,再依据程序框图写出伪代码:
(1)把程序框图补充完整:
① ;② ;
(2)写出伪代码.
解:(1)①i≤30 ②P=P+i
(2)伪代码:
i=1P=1S=0WHILE i<=30
S=S+P
P=P+i
i=i+1WENDPRINT SEND
循环语句的综合应用[学生用书P19]
编写伪代码,计算并输出表达式+++…+的值.
【解】 法一:利用UNTIL语句编写伪代码如下:
i=1S=0DO
S=S+1/(i+i+1)
i=i+1LOOP
UNTIL i>19PRINT“表达式的值为:”;SEND
法二:利用WHILE语句编写伪代码如下:
i=1S=0WHILE i<=19
S=S+1/(i+i+1)
i=i+1WENDPRINT“表达式的值为:”;SEND
(1)当型循环语句和直到型循环语句一般可以相互转换.
(2)可从判断条件在循环体前还是循环体后区分两种格式.
(3)由于退出循环的条件相反,故当型和直到型语句中判断条件也恰好相反(循环体中控制循环的变量变化相同).
1.当型循环是先判断(条件),后执行(循环体),而直到型循环则是先执行(循环体),后判断(条件).
2.当型循环是当条件满足时执行循环体,不满足时结束循环,而直到型循环则是条件不满足时执行循环体,条件满足时结束循环.
3.直到型循环至少执行一次循环体,而当型循环可能一次也不执行循环体.
4.在设计伪代码时,一般说来,这两种语句用哪一种都可以,但在某种限定条件下,有时用WHILE语句较好表达,有时用UNTIL语句较好表达.
(1)当型循环语句中WHILE和WEND成对出现.
(2)直到型循环语句中循环次数的控制往往是判断条件,在循环体内要有控制条件的改变,否则会陷入死循环.
1.下列问题可以设计成循环语句计算的有( )
①求1+3+32+…+39的和;②比较a,b两个数的大小;③对于分段函数,要求输入自变量,输出函数值;④求平方值小于100的最大整数.
A.0个
B.1个
C.2个
D.3个
解析:选C.①和④用到循环语句;②③用不到.故选C.
2.读伪代码:
对甲、乙两伪代码和输出结果判断正确的是( )
A.伪代码不同,结果不同
B.伪代码不同,结果相同
C.伪代码相同,结果不同
D.伪代码相同,结果相同
解析:选B.都是求1+2+3+…+1
000的值.
3.已知如下伪代码
其运行的结果是 W.
解析:此伪代码的功能是求满足j2<100的最大整数j的值.可知j=9.
答案:j=9
4.下面为一个求10个数的平均数的伪代码,则在横线上应填充的语句为 W.
解析:此为直到型循环,在伪代码一开始,即i=1时,开始执行循环体,当i=10时继续执行循环体,题目中求10个数的平均数,所以当i>10时应终止循环.
答案:i>10
5.试编写伪代码,求满足1+3+5+…+n>10
000的最小自然数n.
解:法一:当型循环:
法二:直到型循环:
[A 基础达标]
1.下列对WHILE语句说法不正确的是( )
A.当计算机遇到WHILE语句时,先判断条件的真假,如果条件适合,就执行WHILE和WEND之间的循环体
B.当条件不符合时,计算机不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句
C.WHILE语句结构也叫当型循环
D.当型循环是先执行循环体,再对后面条件进行判断
解析:选D.当型循环是先判断条件真假,再确定是否执行循环体.
2.有以下伪代码,其中描述正确的是( )
A.循环体语句执行10次
B.循环体是无限循环
C.循环体语句一次也不执行
D.循环体语句只执行一次
解析:选C.对于WHILE语句,条件为真则执行循环体,而本题k=8,不满足条件k=0,所以循环体语句一次也不执行.故选C.
3.已知如下伪代码:
则执行完毕后a的值为( )
A.99
B.100
C.101
D.102
解析:选B.a<100,所以a=99时,计算a=a+1=99+1=100.
4.如果下面伪代码执行后输出的结果是132,那么在UNTIL后面的“条件”应为( )
A.i>11
B.i>=11
C.i<=11
D.i<11
解析:选D.因为132=12×11,所以应在i=10时,条件符合,终止循环,故条件应为“i<11”.
5.下面两个伪代码最后输出的“S”分别等于( )
A.都是17
B.都是21
C.21、17
D.14、21
解析:选C.第一个伪代码中,i=7时执行循环体i=i+2,此时i为9,S=2×9+3=21.结束循环.第二个伪代码中,i=7时,S=2×7+3=17.然后,执行i=i+2,此时i=9,结束循环.
6.下列伪代码执行后,输出的结果是 W.
解析:由伪代码可知S=1×11×10×9=990.
答案:990
7.下面伪代码运行后输出的结果为 W.
解析:执行第一次后,S=5,N=4;执行第二次后,S=9,N=3;执行第三次后,S=12,N=2;执行第四次后,S=14,N=1;执行第五次后,S=15,N=0;跳出循环结构,输出N的值,N=0.
答案:0
8.已知有下面的伪代码,如果伪代码执行后输出的结果是360,那么在UNTIL后面的“条件”应为 W.
解析:因为输出的结果是360,即s=1×6×5×4×3,需执行4次,s需乘到3,i<3后结束算法.所以,伪代码中UNTIL后面的“条件”应为i<3(或i<=2).
答案:i<3(或i<=2)
9.高一(4)班共有60名同学参加数学竞赛,现已有这60名同学的竞赛分数,请设计一个将竞赛成绩优秀的同学的平均分输出的伪代码(规定89分以上为优秀).
解:伪代码:
10.已知程序框图如图所示:
(1)写出程序框图所对应的算法语句;
(2)将图中的“直到型循环结构”改为“当型循环结构”,并写出当型循环相对应的算法语句.
解:(1)算法语句如下:
S=0i=2DOS=S+ii=i+2LOOP UNTIL i>1
000PRINT SEND
(2)将图中的“直到型循环结构”改为“当型循环结构”,程序框图如下:
算法语句如下:
S=0i=2WHILE i<=1
000S=S+ii=i+2WENDPRINT SEND
[B 能力提升]
11.下面的伪代码运行后第3个输出的数是( )
i=1x=1DOPRINT xi=i+1x=x+1/2LOOP UNTIL i>5END
A.1
B.
C.2
D.
解析:选C.该伪代码中关键是循环语句,
第一次输出的数是1,
第二次输出的数是x=1+=,
第三次输出的数是x=1++=2.
12.要使下面伪代码能运算出“1+2+…+100”的结果,需将语句“i=i+1”加在 处.
伪代码
S=0i=1①WHILE i<=100 ② S=S+i ③WEND④PRINT SEND
解析:这是当型循环语句,当满足i≤100时,计算S=S+i,同时计数变量要有i=i+1出现.
答案:③
13.如图是计算1+2++3++…+2
012+的值的程序框图.
(1)图中空白的判断框内应填 ,执行框应填 ;
(2)写出与程序框图相对应的伪代码.
解:(1)判断框:i<=2
012或i<2
013
执行框:S=S+i+
(2)伪代码如下:
S=1i=2WHILE i<=2
012 S=S+i+ i=i+1WENDPRINT SEND
14.(选做题)下面是用WHILE型语句设计的一个计算S=12+22+…+202的值的一个伪代码,根据此语句的特点,将其转化为用UNTIL语句书写的伪代码.
当型(WHILE):
i=1S=0WHILE i<=20 S=S+i
i i=i+1WENDPRINT “S=”;SEND
解:直到型(UNTIL):
i=1S=0DO S=S+i
i i=i+1LOOP
UNTIL i>20PRINT “S=”;SEND
PAGE
1(共31张PPT)
本部分内容讲解结束
按ESC键退出全屏播放
A
S=0
WHILE
S<15
S=SIN
N=N—1
WEND
PRINT
N
END
61
DO
LOOP
UNTIL条件
PRINT
S
END
开始)
S=0,=2
元=i+2
s=S+i
i≤1000
是
否
输出
结東
开始
S=1
i=2
i=i+1
是
否
输出S
(结束