版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx

上传人:b****7 文档编号:9268080 上传时间:2023-02-03 格式:DOCX 页数:31 大小:194.62KB
下载 相关 举报
版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx_第1页
第1页 / 共31页
版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx_第2页
第2页 / 共31页
版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx_第3页
第3页 / 共31页
版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx_第4页
第4页 / 共31页
版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx

《版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx》由会员分享,可在线阅读,更多相关《版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx(31页珍藏版)》请在冰豆网上搜索。

版优化方案高一数学人教版必修三学案 第一章 算法初步 12223循环语句.docx

版优化方案高一数学人教版必修三学案第一章算法初步12223循环语句

1.2.2 条件语句

1.2.3 循环语句

1.问题导航

(1)条件语句的格式是怎样的?

(2)程序中的条件语句与程序框图中的条件结构有什么关系?

(3)循环语句可细分为哪两类?

格式分别是怎样的?

它们有什么相同点和不同点?

(4)程序中的循环语句与程序框图中的循环结构有什么关系?

2.例题导读

通过对例5的学习,学会条件语句的基本结构;

通过对例6的学习,学会如何将程序框图转化为程序;

通过对例7的学习,学会如何编写排序的程序;

通过对例8的学习,学会循环语句的基本结构.

1.条件语句的概念

处理条件结构的算法语句,叫做条件语句.

2.条件语句的格式

(1)IF-THEN格式 形式:

(2)IF-THEN-ELSE格式

形式:

3.功能

(1)IF-THEN格式:

首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行ENDIF之后的语句.

(2)IF-THEN-ELSE格式:

首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体1;否则(ELSE)执行语句体2.

4.循环语句的格式、功能及程序框图的对应关系

名称

直到型

当型

格式

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.f(x)=x2-1

B.f(x)=x3-1

C.f(x)=

D.f(x)=2x

解析:

选C.A、B、D只需要用顺序结构就能描述算法.C需要对自变量进行判断,要用条件语句,故选C.

3.当x=3时,下面算法的输出结果是________.

INPUT x

IF x<10 THEN

 y=2*x

ELSE

 y=x∧2

ENDIF

PRINT y

END

解析:

由x=3<10,则执行y=2×3=6.

答案:

6

4.求出下面语句的输出结果.

i=4

S=0

WHILE i<6

 i=i+2

S=S+i∧2

WEND

PRINT S

END

解:

该程序的执行过程是

i=4

S=0

i=4<6成立

i=4+2=6

S=0+62=36

i=6<6不成立

输出S=36.

1.条件语句的嵌套可多于两层,可以表达算法步骤中的多重限制条件.

条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套.

2.解决具体的构造循环语句的算法问题,引入循环变量要尽可能地少,否则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢.另外,也尽可能使得循环嵌套的层数少,否则也浪费计算机的系统资源.

       条件语句的简单应用

已知函数f(x)=

对任意的x,求函数值,请画出程序框图并写出程序语句.

(链接教材P25例5)

[解] 程序框图如图所示:

程序如下:

INPUT “x=”;x

IF x>=0 THEN

 y=x∧2-1

ELSE

 y=2*x∧2-5

ENDIF

PRINT “y=”;y

END

方法归纳

(1)对于分段函数的求值问题,由于计算之前,需要对自变量进行判断,因此需要用到条件结构,并且本例还是一个两个分支的条件结构,所以可运用条件语句的IF—THEN—ELSE—ENDIF格式来表示算法.

(2)条件语句是一个整体,IF THEN ELSE ENDIF都是语句的一部分,且“IF ENDIF”必须成对出现.

1.

(1)输入一个数x,如果它是正数,则输出它;否则不输出.画出解决该问题的程序框图,并写出对应的程序.

解:

程序框图如图所示:

    程序如下:

   

INPUT x

IF x>0 THEN

 PRINT x

ENDIF

END

 

(2)根据以下程序框图写出程序:

解:

程序如下:

INPUT “输入正整数”;n

IF n>0 AND n<=2 THEN

 PRINT “获得一等奖学金”

ENDIF

IF n>2 AND n<=6 THEN

 PRINT “获得二等奖学金”

ENDIF

IF n>6 AND n<=12 THEN

 PRINT “获得三等奖学金”

ENDIF

END

       WHILE语句的应用

设计计算1+2+3+4+…+99的值的一个算法,画出程序框图,并编写程序.

[解] 程序框图如图所示:

程序如下:

i=1

S=0

WHILE i<=99

S=S+i

i=i+1

WEND

PRINT S

END

[互动探究] 如果本例的“加”改为“乘”,框图及程序有哪些变化?

解:

框图中

分别改为

,程序中“S=0”改为“S=1”,“S=S+i”改为“S=S*i”.

方法归纳

累加、累乘问题一般都要应用循环语句来设计算法程序,应用循环语句时,关键是设计循环条件及循环体.本例的循环体为S=S+i,i=i+1.

2.编写一个程序计算1+1×2+1×2×3+…+1×2×3×…×100,并画出程序框图.

解:

程序框图如图所示:

 

程序如下:

i=1

s=0

m=1

WHILE i<=100

m=m*i

s=s+m

i=i+1

WEND

PRINT s

END

       UNTIL语句的应用

编写一个程序计算

+…+

的值,并画出程序框图.

(链接教材P30例8)

[解] 程序框图如图:

程序如下:

s=0

i=1

DO

 s=s+1/(i*(i+1))

 i=i+2

LOOPUNTIL i>2015

PRINT s

END

方法归纳

(1)这是一个累加求和问题,共1008项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.

(2)UNTIL语句是先执行了一次循环体,再进行条件判断.

3.

(1)用UNTIL语句写出求1-

+…+

的程序.

解:

程序如下:

s=0

i=1

DO

 s=s+((-1)∧(i-1))/i

 i=i+1

LOOPUNTIL i>1000

PRINT s

END

(2)根据下列程序,画出相应的程序框图.

s=0

k=1

DO

s=s+1/(k*(k+1))

k=k+1

LOOPUNTIL k>99

PRINT s

END

解:

程序框图如图所示.

       条件语句与循环语句的综合应用

输入100个数,将其中的正数输出,写出计算正数个数的程序.

[解] 程序如下:

i=0

m=0

DO

 INPUT x

 i=i+1

 IF x>0 THEN

PRINT x

m=m+1

 ENDIF

LOOPUNTIL i>=100

PRINT m

END

方法归纳

本例引入了两个变量:

i是计数变量,初值为0,作用是记录输入的实数个数,故循环的条件为i≥100,若改用当型循环,则改为i<100.m也是计数变量,初值为0,作用是记录输入的正数个数.

4.

(1)输入20个实数,统计并输出其中正数、零和负数的个数,写出算法语句.

解:

程序如下:

i=1

num1=0

num2=0

num3=0

WHILE i<=20

 INPUT “请输入实数:

”;x

 IF x>0 THEN

 num1=num1+1

ELSE

IF x=0 THEN

 num2=num2+1

ELSE

 num3=num3+1

ENDIF

 ENDIF

 i=i+1

WEND

PRINT “正数的个数为:

”;num1

PRINT “零的个数为:

”;num2

PRINT “负数的个数为:

”;num3

END

(2)给出某班50名学生的数学测试成绩,60分及以上为及格,要求统计及格人数、及格人数的平均分、全班同学的平均分,画出程序框图,并写出程序.

解:

程序框图如图所示:

 程序如下:

M=0,i=1,S=0,T=0

DO

 INPUT x

 IF x>=60 THEN

S=S+x

M=M+1

 ENDIF

 T=T+x

 i=i+1

LOOPUNTIL i>50

P=S/M

T=T/50

PRINT M,P,T

END

规范解答

条件嵌套型问题的程序编写

(本题满分12分)元旦期间,某商城搞挂历促销活动:

原价每本20元,购买5到9本按9折收费,买10本及其以上按8折收费,请帮商场设计收费的程序.

[解] 设某人所购挂历本数为x,商场应收其y元,则y关于x的函数关系式为:

y=

4分

程序如下:

INPUT “x=”;x

IF x>0 AND x<5 THEN

8分

 y=20*x

ELSE

 IF x<=9 THEN

y=20*0.9*x

 ELSE

y=20*0.8*x

 ENDIF

12分

ENDIF

PRINT y

END

[规范与警示] 

正确写出y关于x的分段函数的关系式是解本题的关键.

注意语言符号的规范.

(1)写程序一定要按要求的符号书写,要与我们平时的手写区分开.

(2)首先,对程序中条件的书写格式要熟练规范,如果要多个条件同时成立,应用“AND”连接,而不能是连续的不等式.其次,对条件语句要理解清楚,实际上第一个IF语句不成立时,已经隐含了“x>=5”这个条件.

(3)要熟悉条件语句的嵌套形式,任何时候,条件语句中的“IF”与“ENDIF”一定成对出现.

1.下列需用循环语句编写程序的是(  )

A.输入x的值,输出y=x2-3x的值

B.y=

输入x的值,输出对应的函数值

C.求x的立方根

D.求1+2+3+…+2015的值

解析:

选D.D项中是求多项数值的和,需用到循环语句.

2.给出以下四个问题,①输入一个数x,输出它的算术平方根;②求函数f(x)=

的函数值;③求周长为6的正方形的面积;④求三个数a,b,c中的最小数.其中不需要用条件语句来描述其算法的有(  )

A.1个B.2个

C.3个D.4个

解析:

选A.①需判断这个数是否为非负数;②是分段函数求值问题;④需判断这三个数的大小.①②④均需用到条件语句,只有③不需要.

3.如果下列程序执行后输出的结果是132,那么在程序UNTIL后面的“条件”应为(  )

i=12

s=1

DO

 s=s*i

 i=i-1

LOOPUNTIL ________

PRINT s

END

A.i>11B.i>=11

C.i<=11D.i<11

解析:

选D.当i=12时,s=1×12=12;当i=11时,s=11×12=132.故应填i<11.

4.下列语句

i=0

IF i<100 THEN

i=i+3

ENDIF

END

执行完毕后i的值是________.

解析:

i的初始值为0,满足条件i<100成立,执行语句i=i+3,有i=0+3=3.

答案:

3

[A.基础达标]

1.下列对条件语句的描述正确的是(  )

A.ELSE后面的语句不可以是条件语句

B.两个条件语句可以共用一个ENDIF语句

C.条件语句可以没有ELSE后的语句

D.条件语句中IF—THEN和ELSE后的语句必须都有

解析:

选C.条件语句有两种格式:

分别是IF—THEN格式和IF—THEN—ELSE格式.对于一个分支的条件语句可以没有ELSE后的语句.

2.下面程序输出的结果为(  )

i=1

DO

 i=i+2

 S=2*i+3

LOOPUNITL i>=8

PRINT S

END

A.17B.19

C.21D.23

解析:

选C.当i=9时,S=2×9+3=21,判断条件9≥8成立,跳出循环,输出S.

3.(2015·临沂高一检测)下列程序的功能是:

判断任意输入的数x是否为正数,若是,输出它的平方值;若不是,输出它的相反数.

INPUT x

IF ________ THEN

 y=-x

ELSE

 y=x*x

ENDIF

PRINT y

END

则填入的条件应该是(  )

A.x>0B.x<0

C.x>=0D.x<=0

解析:

选D.因为条件真则执行y=-x,条件假则执行y=x*x,由程序功能知条件应为x<=0.

4.如下程序的循环次数为(  )

x=0

WHILE x<20

x=x+1

x=x∧2

WEND

PRINT x

END

A.1B.2

C.3D.4

解析:

选C.程序执行如下:

(1)x<20,x=0+1=1,x=12=1;

(2)x<20,x=1+1=2,x=22=4,

(3)x<20,x=4+1=5,x=52=25,此时跳出循环,并输出x.

∴一共进行3次循环,故选C.

5.(2013·高考陕西卷)根据下列算法语句,当输入x为60时,输出y的值为(  )

输入x;

Ifx≤50Then

y=0.5*x

Else

y=25+0.6*(x-50)

EndIf

输出y.

A.25B.30

C.31D.61

解析:

选C.由题意,

得y=

当x=60时,y=25+0.6×(60-50)=31.

∴输出y的值为31.

6.若a=11,下面的程序段输出的结果是________.

INPUT a

IF a<10 THEN

 y=2*(a-1)

ELSE

 y=aMOD10

ENDIF

PRINT y

END

解析:

由于当a=11时,不满足条件a<10,所以执行y=aMOD10,得到的结果是y=1.注意“aMOD10”是a除以10的余数.

答案:

1

7.已知下列程序:

INPUT x

IF x<=-1 THEN

 y=-x-1

ELSE

 IF x>1 THEN

y=-x∧2+1

 ELSE

y=x-1

 ENDIF

ENDIF

PRINT “y=”;y

END

如果输出的是y=0.75,则输入的x是________.

解析:

由程序可知本题为根据输入的x,求函数y=

的函数值.我们可以分段令y=0.75,并验证,可求得x=-1.75.

答案:

-1.75

8.(2015·吉林高一检测)已知有下面的程序,如果程序执行后输出的结果是360,那么在程序UNTIL后面的“条件”应为________.

i=6

s=1

DO

 s=s*i

 i=i-1

LOOPUNTIL 条件

PRINT s

END

解析:

因为输出的结果是360,即s=1×6×5×4×3,需执行4次,s需乘到3,i<3后结束算法.所以,程序中UNTIL后面的“条件”应为i<3(或i<=2).

答案:

i<3(或i<=2)

9.(2015·罗源高一检测)编写一个程序计算12+32+52+…+992,并画出相应的程序框图.

解:

程序如下:

S=0

i=1

DO

 S=S+i∧2

 i=i+2

LOOPUNTIL i>99

PRINT S

END

程序框图如图所示:

10.给出一个算法的程序框图(如图所示).

(1)说明该程序的功能;

(2)请用WHILE型循环语句写出程序.

解:

(1)该程序的功能是求1+

+…+

的值.

(2)程序如下:

S=0

K=1

WHILE K<=99

 S=S+1/K

 K=K+1

WEND

PRINT S

END

[B.能力提升]

1.(2015·衡阳检测)下面程序运行后输出的结果为(  )

a=0

j=1

WHILE j<=5

 a=(a+j)MOD5

 j=j+1

WEND

PRINT a

END

A.50B.5

C.25D.0

解析:

选D.本程序的功能是求a+j被5除所得的余数,从而循环体在执行的过程中a与j的对应值如下表:

a

1

3

1

0

0

j

2

3

4

5

6

2.读程序:

甲:

i=1

S=0

WHILE i<=1000

 S=S+i

 i=i+1

WEND

PRINT S

END

  乙:

i=1000

S=0

DO

 S=S+i

 i=i-1

LOOPUNTIL i<1

PRINT S

END

对甲、乙程序和输出结果判断正确的是(  )

A.程序不同,结果不同

B.程序不同,结果相同

C.程序相同,结果不同

D.程序相同,结果相同

解析:

选B.执行甲、乙程序后,可知都是计算1+2+3+…+1000的值.

3.(2015·滨州质检)读程序,完成下列题目:

程序如图:

INPUT x

IF x>=1 THEN

y=x+1

ELSE

 y=2*x+1

ENDIF

PRINT y

END

(1)若执行程序时,没有执行语句y=x+1,则输入的x的范围是________;

(2)若执行结果为3,则执行的赋值语句是________,输入的x的值是________.

解析:

(1)不执行y=x+1语句,

说明不满足条件x≥1,故有x<1.

(2)当x<1时,y<2×1+1=3,

只有x+1=3,x=2.

答案:

(1)x<1 

(2)y=x+1 2

4.下面是一个用于计算

+…+

的程序,则①处应填的语句是________,②处应填的语句是________.

s=0

i=1

WHILE i<=20

①__

②__

WEND

PRINT “s=”;s

END

解析:

累加求和需用赋值语句“s=s+1/(i*(i+1))”,控制执行循环条件需要用赋值语句“i=i+1”.

答案:

s=s+1/(i*(i+1)) i=i+1

5.儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m但不超过1.4m,可买半票;若超过1.4m,应买全票.试写出一个购票算法程序.

解:

程序如下:

INPUT “身高h(h>0)”;h

IF h<=1.1 THEN

 PRINT “免费乘车”

ELSE

 IF h<=1.4 THEN

PRINT “半票乘车”

 ELSE

PRINT “全票乘车”

 ENDIF

ENDIF

END

6.(选做题)一个小朋友在一次玩皮球时,偶然发现一个现象:

球从某高度落下后,每次都反弹回原高度的

,再落下,再反弹回上次高度的

,如此反复.假如球从100cm处落下,那么第10次下落的高度是多少?

在第10次落地时共经过多少路程?

试用程序语言表示其算法.

解:

程序如下:

s=0

h=100

s=s+h

i=2

WHILE i<=10

h=h/3

s=s+2*h

i=i+1

WEND

PRINT “第10次下落的高度为”;h

PRINT “第10次落地时共经过的路程为”;s

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1