章末检测试卷(一)
(时间:120分钟 满分:150分)
一、选择题(本大题共12小题,每小题5分,共60分)
1.下面对算法的描述正确的一项是( )
A.算法只能用自然语言来描述
B.算法只能用图形语言来表示
C.同一问题可以有不同的算法
D.同一问题的算法不同,结果必然不同
答案 C
解析 算法可以用自然语言、图形语言和程序语言来描述.同一个问题可以有不同的算法,但算法的结果相同.
2.执行如图所示的框图,输入N=5,则输出S的值为( )
A. B. C. D.
答案 D
解析 第一次循环,S=0+=,k=2;第二次循环,S=+=,k=3;第三次循环,S=+=,k=4;第四次循环,S=+=,k=5;第五次循环,S=+=,此时k=5不满足判断框内的条件,跳出循环,输出S=,故选D.
3.下面一段程序执行后的结果是( )
a=2;
a=a*2;
a=a+2;
print a;
A.6 B.4 C.8 D.10
答案 A
解析 由程序知a=2,2×2=4,4+2=6,故最后输出a的值为6,故选A.
4.如果以下程序运行后输出的结果是132,那么在程序中while后面的条件表达式应为( )
S=1;
i=12;
while 条件表达式
S=S*i;
i=i-1;
end
S
A.i>11 B.i>=11
C.i<=11 D.i<11
答案 B
解析 该程序中使用了while循环语句,当while后的条件表达式为真时执行循环体,为假时结束循环.由于输出的结果为132,所以执行了两次循环体,因此条件表达式为i>=11.故选B.
5.执行如图所示的程序框图,当输入的值为3时,输出的结果是( )
A.3 B.8 C.10 D.12
答案 B
解析 因为3<5,执行y=x2-1,所以输出结果为8.
故选B.
6.若如图所示的程序框图的功能是计算1××××的结果,则在空白的执行框中应该填入( )
A.T=T×(i+1) B.T=T×i
C.T=T× D.T=T×
答案 C
解析 程序框图的功能是计算1××××的结果,依次验证选项可得C正确.
7.用更相减损之术求得420和84的最大公约数为( )
A.84 B.12
C.168 D.252
答案 A
解析 (420,84)→(336,84)→(252,84)→(168,84)→(84,84).
8.执行下面的程序框图,如果输出的是a=341,那么判断框中应填入的条件是( )
A.k<4 B.k<5
C.k<6 D.k<7
答案 C
解析 a=1,k=2;a=5,k=3;a=21,k=4;a=85,k=5;
a=341,k=6,而此时应输出a的值,故判断框中的条件应为k<6.
9.执行如图所示的程序框图,若输出的k=5,则输入的整数p的最大值为( )
A.7 B.15 C.31 D.63
答案 B
解析 由程序框图可知:①S=0,k=1;②S=1,k=2;③S=3,k=3;④S=7,k=4;⑤S=15,k=5,输出k,此时S=15≥p,则p的最大值为15,故选B.
10.用秦九韶算法求一元n次多项式f(x)=anxn+an-1×xn-1+…+a1x+a0当x=x0时的值时,一个反复执行的步骤是( )
A.
B.
C.
D.
答案 B
解析 由秦九韶算法可知,若v0=an,则vk=vk-1x+an-k,故选B.
11.某程序框图如图所示,若该程序运行后输出的值是,则( )
A.a=4 B.a=5 C.a=6 D.a=7
答案 A
解析 此程序框图的作用是计算
S=1+++…+的值,
由已知得S=,即S=1+1-+-+…+-=2-=,
解得a=4.
12.执行如图所示的程序框图,则输出的n的值是( )
A.29 B.31 C.61 D.63
答案 D
解析 开始:p=5,n=1;p=9,n=3;p=15,n=7;p=23,n=15;p=31,n=31;p=31,n=63,此时log3163>1,结束循环,输出n=63.
二、填空题(本大题共4小题,每小题5分,共20分)
13.若输入8,则下面程序执行后输出的结果是________.
t=input(“t=”);
if t<=4
c=0.2;
else
c=0.2+0.1*(t-3);
end
c
答案 0.7
解析 这是一个用条件语句编写的程序,由于输入8时,
t≤4不成立,故应有c=0.2+0.1×(8-3)=0.7.
14.如图所示的程序框图表示的算法的功能是________.
答案 计算并输出使1×3×5×7×…×I≤10 000成立的最大正整数I
解析 此算法中,S是累乘变量,I是累加变量,这是循环结构,当S>10 000时停止循环,输出的I的值是使1×3×5×…×I≤10 000成立的最大正整数.
15.执行如图所示的程序框图,则输出结果S=________.
答案 1 007
解析 根据程序框图知,S=(-1+2)+(-3+4)+…+(-2 013+2 014)=1 007,故输出的S的值为1 007.
16.已知五次多项式f(x)=4x5+3x4+2x3-x2-x-,用秦九韶算法得f(-2)=________.
答案 -
解析 ∵f(x)=((((4x+3)x+2)x-1)x-1)x-,
∴f(-2)=((((4×(-2)+3)×(-2)+2)×(-2)-1)×(-2)-1)×(-2)-=-.
三、解答题(本大题共6小题,共70分)
17.(10分)用更相减损之术求282与470的最大公约数.
解 470与282分别除以2得235和141.
∴235-141=94,141-94=47,94-47=47,
∴470与282的最大公约数为47×2=94.
18.(12分)某次数学考试中,其中某一小组的成绩为
55 89 69 73 81 56 90 74 82
请设计一个算法,用自然语言描述,从这些成绩中搜索出小于75的成绩,并画出程序框图.
解 S1 将第一个数与75比较,如果此数小于75,则输出此数;
S2 如果还有其他数,重复S1;
S3 一直到没有可输入的数为止.
程序框图如图所示.
19.(12分)利用秦九韶算法求多项式f(x)=5x4+2x3+3.5x2+2.6x+1.7当x=5时的值.
解 v0=5,
v1=5×5+2=27,
v2=27×5+3.5=138.5,
v3=138.5×5+2.6=695.1,
v4=695.1×5+1.7=3 477.2,
∴f(5)=3 477.2.
20.(12分)为了节约用水,学校改革澡堂收费制度,开始实行计时收费,30 min以内每分钟收费0.1元,30 min以上超过部分每分钟收费0.2元,编写程序并画出程序框图,要求输入洗澡时间,输出洗澡费用.
解 用y(单位:元)表示洗澡费用,x(单位:min)表示洗澡时间,则y=
程序框图如图所示.
程序如下:
x=input(“x=”);
if x<=30
y=0.1*x;
else
y=3+0.2*(x-30);
end
print(%io(2),y);
21.(12分)已知函数f(x)=对每输入的一个x值,都得到相应的函数值.画出程序框图并写出程序.
解 程序框图:
程序:
x=input(“x=”);
if x>=0
y=x^2-1;
else
y=2*x^2-5
end
print(%io(2),y);
22.(12分)“角谷猜想”是由日本学者角谷静夫首先提出的,所以称为“角谷猜想”.猜想的内容是:对于任意一个大于1的整数n,如果n为偶数就除以2,如果n是奇数,就将其乘3再加1,然后将得到的结果再进行以上处理,则最后结果总是1.试设计一个算法的程序框图,对任意输入的整数n(n≥2)进行检验,要求输出每一步的结果,直到结果为1时结束.
解 程序框图如图:
1.1 算法与程序框图
1.1.1 算法的概念
学习目标 1.了解算法的含义.2.了解算法的思想.3.会用自然语言描述一些具体问题的算法.
知识点一 算法的概念
思考1 有一碗酱油,一碗醋和一个空碗.现要把两碗盛的物品交换过来,试用自然语言表述你的操作办法.
答案 先把醋倒入空碗,再把酱油倒入原来盛醋的碗,最后把倒入空碗中的醋倒入原来盛酱油的碗,就完成了交换.
思考2 某笑话有这样一个问题:把大象装进冰箱总共分几步?答案是分三步.第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上.这是一个算法吗?
答案 是.
梳理 算法概念
12世纪的算法
是指用阿拉伯数字进行算术运算的过程
数学中的算法
通常是指按照一定规则解决某一类问题的明确和有限的步骤
现代算法
通常可以编成计算机程序,让计算机执行并解决问题
知识点二 算法的特征
思考 算法与一般意义上具体问题的解法的区别与联系是什么?
答案 (1)它们之间是一般与特殊的关系,也是抽象与具体的关系.
(2)要设计出解决一类问题的算法,可以借助于此类问题中的某一个问题的解决过程和思路进行设计,而此类问题中的任何一个具体问题都可以利用这类问题的一般算法来解决.
梳理 算法的五个特征
(1)有限性:一个算法的步骤是有限的,它应在有限步操作之后停止.
(2)确定性:算法中的每一步应该是确定的,并且能有效地执行且得到确定的结果,而不是模棱两可的.
(3)逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有完成前一步,才能进行下一步,而且每一步都是正确无误的,从而组成具有很强逻辑性的步骤序列.
(4)普遍性:一个确定的算法,应该能够解决一类问题.
(5)不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同的算法.
特别提醒:判断一个问题是不是算法,关键是明确算法的含义及算法的特征.
知识点三 算法的设计
思考 自然语言是唯一描述算法的语言吗?
答案 不是.描述算法可以有不同的方式,常用的有自然语言、框图(流程图)、程序设计语言等.
梳理 (1)设计算法的目的
设计算法的目的实际上是寻求一类问题的解决方法,它可以通过计算机来完成.设计算法的关键是把过程分解成若干个明确的步骤,然后用计算机能够接受的“语言”准确地描述出来,从而达到让计算机执行的目的.
(2)设计算法的要求
①写出的算法必须能解决一类问题.
②要使算法尽量简单、步骤尽量少.
③要保证算法步骤有效,且计算机能够执行.
1.算法是解决一个问题的方法.( × )
2.一个算法可以产生不确定的结果.( × )
3.算法的步骤必须是明确的、有限的.( √ )
题型一 算法概念的理解
例1 下列关于算法的说法,正确的个数有( )
①求解某一类问题的算法是唯一的;
②算法必须在有限步操作之后停止;
③算法的每一步操作必须是明确的,不能有歧义或模糊;
④算法执行后一定产生确定的结果.
A.1 B.2 C.3 D.4
答案 C
解析 由于算法具有有限性、确定性等特点,因而②③④正确,而解决某类问题的算法不一定唯一,从而①错.
反思与感悟 算法实际上是解决问题的一种程序性方法,它通常用来解决某一个或某一类问题,在用算法解决问题时,体现了特殊与一般的数学思想.
跟踪训练1 下列描述不能看作算法的是( )
A.做米饭需要刷锅,淘米,添水,加热这些步骤
B.洗衣机的使用说明书
C.解方程2x2+x-1=0
D.利用公式S=πr2,计算半径为4的圆的面积,就是计算π×42
答案 C
解析 A,B,D都描述了解决问题的过程,可以看作算法,而C只描述了一个事实,没说明怎么解决问题,不是算法.
题型二 算法的阅读理解
例2 下面算法要解决的问题是_______________________________________________.
S1 输入三个数,并分别用a,b,c表示.
S2 比较a与b的大小,如果aS3 比较a与c的大小,如果aS4 比较b与c的大小,如果bS5 输出a,b,c.
答案 输入三个数a,b,c,并按从大到小的顺序输出
解析 第一步是给a,b,c赋值.
第二步运行后a>b.
第三步运行后a>c.
第四步运行后b>c,所以a>b>c.
第五步运行后,显示a,b,c的值,且从大到小排列.
反思与感悟 一个算法的作用往往并不显而易见,这需要我们结合具体数值去执行一下才知道.
跟踪训练2 下面给出了一个问题的算法:
S1 输入a.
S2 若a≥4,则执行第三步,否则执行第四步.
S3 输出2a-1.
S4 输出a2-2a+3.
这个算法解决的问题是________________________________________________________.
答案 求函数f(x)=当x=a时的函数值f(a)
题型三 算法的设计与应用
例3 有一个底面半径为3,母线为5的圆锥,写出求该圆锥体积的算法.
解 如图,先给r,l赋值,计算h,再根据圆锥体积公式V=πr2h计算V,然后输出结果.
S1 令r=3,l=5.
S2 计算h=.
S3 计算V=πr2h.
S4 输出运算结果.
反思与感悟 利用公式解决问题时,必须先求出公式中的各个量,在设计算法时,应优先考虑未知量的求法.
跟踪训练3 已知一个等边三角形的周长为a,求这个三角形的面积.设计一个算法解决这个问题.
解 S1 输入a的值.
S2 计算l=的值.
S3 计算S=×l2的值.
S4 输出S的值.
例4 已知函数f(x)=设计一个算法求函数的任一函数值.
解 S1 输入x=a.
S2 若a≥2,则执行第三步;若a<2,则执行第四步.
S3 输出f(a)=a2-a+1.
S4 输出f(a)=a+1.
反思与感悟 首先结合函数的表达式的特征,然后选择恰当的算法语言进行描述.
跟踪训练4 已知函数f(x)=|x-2|+1, 设计一个算法求函数的任一函数值.
解 S1 输入x=a.
S2 若a<2,则执行第三步,否则执行第四步.
S3 输出f(a)=3-a.
S4 输出f(a)=a-1.
例5 所谓正整数p为素数是指:p的所有约数只有1和p.例如,35不是素数,因为35的约数除了1,35外,还有5与7;29是素数,因为29的约数只有1和29.试设计一个能够判断一个任意正整数n(n>1)是否为素数的算法.
解 算法如下:
S1 给出任意一个正整数n(n>1).
S2 若n=2,则输出“2是素数”,判断结束.
S3 令m=1.
S4 m=m+1.
S5 如果m≥n,则输出“n是素数”,判断结束.
S6 判断m能否整除n,
①如果能整除,则输出“n不是素数”,判断结束;
②如果不能整除,则转第四步.
反思与感悟 设计一个具体问题的算法,通常按以下步骤:
(1)认真分析问题,找出解决该问题的一般数学方法.
(2)借助有关变量或参数对算法加以表述.
(3)将解决问题的过程划分为若干步骤.
(4)用简练的语言将这个步骤表示出来.
跟踪训练5 判断一个大于2的整数是否为质数的算法步骤如何设计?
解 S1 给定大于2的整数n.
S2 令i=2.
S3 用n除以i,得到余数r.
S4 判断“r=0”是否成立.若成立,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.
S5 判断“i>(n-1)”是否成立.若成立,则n是质数,结束算法;否则,返回第三步.
1.下列关于算法的说法正确的是( )
A.一个算法的步骤是可逆的
B.描述算法可以有不同的方式
C.算法可以看成是按照要求设计好的、有限的、确切的计算序列,并且这样的步骤或序列只能解决当前问题
D.算法只能用一种方式显示
答案 B
解析 由算法的定义知A,C,D错.
2.计算下列各式中S的值,能设计算法求解的是( )
①S=+++…+;
②S=+++…++…;
③S=+++…+(n≥1,n∈N+).
A.①② B.①③
C.②③ D.①②③
答案 B
解析 由算法的有限性知②不能设计算法求解,①③都能通过有限步输出确定结果.
3.已知直角三角形两直角边长为a,b,求斜边长c的一个算法分下列三步:
(1)计算c=;
(2)输入直角三角形两直角边长a,b的值;
(3)输出斜边长c的值.
其中正确的顺序是________.
答案 (2)(1)(3)
解析 算法的步骤是有先后顺序的,第一步是输入,最后一步是输出,中间的步骤是赋值、计算.
4.求过P(a1,b1),Q(a2,b2)两点的直线的斜率有如下的算法,请在横线上填出适当步骤.
S1 令x1=a1,y1=b1,x2=a2,y2=b2.
S2 判断“x1=x2”是否成立.若成立,则输出“斜率不存在”;否则,执行第三步.
S3 ________________________________________________________________________.
S4 输出k.
答案 计算斜率k=
解析 由题意可知,“第三步”应根据直线斜率公式计算斜率k的值.
5.写出解二元一次方程组的算法.
解 S1 ①+2×②得7x=1.③
S2 解③得x=.
S3 ②×3-①×2得7y=5.④
S4 解④得y=.
S5 得到方程组的解为
1.算法的特点:有限性、确定性、逻辑性、不唯一性、普遍性.
2.算法设计的要求:
(1)写出的算法必须能够解决一类问题(如判断一个整数是否为质数,求任意一个方程的近似解等),并且能够重复使用.
(2)要使算法尽量简单,步骤尽量少.
(3)要保证算法正确,且算法步骤能够一步一步执行,每步执行的操作必须确切,不能含混不清,而且在有限步后能得到结果.
一、选择题
1.下列可以看成算法的是( )
A.学习数学时,课前预习,课上认真听讲并记好笔记,课下先复习再做作业,之后做适当的练习题
B.今天餐厅的饭真好吃
C.这道数学题难做
D.方程2x2-x+1=0无实数根
答案 A
解析 A是学习数学的一个步骤,所以是算法.
2.下面是判断一元二次方程ax2+bx+c=0是否有实数根的算法步骤.对该算法步骤排序正确的是( )
①输入一元二次方程的系数:a,b,c.
②计算Δ=b2-4ac的值.
③判断Δ≥0是否成立.若Δ≥0成立,则输出“方程有实数根”;否则输出“方程无实数根”,结束算法.
A.①②③ B.②①③ C.③①② D.②③①
答案 A
解析 根据该算法的构成,容易得到答案为A.
3.在用二分法求方程零点的算法中,下列说法正确的是( )
A.这个算法可以求所有的零点
B.这个算法可以求任何方程的零点
C.这个算法能求所有零点的近似解
D.这个算法可以求变号零点的近似解
答案 D
解析 二分法的理论依据是函数的零点存在性定理.它解决的是求变号零点的问题,并不能求所有零点的近似值.
4.有蓝、黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,现有空墨水瓶若干,解决这一问题最少需要的步骤数为( )
A.2 B.3 C.4 D.5
答案 B
解析 S1 将蓝墨水装到一个空墨水瓶中;
S2 将黑墨水装到黑墨水瓶中;
S3 将蓝墨水装到蓝墨水瓶中,这样就解决了这个问题,故选B.
5.已知一个算法:
(1)给出三个数x、y、z;
(2)计算M=x+y+z;
(3)计算N=M;
(4)得出每次计算结果.
则上述算法是( )
A.求和 B.求余数
C.求平均数 D.先求和再求平均数
答案 D
解析 由算法过程可知,M为三数之和,N为这三数的平均数,故选D.
6.下面是对高斯消去法的理解:
①它是解方程组的一种方法;
②它可以用来解多元一次方程组;
③用它来解方程组时,有些方程组的答案可能不准确.
其中正确的是( )
A.①② B.③ C.①③ D.②③
答案 A
解析 只有①②符合题意.
7.下列各式中T的值不能用算法求解的是( )
A.T=12+22+32+42+…+1002
B.T=++++…+
C.T=1+2+3+4+5+…
D.T=1-2+3-4+5-6+…+99-100
答案 C
解析 根据算法的有限性知C不能用算法求解.
8.对于算法:
S1 输入n.
S2 判断n是否等于2,若n=2,则n满足条件;若n>2,则执行第三步.
S3 依次从2到(n-1)检验能不能被n整除,若不能被n整除,则执行第四步;若能整除n,则结束算法.
S4 输出n.
满足条件的n是( )
A.质数 B.奇数 C.偶数 D.约数
答案 A
解析 此题首先要理解质数,只能被1和自身整除的大于1的整数叫质数.2是最小的质数,这个算法通过对2到(n-1)一一验证,看是否有其他约数,来判断其是否为质数.
二、填空题
9.下面是解决一个问题的算法:
S1 输入x.
S2 若x≥6,转到S3;否则转到S4.
S3 输出3x-2.
S4 输出x2-2x+4.
当输入x的值为________时,输出的数值最小,且最小值为________.
答案 1 3
解析 所给算法解决的是求分段函数f(x)=的函数值的问题.当x≥6时,f(x)=3x-2≥3×6-2=16;当x<6时,f(x)=x2-2x+4=(x-1)2+3≥3.所以f(x)min=3,此时x=1,即当输入x的值为1时,输出的数值最小,且最小值是3.
10.一个算法的步骤如下:
S1 令i=0,S=2.
S2 如果i≤15,则执行S3,否则执行S6.
S3 计算S+i并将结果代替S.
S4 用i+2的值代替i.
S5 转去执行S2.
S6 输出S.
运行该算法输出的结果S=________.
答案 58
解析 据题意知,S=2+2+4+6+8+10+12+14=58.
11.下面给出了解决问题的算法:
S1 输入x.
S2 若x≤1,则y=2x-1,否则y=x2+3.
S3 输出y.
当输入的x值为________时,输入值与输出值相等.
答案 1
解析 该算法的作用是求分段函数y=的函数值.解得x=1;无解.
12.给出下列算法:
S1 输入x的值.
S2 当x>4时,计算y=x+2;否则执行下一步.
S3 计算y=.
S4 输出y.
当输入x=0时,输出y=________.
答案 2
解析 0<4,执行第三步,y==2.
三、解答题
13.某商场举办优惠促销活动.若购物金额在800元以上(不含800元),打7折;若购物金额在400元以上(不含400元),800元以下(含800元),打8折;否则,不打折.请为商场收银员设计一个算法,要求输入购物金额x,输出实际交款额y.
解 算法步骤如下:
S1 输入购物金额x(x>0).
S2 判断“x>800”是否成立,若成立,则y=0.7x,转第四步;否则,执行第三步.
S3 判断“400<x≤800”是否成立,若成立,则y=0.8x,转第四步;否则,y=x.
S4 输出y,结束算法.
四、探究与拓展
14.下面是求15和18的最小公倍数的算法,其中不恰当的一步是________.
S1 先将15分解素因数:15=3×5.
S2 然后将18分解素因数:18=32×2.
S3 确定它们的所有素因数:2,3,5.
S4 计算出它们的最小公倍数:2×3×5=30.
答案 第四步
解析 素因数2,3,5的最高指数分别是1,2,1,算出它们的最小公倍数为2×32×5=90.
15.如图所示,汉诺塔问题是指有3根杆子A,B,C,杆子上有若干碟子,把所有的碟子从B杆移动到A杆上,每次只能移动一个碟子,大的碟子不能叠在小的碟子上面.把B杆上的3个碟子全部移动到A杆上,最少需要移动的次数是________.
答案 7
解析 直接进行分析,将最小的碟子命名为①,中间的碟子命名为②,最大的碟子命名为③,进行如下移动:①→A,②→C,①→C,③→A,①→B,②→A,①→A,此时按要求全部放好,移动7次.
课件38张PPT。1.1.1 算法的概念第一章 1.1 算法与程序框图学习目标
1.了解算法的含义.
2.了解算法的思想.
3.会用自然语言描述一些具体问题的算法.问题导学达标检测题型探究内容索引问题导学知识点一 算法的概念思考1 有一碗酱油,一碗醋和一个空碗.现要把两碗盛的物品交换过来,试用自然语言表述你的操作办法. 答案 先把醋倒入空碗,再把酱油倒入原来盛醋的碗,最后把倒入空碗中的醋倒入原来盛酱油的碗,就完成了交换.思考2 某笑话有这样一个问题:把大象装进冰箱总共分几步?答案是分三步.第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上.这是一个算法吗?
答案 是.梳理 算法概念算术运算一定规则明确有限计算机程序思考 算法与一般意义上具体问题的解法的区别与联系是什么?知识点二 算法的特征答案 (1)它们之间是一般与特殊的关系,也是抽象与具体的关系.
(2)要设计出解决一类问题的算法,可以借助于此类问题中的某一个问题的解决过程和思路进行设计,而此类问题中的任何一个具体问题都可以利用这类问题的一般算法来解决.梳理 算法的五个特征
(1)有限性:一个算法的步骤是 的,它应在有限步操作之后停止.
(2)确定性:算法中的每一步应该是 的,并且能有效地执行且得到确定的结果,而不是模棱两可的.
(3)逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有完成前一步,才能进行下一步,而且每一步都是正确无误的,从而组成具有很强逻辑性的 .有限确定步骤序列(4)普遍性:一个确定的算法,应该能够解决一类问题.
(5)不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同的算法.
特别提醒:判断一个问题是不是算法,关键是明确算法的含义及算法的特征.知识点三 算法的设计思考 自然语言是唯一描述算法的语言吗?
答案 不是.描述算法可以有不同的方式,常用的有自然语言、框图(流程图)、程序设计语言等.梳理 (1)设计算法的目的
设计算法的目的实际上是寻求一类问题的解决方法,它可以通过计算机来完成.设计算法的关键是把过程分解成若干个明确的步骤,然后用计算机能够接受的“语言”准确地描述出来,从而达到让计算机执行的目的.
(2)设计算法的要求
①写出的算法必须能解决一类问题.
②要使算法尽量简单、步骤尽量少.
③要保证算法步骤有效,且计算机能够执行.1.算法是解决一个问题的方法.( )
2.一个算法可以产生不确定的结果.( )
3.算法的步骤必须是明确的、有限的.( )[思考辨析 判断正误]××√题型探究例1 下列关于算法的说法,正确的个数有
①求解某一类问题的算法是唯一的;
②算法必须在有限步操作之后停止;
③算法的每一步操作必须是明确的,不能有歧义或模糊;
④算法执行后一定产生确定的结果.
A.1 B.2 C.3 D.4题型一 算法概念的理解√答案解析解析 由于算法具有有限性、确定性等特点,因而②③④正确,
而解决某类问题的算法不一定唯一,从而①错.反思与感悟 算法实际上是解决问题的一种程序性方法,它通常用来解决某一个或某一类问题,在用算法解决问题时,体现了特殊与一般的数学思想.跟踪训练1 下列描述不能看作算法的是
A.做米饭需要刷锅,淘米,添水,加热这些步骤
B.洗衣机的使用说明书
C.解方程2x2+x-1=0
D.利用公式S=πr2,计算半径为4的圆的面积,就是计算π×42解析解析 A,B,D都描述了解决问题的过程,可以看作算法,而C只描述了一个事实,没说明怎么解决问题,不是算法.√答案题型二 算法的阅读理解例2 下面算法要解决的问题是__________________________________
__________.
S1 输入三个数,并分别用a,b,c表示.
S2 比较a与b的大小,如果aS3 比较a与c的大小,如果aS4 比较b与c的大小,如果bS5 输出a,b,c.答案解析输入三个数a,b,c,并按从大到小的顺序输出解析 第一步是给a,b,c赋值.
第二步运行后a>b.
第三步运行后a>c.
第四步运行后b>c,所以a>b>c.
第五步运行后,显示a,b,c的值,且从大到小排列.反思与感悟 一个算法的作用往往并不显而易见,这需要我们结合具体数值去执行一下才知道.答案跟踪训练2 下面给出了一个问题的算法:
S1 输入a.
S2 若a≥4,则执行第三步,否则执行第四步.
S3 输出2a-1.
S4 输出a2-2a+3.
这个算法解决的问题是____________________________________________.当x=a时的函数值f(a)命题角度1 直接应用数学公式设计算法
例3 有一个底面半径为3,母线为5的圆锥,写出求该圆锥体积的算法.题型三 算法的设计与应用解答解 如图,先给r,l赋值,计算h,S1 令r=3,l=5.S4 输出运算结果.反思与感悟 利用公式解决问题时,必须先求出公式中的各个量,在设计算法时,应优先考虑未知量的求法.跟踪训练3 已知一个等边三角形的周长为a,求这个三角形的面积.设计一个算法解决这个问题.解 S1 输入a的值.S4 输出S的值.解答命题角度2 函数求值问题的算法设计解答解 S1 输入x=a.
S2 若a≥2,则执行第三步;若a<2,则执行第四步.
S3 输出f(a)=a2-a+1.
S4 输出f(a)=a+1.反思与感悟 首先结合函数的表达式的特征,然后选择恰当的算法语言进行描述.跟踪训练4 已知函数f(x)=|x-2|+1, 设计一个算法求函数的任一函数值.解答解 S1 输入x=a.
S2 若a<2,则执行第三步,否则执行第四步.
S3 输出f(a)=3-a.
S4 输出f(a)=a-1.命题角度3 非数值性计算问题的算法
例5 所谓正整数p为素数是指:p的所有约数只有1和p.例如,35不是素数,因为35的约数除了1,35外,还有5与7;29是素数,因为29的约数只有1和29.试设计一个能够判断一个任意正整数n(n>1)是否为素数的算法.解答解 算法如下:
S1 给出任意一个正整数n(n>1).
S2 若n=2,则输出“2是素数”,判断结束.
S3 令m=1.
S4 m=m+1.
S5 如果m≥n,则输出“n是素数”,判断结束.
S6 判断m能否整除n,
①如果能整除,则输出“n不是素数”,判断结束;
②如果不能整除,则转第四步.反思与感悟 设计一个具体问题的算法,通常按以下步骤:
(1)认真分析问题,找出解决该问题的一般数学方法.
(2)借助有关变量或参数对算法加以表述.
(3)将解决问题的过程划分为若干步骤.
(4)用简练的语言将这个步骤表示出来.跟踪训练5 判断一个大于2的整数是否为质数的算法步骤如何设计?解答解 S1 给定大于2的整数n.
S2 令i=2.
S3 用n除以i,得到余数r.
S4 判断“r=0”是否成立.若成立,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.
S5 判断“i>(n-1)”是否成立.若成立,则n是质数,结束算法;否则,返回第三步.达标检测答案解析1.下列关于算法的说法正确的是
A.一个算法的步骤是可逆的
B.描述算法可以有不同的方式
C.算法可以看成是按照要求设计好的、有限的、确切的计算序列,并且
这样的步骤或序列只能解决当前问题
D.算法只能用一种方式显示√12345解析 由算法的定义知A,C,D错.A.①② B.①③ C.②③ D.①②③答案解析2.计算下列各式中S的值,能设计算法求解的是 √解析 由算法的有限性知②不能设计算法求解,①③都能通过有限步输出确定结果.12345答案解析3.已知直角三角形两直角边长为a,b,求斜边长c的一个算法分下列三步:解析 算法的步骤是有先后顺序的,第一步是输入,最后一步是输出,中间的步骤是赋值、计算.(2)输入直角三角形两直角边长a,b的值;
(3)输出斜边长c的值.
其中正确的顺序是________.(2)(1)(3)12345答案解析4.求过P(a1,b1),Q(a2,b2)两点的直线的斜率有如下的算法,请在横线上填出适当步骤.
S1 令x1=a1,y1=b1,x2=a2,y2=b2.
S2 判断“x1=x2”是否成立.若成立,则输出“斜率不存在”;否则,执行第三步.
S3 _________________.
S4 输出k.12345解析 由题意可知,“第三步”应根据直线斜率公式计算斜率k的值.解答解 S1 ①+2×②得7x=1. ③S3 ②×3-①×2得7y=5. ④123451.算法的特点:有限性、确定性、逻辑性、不唯一性、普遍性.
2.算法设计的要求:
(1)写出的算法必须能够解决一类问题(如判断一个整数是否为质数,求任意一个方程的近似解等),并且能够重复使用.
(2)要使算法尽量简单,步骤尽量少.
(3)要保证算法正确,且算法步骤能够一步一步执行,每步执行的操作必须确切,不能含混不清,而且在有限步后能得到结果.1.1.2 程序框图
1.1.3 算法的三种基本逻辑结构和框图表示(一)
学习目标 1.熟悉各种程序框及流程线的功能与作用.2.能够读懂简单的程序框图.3.能够用程序框图表示顺序结构的算法.
知识点一 程序框图
思考 许多办事机构都有工作流程图,你觉得要向来办事的人员解释工作流程,是用自然语言好,还是用流程图好?
答案 使用流程图好.因为使用流程图表达更直观准确.
梳理 1.程序框图的概念
通常用一些通用图形符号构成一张图来表示算法,这种图称做程序框图(简称框图).
2.构成程序框图的图形符号及其作用
图形符号
名称
符号表示的意义
起、止框
框图的开始或结束
输入、输出框
数据的输入或者结果的输出
处理框
赋值、执行计算语句、结果的传送
判断框
根据给定条件判断
流程线
流程进行的方向
连接点
连接另一页或另一部分的框图
注释框
帮助理解框图
在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序.
3.画程序框图应遵循的规则
(1)使用标准的框图符号.
(2)框图一般按从上到下、从左到右的方向画.
(3)除判断框外,其他框图符号只有一个进入点和一个退出点,判断框是唯一一个具有超过一个退出点的程序框.
(4)一种判断框是二择一形式的判断,有且仅有两个可能结果;另一种是多分支判断,可能有几种不同的结果.
(5)在图形符号内描述的语言要非常简练清楚.
知识点二 顺序结构
顺序结构描述的是最简单的算法结构,语句与语句之间,框与框之间按从上到下的顺序进行.
1.任何一个程序框图必须有起止框.( √ )
2.任何一个算法都离不开顺序结构.( √ )
3.对于一个程序框图来说,判断框内的条件是唯一的.( × )
题型一 程序框的认识和理解
例1 下列说法正确的是( )
A.程序框图中的图形符号可以由个人来确定
B.也可以用来执行计算语句
C.程序框图中可以没有输出框,但必须要有输入框
D.用程序框图表达算法,其优点是算法的基本逻辑结构展现得非常直接
答案 D
解析 一个完整的程序框图至少要有起止框和输入、输出框,输入、输出框只能用来输入、输出信息,不能用来执行计算.
反思与感悟 (1)理解程序框图中各框图的功能是解此类题的关键,用程序框图表示算法更直观、清晰、易懂.
(2)起止框用表示,是任何流程不可少的,表明程序的开始或结束.
(3)输入、输出框用表示,可用在算法中任何需要输入、输出的位置,需要输入的字母、符号、数据都填在框内.
(4)处理框用表示,算法中处理数据需要的算式、公式等可以分别写在不同的用以处理数据的处理框内,另外,对变量进行赋值时,也用到处理框.
(5)判断框用表示,是唯一具有超过一个退出点的图形符号.
跟踪训练1 程序框图中表示判断框的是( )
A.矩形框 B.菱形框 C.圆形框 D.椭圆形框
答案 B
解析 要画好程序框图,就必须准确了解各图形符号的意义,圆角矩形框为起、止框,矩形框为执行框,平行四边形框为输入、输出框,菱形框为判断框,故选B.
题型二 利用顺序结构表示算法
例2 已知直角三角形的两条直角边长分别为a,b,设计一个求直角三角形内切圆面积的算法,并画出对应的程序框图.
解 算法步骤如下:
S1 输入直角三角形的直角边长a,b的值.
S2 计算斜边长c=.
S3 计算直角三角形内切圆半径r=(a+b-c).
S4 计算内切圆面积S=πr2.
S5 输出S.
程序框图如图.
反思与感悟 在顺序结构中,语句与语句之间、框与框之间是按照从上到下的顺序连接的,中间没有“转弯”,也没有“回头”,
跟踪训练2 已知一个三角形三条边的边长分别为a,b,c,利用海伦-秦九韶公式.设计一个计算三角形面积的算法,并画出程序框图.
解 算法步骤如下:
S1 输入三角形三条边的边长a,b,c.
S2 计算p=.
S3 计算S=.
S4 输出S.
程序框图如图.
题型三 程序框图的应用
例3 一个算法如图,它的功能是什么?
解 其功能是求点(x0,y0)到直线Ax+By+C=0的距离.
反思与感悟 程序框图本就是为直观清晰表达算法而生,故只需弄清各种程序框、流程线的功能,再依次执行一下程序,不难读懂该图所要表达的算法.
跟踪训练3 写出下列算法的功能:
(1)图①中算法的功能是(a>0,b>0)_________________ ________________________;
(2)图②中算法的功能是________________.
答案 (1)求以a,b为直角边的直角三角形斜边c的长 (2)求两个实数a,b的和
1.对顺序结构,下列说法正确的有( )
①是最基本、最简单的算法结构;
②框与框之间是依次进行处理;
③除输入、输出框之外,中间过程都是处理框;
④可以从一个框图跳到另一个框图执行.
A.4个 B.3个
C.2个 D.1个
答案 B
解析 由于只有①②③正确,所以选B.
2.程序框图符号“”可用于( )
A.输出a=10 B.赋值a=10
C.判断a=10 D.输入a=1
答案 B
解析 图形符号“”是处理框,它的功能是赋值、计算,不是用来输出、判断和输入的,故选B.
3.如图所示的程序框图的输出结果为________.
答案 5,8
解析 因为初始值a=3,b=2,
故3+2=5赋给a,5-2=3赋给b,5+3=8赋给b,
所以最终a=5,b=8,输出5,8.
4.下面程序框图的运行结果是________.
答案
解析 初始值a=2,b=4,
得S=+=2+=,输出S的值为.
5.写出求过点P1(3,5),P2(-1,2)的直线斜率的算法,并画出程序框图.
解 算法如下:
S1 输入x1=3,y1=5,x2=-1,y2=2.
S2 计算k=.S3 输出k.
程序框图如图.
1.在设计计算机程序时要画出程序运行的程序框图,有了这个程序框图,再去设计程序就有了依据,从而就可以把整个程序用程序语言表述出来,因此程序框图是我们设计程序的基本和开端.
2.规范程序框图的表示
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画,流程线要规范;
(3)除判断框外,其他框图符号只有一个进入点和一个退出点;
(4)在图形符号内描述的语言要非常简练、清楚.
一、选择题
1.算法框图中表示处理框的符号是( )
A.矩形框 B.菱形框
C.圆形框 D.椭圆形框
答案 A
2.一个完整的程序框图至少包含( )
A.起止框和输入、输出框
B.起止框和处理框
C.起止框和判断框
D.起止框、处理框和输入、输出框
答案 A
解析 一个完整的程序框图至少需包括起、止框和输入、输出框.对于处理框,由于含有计算功能,所以可不必有.
3.a表示“处理框”,b表示“输入、输出框”,c表示“起、止框”,d表示“判断框”,以下四个图形依次为( )
A.abcd B.dcab C.cbad D.bacd
答案 C
解析 根据框图表示的意义逐一判断.
4.在程序框图中,一个算法步骤到另一个算法步骤的连接用( )
A.连接点 B.判断框
C.连接线 D.处理框
答案 C
解析 连接线的作用是连接程序框及体现程序进行的方向,一个算法步骤到另一个算法步骤表示的是程序进行的方向,故选C.而连接点的作用是连接程序框图的两部分.判断框的作用是判断某一条件是否成立.处理框的作用是赋值、计算、数据处理等.
5.能够使算法的步骤表达更直观的是( )
A.自然语言 B.程序框图
C.数学语言 D.逻辑分析
答案 B
解析 用程序框图表达算法,能使算法的结构更清楚,步骤更直观也更精确.
6.下列是程序框图中的一部分,表示恰当的是( )
答案 A
解析 由各图形符号的功能和流程线的意义知选A.
7.如图所示的程序框图中不含有的程序框是( )
A.起、止框 B.输入、输出框
C.判断框 D.处理框
答案 C
8.阅读如图的程序框图,若输入的a,b,c分别是21,32,75,则输出的a,b,c分别是( )
A.75,21,32 B.21,32,75
C.32,21,75 D.75,32,21
答案 A
解析 由程序框图可知x=a,则x的值为21,由“a=c”知a的值是75,依次得到c的值为32,b的值为21.
二、填空题
9.根据下面的程序框图所表示的算法,输出的结果是________.
答案 2
解析 该算法的第1步分别将X,Y,Z赋于1,2,3三个数,第2步使X取Y的值,即X取值变成2,第3步使Y取X的值,即Y的值也是2,第4步使Z取Y的值,即Z取值也是2,从而第5步输出时,Z的值是2.
10.下图(1)是计算图(2)所示的阴影部分的面积的程序框图,则图(1)中执行框内应填________.
答案 S=a2
解析 正方形的面积为S1=a2,扇形的面积为S2=πa2,则阴影部分的面积为S=S1-S2=a2.因此图中执行框内应填入S=a2.
11.程序框图如图所示.则该程序框图的功能是________________.
答案 交换两个变量x,y的值
三、解答题
12.已知一个直角三角形的两条直角边长分别为a,b,设计一个算法,求该三角形的面积,并画出相应的程序框图.
解 算法如下:S1 输入两直角边的长a,b.
S2 计算S=ab.S3 输出S.
程序框图如图.
13.如图所示的程序框图,当输入的x的值为0和4时,输出的值相等,根据该图和下列各小题的条件回答下面的几个问题.
(1)该程序框图解决的是一个什么问题?
(2)当输入的x的值为3时,求输出的f(x)的值;
(3)要想使输出的值最大,求输入的x的值.
解 (1)该程序框图解决的是求二次函数
f(x)=-x2+mx的函数值的问题.
(2)当输入的x的值为0和4时,
输出的值相等,
即f(0)=f(4).
因为f(0)=0,f(4)=-16+4m,
所以-16+4m=0,
所以m=4.所以f(x)=-x2+4x.
因为f(3)=-32+4×3=3,
所以当输入的x的值为3时,
输出的f(x)的值为3.
(3)因为f(x)=-x2+4x=-(x-2)2+4,
当x=2时,f(x)max=4,
所以要想使输出的值最大,
输入的x的值应为2.
四、探究与拓展
14.如图所示,图①是计算图②中空白部分面积的一个框图,则“?”处应填________.
① ②
答案 S=-a2
解析 由题图②知S阴影=2=2a2-,
所以S空白=a2-S阴影=a2-2a2+=-a2.
故“?”处应填S=-a2.
15.如图所示是解决某个问题而绘制的程序框图,仔细分析各框图内的内容及框图之间的关系,回答下面的问题:
(1)该框图解决的是怎样的一个问题?
(2)若最终输出的结果y1=3,y2=-2,当x=5时输出的结果5a+b的值应该是多大?
(3)在(2)的前提下,输入的x值越大,输出的ax+b是不是越大?为什么?
(4)在(2)的前提下,当输入的x值为多大时,输出结果ax+b=0?
解 (1)该框图解决的是求函数f(x)=ax+b的函数值的问题,其中输入的是自变量x的值,输出的是x对应的函数值.
(2)y1=3,即2a+b=3.①
y2=-2,即-3a+b=-2.②
由①②得a=1,b=1.
∴f(x)=x+1.
∴当x=5时,5a+b=f(5)=5+1=6.
(3)输入的x值越大,输出的函数值ax+b越大,
∵f(x)=x+1是R上的增函数.
(4)令f(x)=x+1=0,得x=-1,
因此当输入的x值为-1时,输出的函数值为0.
课件28张PPT。1.1.2 程序框图 1.1.3 算法的三种基本逻辑结构和框图表示(一)第一章 1.1 算法与程序框图学习目标
1.熟悉各种程序框及流程线的功能与作用.
2.能够读懂简单的程序框图.
3.能够用程序框图表示顺序结构的算法.问题导学达标检测题型探究内容索引问题导学知识点一 程序框图思考 许多办事机构都有工作流程图,你觉得要向来办事的人员解释工作流程,是用自然语言好,还是用流程图好?答案 使用流程图好.因为使用流程图表达更直观准确.梳理 1.程序框图的概念
通常用一些通用 构成一张图来表示算法,这种图称做________(简称 ).
2.构成程序框图的图形符号及其作用图形符号程序框图框图起、止框输入、输出框处理框判断框流程线连接点注释框在程序框图中,一个或几个 的组合表示算法中的一个步骤;带有 的流程线将程序框连接起来,表示算法步骤的执行顺序.程序框方向箭头3.画程序框图应遵循的规则
(1)使用标准的框图符号.
(2)框图一般按从上到下、从左到右的方向画.
(3)除判断框外,其他框图符号只有一个进入点和一个退出点,判断框是唯一一个具有超过一个退出点的程序框.
(4)一种判断框是二择一形式的判断,有且仅有两个可能结果;另一种是多分支判断,可能有几种不同的结果.
(5)在图形符号内描述的语言要非常简练清楚.顺序结构描述的是最简单的算法结构,语句与语句之间,框与框之间按从 到 的顺序进行.知识点二 顺序结构上下[思考辨析 判断正误]
1.任何一个程序框图必须有起止框.( )
2.任何一个算法都离不开顺序结构.( )
3.对于一个程序框图来说,判断框内的条件是唯一的.( )√√×题型探究例1 下列说法正确的是
A.程序框图中的图形符号可以由个人来确定
B. 也可以用来执行计算语句
C.程序框图中可以没有输出框,但必须要有输入框
D.用程序框图表达算法,其优点是算法的基本逻辑结构展现得非常直接题型一 程序框的认识和理解答案解析√解析 一个完整的程序框图至少要有起止框和输入、输出框,输入、输出框只能用来输入、输出信息,不能用来执行计算.反思与感悟 (1)理解程序框图中各框图的功能是解此类题的关键,用程序框图表示算法更直观、清晰、易懂.
(2)起止框用 表示,是任何流程不可少的,表明程序的开始或结束.
(3)输入、输出框用 表示,可用在算法中任何需要输入、输出的位置,需要输入的字母、符号、数据都填在框内.
(4)处理框用 表示,算法中处理数据需要的算式、公式等可以分别写在不同的用以处理数据的处理框内,另外,对变量进行赋值时,也用到处理框.
(5)判断框用 表示,是唯一具有超过一个退出点的图形符号.跟踪训练1 程序框图中表示判断框的是
A.矩形框 B.菱形框
C.圆形框 D.椭圆形框答案√解析解析 要画好程序框图,就必须准确了解各图形符号的意义,圆角矩形框为起、止框,矩形框为执行框,平行四边形框为输入、输出框,菱形框为判断框,故选B.题型二 利用顺序结构表示算法例2 已知直角三角形的两条直角边长分别为a,b,设计一个求直角三角形内切圆面积的算法,并画出对应的程序框图.解答解 算法步骤如下:
S1 输入直角三角形的直角边长a,b的值.S4 计算内切圆面积S=πr2.
S5 输出S.
程序框图如图.反思与感悟 在顺序结构中,语句与语句之间、框与框之间是按照从上到下的顺序连接的,中间没有“转弯”,也没有“回头”,解答解 算法步骤如下:
S1 输入三角形三条边的边长a,b,c.S4 输出S.
程序框图如图.例3 一个算法如图,它的功能是什么?题型三 程序框图的应用解答解 其功能是求点(x0,y0)到直线Ax+By+C=0的距离.反思与感悟 程序框图本就是为直观清晰表达算法而生,故只需弄清各种程序框、流程线的功能,再依次执行一下程序,不难读懂该图所要表达的算法.跟踪训练3 写出下列算法的功能:
(1)图①中算法的功能是(a>0,b>0)_________________________________
_______;
(2)图②中算法的功能是___________________.答案求以a,b为直角边的直角三角形斜边c的长求两个实数a,b的和达标检测答案解析1.对顺序结构,下列说法正确的有
①是最基本、最简单的算法结构;
②框与框之间是依次进行处理;
③除输入、输出框之外,中间过程都是处理框;
④可以从一个框图跳到另一个框图执行.
A.4个 B.3个
C.2个 D.1个√12345解析 由于只有①②③正确,所以选B.答案解析2.程序框图符号“ ”可用于
A.输出a=10 B.赋值a=10
C.判断a=10 D.输入a=1解析 图形符号“ ”是处理框,它的功能是赋值、计算,不是用来输出、判断和输入的,故选B.12345√答案解析3.如图所示的程序框图的输出结果为_____.123455,8解析 因为初始值a=3,b=2,
故3+2=5赋给a,5-2=3赋给b,5+3=8赋给b,
所以最终a=5,b=8,输出5,8.答案解析4.右面程序框图的运行结果是______.12345解析 初始值a=2,b=4,解答123455.写出求过点P1(3,5),P2(-1,2)的直线斜率的算法,并画出程序框图.解 算法如下:
S1 输入x1=3,y1=5,x2=-1,y2=2.程序框图如图.1.在设计计算机程序时要画出程序运行的程序框图,有了这个程序框图,再去设计程序就有了依据,从而就可以把整个程序用程序语言表述出来,因此程序框图是我们设计程序的基本和开端.
2.规范程序框图的表示
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画,流程线要规范;
(3)除判断框外,其他框图符号只有一个进入点和一个退出点;
(4)在图形符号内描述的语言要非常简练、清楚.课件30张PPT。1.1.3 算法的三种基本逻辑结构和框图表示(三)第一章 1.1 算法与程序框图学习目标
1.掌握循环结构的程序框图的画法.
2.理解循环结构程序框图的执行功能,并能正确解题.问题导学达标检测题型探究内容索引问题导学知识点一 循环结构思考1 用累加法计算1+2+3+…+100的值,其中有没有重复操作的步骤?
思考2 循环结构的程序框图中一定含有判断框吗? 答案 用S表示每一步的计算结果,S加下一个数得到一个新的S,这个步骤被重复了100次.
答案 一定含有.在循环结构中需要判断是否执行循环体,故循环结构的程序框图中一定含有判断框. 思考3 什么样的算法问题要用循环结构?它与条件分支结构,顺序结构有何联系?答案 如果算法问题涉及的运算有许多重复的步骤,且变量间有相同规律,就可用循环结构.循环结构中有顺序结构与条件分支结构.梳理 根据指定条件决定是否重复执行一条或多条指令的控制结构称为循环结构,反复执行的步骤称为 .循环体循环变量、循环体、循环的终止条件是循环结构的三大要素,循环结构的三要素在分析所有循环结构的算法、画出算法的程序框图之前就应该分析清楚,只有准确地把握了这三个要素,才能清楚地画出循环结构的程序框图.
(1)循环变量:应明确它的初始值、步长(指循环变量每次增加的值)、终值.
(2)循环体:也称循环表达式,它是算法中反复执行的部分.
(3)循环的终止条件:程序框图中用一个判断框来判断是否继续执行循环体.知识点二 循环结构的三要素及其作用知识点三 赋值号思考 在程序框图中,常见“i=i+1”,它是什么意思?答案 它表示先计算等号右边“i+1”的值,再把这个值赋给等号左边的变量.赋值号右梳理 一般地,“变量=表达式”中的“=”叫 ,它的功能是把 边表达式的值赋给 边的变量,故它与数学中的等号不完全一样,所以不能颠倒写成“表达式=变量”.左[思考辨析 判断正误]
1.循环结构中,判断框内的条件不是唯一的.( )
2.判断框中的条件成立时,要结束循环向下执行.( )
3.循环体中要对判断框中的条件变量有所改变才会使循环结构不会出现“死循环”.( )√×√题型探究例1 写出求1×2×3×4×5×…×n的值的算法步骤,并画出程序框图.题型一 循环结构程序框图的画法解答解 算法如下:
S1 输入n,设t的初始值为1.
S2 设i的初始值为2.
S3 如果i≤n,则执行第四步,否则,转去执行S7.
S4 计算t乘i并将结果赋给t.
S5 计算i加1并将结果赋给i.
S6 返回执行S3.
S7 输出t的值并结束算法.
根据自然语言描述,程序框图如图所示.反思与感悟 这是一个累乘问题,重复进行了n-1次乘法,可以利用循环结构描述,需引入累乘变量t和计数变量i,这里t与i每循环一次,它们的值都在改变.跟踪训练1 阅读如图的程序框图,运行相应的程序,则输出S的值为
A.-10 B.6 C.14 D.18 解析解析 执行程序:S=20,i=1,i=2,
S=20-2=18;
i=4,S=18-4=14;
i=8,S=14-8=6,
满足i>5的条件,结束循环,
输出S的值为6,故选B.答案√题型二 含循环结构程序框图的设计例2 设计算法求1×2×3×…×2 016×2 017的值,并画出程序框图.解答解 算法如下:
S1 设M的值为1.
S2 设i的值为2.
S3 如果i≤2 017,则执行S4;否则执行S6.
S4 计算M=M×i.
S5 计算i=i+1,返回执行S3.
S6 输出M的值,并结束算法.
程序框图如图所示.引申探究
若将本例中的积改为和,如何设计程序框图.解答解 程序框图如下.反思与感悟 利用循环结构解决问题的“三个确定”
(1)确定循环变量及初始值,弄清循环变量表示的意义、取值范围及变化规律.
(2)确定循环体的功能,根据实际情况确定采用哪种循环结构.
(3)确定循环结构的终止条件,弄清不等号的方向及是否含有等号.跟踪训练2 执行如图所示的程序框图,输出的k值是
A.3 B.5
C.7 D.9 解析答案√解析 第一次循环:n=3×5+1=16,k=0+1=1,继续循环;输出k=5.故选B.题型三 循环结构在实际中的应用解答例3 以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来,请画出程序框图.解 程序框图如图所示.反思与感悟 应用循环结构解决实际问题的策略解答跟踪训练3 某公司为激励广大员工的积极性,规定:若推销产品价值在10 000元之内的年终提成5%;若推销产品价值在10 000元以上(包括10 000元),则年终提成10%,设计一个求公司员工年终提成f(x)的算法的程序框图.解 程序框图如图所示:达标检测答案解析1.执行如图所示的程序框图后,输出的值为4,则P的取值范围是 12345√解析 ∵S<P时,执行循环体,S≥P时输出n=4,答案解析2.运行如图所示的程序框图,则输出的T=_____.解析 T=0,S=0,T>S不成立.
执行第一次循环后,S=4,n=2,T=2,2>4仍
不成立.
执行第二次循环后,S=8,n=4,T=6,6>8仍
不成立.
执行第三次循环后,S=12,n=6,T=12,,12>12仍不成立.
执行第四次循环后,S=16,n=8,T=20,20>16成立,
故输出T的值为20.1234520解析3.按照如图的程序框图运行,已知输入x的值为2+log23,则输出的y的值为______.12345答案解析 因为2+log23<2+log24=4,
所以x=2+log23+1=3+log23>3+log22=4,4.已知如图所示的程序框图.若a=5,则输出b=______. 解析 若a=5,程序执行“否”,
计算b=52+1=26,
故b=26.解析1234526答案123455.请认真阅读程序框图,
(1)写出每一个Ai的值;
(2)写出程序框图的输出结果S的值.解 A3=9,A4=11,A5=13,A6=15,A7=17.解 该程序的作用是累加并输出S=9+11+13+15+17的值.
S=9+11+13+15+17=65.
即输出结果S的值是65.解答1.需要重复执行同一操作的结构称为循环结构,即从某处开始,按照一定条件反复执行某一处理步骤.反复执行的处理步骤称为循环体.
(1)循环结构中一定包含条件分支结构;
(2)在循环结构中,通常都有一个起循环计数作用的变量,这个变量的取值一般都含在执行或终止循环体的条件中.
2.程序框图中的任何结构内的每一部分都有机会被执行到,也就是说对每一个框来说都应当有一条从入口到出口的路径,在程序框图中是不允许有死循环出现的.课件31张PPT。1.1.3 算法的三种基本逻辑结构和框图表示(二)第一章 1.1 算法与程序框图学习目标
1.掌握条件分支结构的程序框图的画法.
2.能用条件分支结构框图描述分类讨论问题的算法.
3.进一步熟悉程序框图的画法.问题导学达标检测题型探究内容索引问题导学知识点一 条件分支结构思考1 我们经常需要处理分类讨论的问题,顺序结构能否完成这一任务?为什么?
思考2 有些问题需要按给定的条件进行分析、比较和判断,在程序框图结构中还能只用顺序结构吗? 答案 分类讨论是带有分支的逻辑结构,而顺序结构是一通到底的“直肠子”,所以不能表达分支结构,这就需要条件分支结构出场.
答案 不能,顺序结构不能按给定的条件进行分析、比较和判断. 梳理 一些简单的算法可以用顺序结构来表示,但是这种结构无法描述要求进行逻辑判断,并根据判断结果进行不同处理的情况,因此,需要另一种逻辑结构来处理这类问题.这种结构叫做条件分支结构.知识点二 条件分支结构的两种形式条件知识点三 条件分支结构的嵌套思考 条件分支结构中的判断框有两个出口,由此说明条件分支结构执行的结果不唯一,对吗?答案 不对,判断框虽然有两个出口,但根据条件是否成立,选择的出口是确定的,故执行结果也是唯一的.梳理 条件分支结构的嵌套实际上就是将一个条件分支结构置于另一个条件分支结构的分支中,这个分支结束后,要与另一个分支交汇.[思考辨析 判断正误]
1.条件分支结构的程序框图中含有顺序结构.( )
2.条件分支结构的程序框图中可以不含判断框.( )
3.条件分支结构的判断条件要写在判断框内.( )
4.条件分支结构的两种形式执行结果可能不同.( )√×√×题型探究例1 (1)下列算法中,含有条件分支结构的是
A.求两个数的积
B.求点到直线的距离
C.解一元二次方程
D.已知梯形两底和高求面积题型一 条件分支结构的概念答案√解析 解一元二次方程时,当判别式Δ<0时,方程无解,当Δ≥0时,方程有解,由于分情况,故用到条件分支结构.解析答案(2)条件分支结构不同于顺序结构的特征是
A.处理框 B.判断框
C.输入、输出框 D.起止框√解析 在条件分支结构中含有判断框,而顺序结构中没有.解析解析 ①③④都要对条件作出判断,故需要用条件分支结构,②用顺序结构即可.(3)给出以下四个问题:
①输入一个数x,输出它的绝对值;
②求面积为6的正方形的周长;
③求a,b,c三个数中的最大值;其中需要用条件分支结构来描述算法的有
A.1个 B.2个 C.3个 D.4个√答案解析反思与感悟 条件分支结构中含有判断框,且判断框内相应的判定条件是依据所给具体问题设定的.跟踪训练1 下列问题的算法适宜用条件分支结构表示的是
A.求点P(2,5)到直线l:3x-2y+1=0的距离
B.由直角三角形的两条直角边求斜边
C.解不等式ax+b>0(其中a≠0)
D.计算3个数的平均数√答案解析 条件分支结构是处理逻辑判断并根据判断进行不同处理的结构,只有C中需判断a的符号,其余选项中都不含逻辑判断,故选C.解析题型二 条件分支结构的应用例2 如图所示的程序框图,若输出y的值为3,求输入的x值.解答当x≤0时,y∈(1,2],
此时不可能输出y=3;
当x>0时,令y=2x+1=3,
解得x=1,符合题意,
故输入的x的值为1.解答引申探究
本例中,若输入x的值为-1,则输出y的值为多少?反思与感悟 先由条件作出判断,然后再决定选择哪一个步骤,在画框图时,必须用到条件分支结构.跟踪训练2 画出计算函数y=|x-2|的函数值的程序框图.解答解 算法如下:
S1 输入x.
S2 若x≥2,则y=x-2;否则y=2-x.
S3 输出y.
程序框图如右.题型三 条件分支结构的嵌套解答例3 解关于x的方程ax+b=0的算法的程序框图如何表示?解 先设计算法步骤:
S1 输入实数a,b.
S2 判断a是否为0.若是,执行第三步,否则,
计算x=- ,并输出x,结束算法.S3 判断b是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.
再用程序框图表达上述算法如图.反思与感悟 我们现在使用的条件分支结构只提供2个出口,故当要分三类以上讨论时,往往需要在条件分支结构中再嵌套一个条件分支结构.解答解 程序框图如下.达标检测答案解析1.在如图所示的程序框图中,若输出的y的值为26,则输入的x的值为
A.-4 B.-5
C.6 D.-6 12345√解析 由x2-2x+2=26,解得x=-4或x=6,由框图知,输入的x的值为-4.答案解析2.若输入x=-5,按图中所示程序框图运行后,输出的结果是
A.-5 B.0
C.-1 D.1 解析 因为x=-5,不满足x>0,
所以在第一个判断框中执行“否”,
在第二个判断框中,
由于-5<0,执行“是”,
所以得y=1.12345√3.对任意非零实数a、b,若a?b的运算原理如程序框图所示,则3?2=___.12345答案2解析解析 由题意知,a=3,b=2,
由程序框图得,3≤2不成立,答案解析4.已知函数y=|x-3|,如图表示的是给定x的值,求其相应函数的值的算法.请将该程序框图补充完整,其中①处应填___________,②处应填________.12345x<3或x≤3y=x-3结合所给程序框图易得.解 算法步骤如下:
S1 输入x.
S2 如果x<0,那么y=2x-1,否则,执行第三步.
S3 如果x<1,那么y=x+1,否则,执行第四步.
S4 y=x+2.
S5 输出y.
程序框图如图所示.解答123451.条件分支结构是程序框图的重要组成部分.其特点是先判断后执行.
2.在利用条件分支结构画程序框图时要注意两点:一是需要判断条件是什么,二是条件判断后分别对应着什么样的结果.
3.设计程序框图时,首先设计算法步骤,再转化为程序框图,待熟练后可以省略算法步骤直接画出程序框图.对于算法中分类讨论的步骤,通常设计成条件分支结构来解决.1.1.3 算法的三种基本逻辑结构和框图表示(三)
学习目标 1.掌握循环结构的程序框图的画法.2.理解循环结构程序框图的执行功能,并能正确解题.
知识点一 循环结构
思考1 用累加法计算1+2+3+…+100的值,其中有没有重复操作的步骤?
答案 用S表示每一步的计算结果,S加下一个数得到一个新的S,这个步骤被重复了100次.
思考2 循环结构的程序框图中一定含有判断框吗?
答案 一定含有.在循环结构中需要判断是否执行循环体,故循环结构的程序框图中一定含有判断框.
思考3 什么样的算法问题要用循环结构?它与条件分支结构,顺序结构有何联系?
答案 如果算法问题涉及的运算有许多重复的步骤,且变量间有相同规律,就可用循环结构.循环结构中有顺序结构与条件分支结构.
梳理 根据指定条件决定是否重复执行一条或多条指令的控制结构称为循环结构,反复执行的步骤称为循环体.
知识点二 循环结构的三要素及其作用
循环变量、循环体、循环的终止条件是循环结构的三大要素,循环结构的三要素在分析所有循环结构的算法、画出算法的程序框图之前就应该分析清楚,只有准确地把握了这三个要素,才能清楚地画出循环结构的程序框图.
(1)循环变量:应明确它的初始值、步长(指循环变量每次增加的值)、终值.
(2)循环体:也称循环表达式,它是算法中反复执行的部分.
(3)循环的终止条件:程序框图中用一个判断框来判断是否继续执行循环体.
知识点三 赋值号
思考 在程序框图中,常见“i=i+1”,它是什么意思?
答案 它表示先计算等号右边“i+1”的值,再把这个值赋给等号左边的变量.
梳理 一般地,“变量=表达式”中的“=”叫赋值号,它的功能是把右边表达式的值赋给左边的变量,故它与数学中的等号不完全一样,所以不能颠倒写成“表达式=变量”.
1.循环结构中,判断框内的条件不是唯一的.( √ )
2.判断框中的条件成立时,要结束循环向下执行.( × )
3.循环体中要对判断框中的条件变量有所改变才会使循环结构不会出现“死循环”.
( √ )
题型一 循环结构程序框图的画法
例1 写出求1×2×3×4×5×…×n的值的算法步骤,并画出程序框图.
解 算法如下:
S1 输入n,设t的初始值为1.
S2 设i的初始值为2.
S3 如果i≤n,则执行第四步,否则,转去执行S7.
S4 计算t乘i并将结果赋给t.
S5 计算i加1并将结果赋给i.
S6 返回执行S3.
S7 输出t的值并结束算法.
根据自然语言描述,程序框图如图所示.
反思与感悟 这是一个累乘问题,重复进行了n-1次乘法,可以利用循环结构描述,需引入累乘变量t和计数变量i,这里t与i每循环一次,它们的值都在改变.
跟踪训练1 阅读如图的程序框图,运行相应的程序,则输出S的值为( )
A.-10 B.6 C.14 D.18
答案 B
解析 执行程序:S=20,i=1,i=2,
S=20-2=18;
i=4,S=18-4=14;
i=8,S=14-8=6,
满足i>5的条件,结束循环,
输出S的值为6,故选B.
题型二 含循环结构程序框图的设计
例2 设计算法求1×2×3×…×2 016×2 017的值,并画出程序框图.
解 算法如下:
S1 设M的值为1.
S2 设i的值为2.
S3 如果i≤2 017,则执行S4;否则执行S6.
S4 计算M=M×i.
S5 计算i=i+1,返回执行S3.
S6 输出M的值,并结束算法.
程序框图如图所示.
引申探究
若将本例中的积改为和,如何设计程序框图.
解 程序框图如下.
反思与感悟 利用循环结构解决问题的“三个确定”
(1)确定循环变量及初始值,弄清循环变量表示的意义、取值范围及变化规律.
(2)确定循环体的功能,根据实际情况确定采用哪种循环结构.
(3)确定循环结构的终止条件,弄清不等号的方向及是否含有等号.
跟踪训练2 执行如图所示的程序框图,输出的k值是( )
A.3 B.5 C.7 D.9
答案 B
解析 第一次循环:n=3×5+1=16,k=0+1=1,继续循环;
第二次循环:n==8,k=1+1=2,继续循环;
第三次循环:n==4,k=2+1=3,继续循环;
第四次循环:n==2,k=3+1=4,继续循环;
第五次循环:n==1,k=4+1=5,结束循环.输出k=5.故选B.
题型三 循环结构在实际中的应用
例3 以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来,请画出程序框图.
解 程序框图如图所示.
反思与感悟 应用循环结构解决实际问题的策略
跟踪训练3 某公司为激励广大员工的积极性,规定:若推销产品价值在10 000元之内的年终提成5%;若推销产品价值在10 000元以上(包括10 000元),则年终提成10%,设计一个求公司员工年终提成f(x)的算法的程序框图.
解 程序框图如图所示:
1.执行如图所示的程序框图后,输出的值为4,则P的取值范围是( )
A.<P≤ B.P>
C.<P≤ D.≤P<
答案 C
解析 ∵S<P时,执行循环体,S≥P时输出n=4,
∴S加上的最后一项为=,此时S=++=,∴≥P,结合输出的值为4知,<P≤.
2.运行如图所示的程序框图,则输出的T=________.
答案 20
解析 T=0,S=0,T>S不成立.
执行第一次循环后,S=4,n=2,T=2,2>4仍不成立.
执行第二次循环后,S=8,n=4,T=6,6>8仍不成立.
执行第三次循环后,S=12,n=6,T=12,,12>12仍不成立.
执行第四次循环后,S=16,n=8,T=20,20>16成立,
故输出T的值为20.
3.按照如图的程序框图运行,已知输入x的值为2+log23,则输出的y的值为________.
答案
解析 因为2+log23<2+log24=4,所以x=2+log23+1=3+log23>3+log22=4,故y=x==×=.
4.已知如图所示的程序框图.
若a=5,则输出b=________.
答案 26
解析 若a=5,程序执行“否”,计算b=52+1=26,
故b=26.
5.请认真阅读程序框图,
(1)写出每一个Ai的值;
(2)写出程序框图的输出结果S的值.
解 (1)A3=9,A4=11,A5=13,A6=15,A7=17.
(2)该程序的作用是累加并输出S=9+11+13+15+17的值.S=9+11+13+15+17=65.即输出结果S的值是65.
1.需要重复执行同一操作的结构称为循环结构,即从某处开始,按照一定条件反复执行某一处理步骤.反复执行的处理步骤称为循环体.
(1)循环结构中一定包含条件分支结构;
(2)在循环结构中,通常都有一个起循环计数作用的变量,这个变量的取值一般都含在执行或终止循环体的条件中.
2.程序框图中的任何结构内的每一部分都有机会被执行到,也就是说对每一个框来说都应当有一条从入口到出口的路径,在程序框图中是不允许有死循环出现的.
一、选择题
1.如图所示是一个循环结构的算法,下列说法不正确的是( )
A.①是循环变量初始化,循环就要开始
B.②为循环体
C.③是判断是否继续循环的终止条件
D.①可以省略不写
答案 D
2.在解决下列各问题的算法中,一定用到循环结构的是( )
A.求函数f(x)=3x2-2x+1当x=5时的值
B.用二分法求的近似值
C.求一个给定实数为半径的圆的面积
D.将给定的三个实数按从小到大排列
答案 B
解析 用二分法求的近似值,因为取中点验证函数值符号等步骤要重复执行,所以一定用到循环结构.
3.如图是求x1,x2,…,x10的乘积S的程序框图,图中空白框中应填入的内容为( )
A.S=S×(n+1) B.S=S×xn+1
C.S=S×n D.S=S×xn
答案 D
解析 赋值框内应为累乘积,累乘积=前面项累乘积×第n项,即S=S×xn.
4.某程序框图如图所示,该程序运行后输出的k的值是( )
A.4 B.5 C.6 D.7
答案 A
解析 k=0,S=0?S=1,
k=1?S=1+21=3,
k=2?S=3+23=11,
k=3?S=11+211>100,
k=4,故输出k=4.
5.如图是一个算法的程序框图,该程序所输出的结果是( )
A. B.
C. D.
答案 C
解析 运行第一次的结果为i=2,m=1,
n=0+=;
第二次i=3,m=2,n=+=;
第三次i=4,m=3,n=+=.
此时i=4程序终止,即输出n=.
6.某程序框图如图所示,则运行该程序后输出的S等于( )
A. B.
C. D.
答案 D
解析 执行程序框图,可得S=1,n=1,
不满足条件n>5,S=1+,n=2,
不满足条件n>5,S=1++,n=3,
不满足条件n>5,S=1+++,n=4,
不满足条件n>5,S=1++++,n=5,
不满足条件n>5,S=1+++++,n=6,
满足条件n>5,退出循环,输出S的值.
由于S=1+++++=,故选D.
7.某程序框图如图所示,若输出的S=57,则判断框内应为( )
A.k>4 B.k>5
C.k>6 D.k>7
答案 A
解析 当k=1时,k=k+1=2,S=2×1+2=4;
当k=2时,k=k+1=3,S=2×4+3=11;
当k=3时,k=k+1=4,S=2×11+4=26;
当k=4时,k=k+1=5,S=2×26+5=57.
此时S=57,循环结束,k=5,所以判断框中应为“k>4”.
8.如图所示的程序框图,输出S的值是,则判断框内应填( )
A.n<2 015 B.n≤2 014
C.n≤2 016 D.n≤2 015
答案 D
解析 由程序框图可知,该程序的功能是利用循环结构输出S=1××××…×=的值,
若输出S的值是=,
则循环变量的终值为2 015,
故判断框内应填入n≤2 015,故选D.
二、填空题
9.执行如图所示的程序框图,若输入n的值为3,则输出结果为________.
答案 8
解析 根据程序框图得,
第一次进入循环体后,S=1×2=2,k=1+1=2;
第二次进入循环体后,S=2×2=4,k=2+1=3;
第三次进入循环体后,S=4×2=8,k=3+1=4,
此时不满足条件k≤3,退出循环,故输出的结果是8.
10.执行如图所示的程序框图,输出T=________.
答案 30
解析 按照程序框图依次执行:
S=5,n=2,T=2;S=10,n=4,T=2+4=6;S=15,n=6,T=6+6=12;S=20,n=8,T=12+8=20;S=25,n=10,T=20+10=30>S,输出T=30.
11.执行如图所示的程序框图,若输入n=5,则输出k的值为________.
答案 3
解析 n=5,k=0?n=16,k=1?n=49,k=2?n=148,k=3?n=445>150,输出k=3.
12.阅读如图所示的程序框图,运行相应的程序,输出的结果是________.
答案 8
解析 由程序框图可知,程序运行时,数值S与n的对应变化如下表:
S
-1
2
n
2
4
8
故当S=2时,输出n=8.
三、解答题
13.设计求使1+2+3+4+5+…+n<100成立的最大自然数n的值的算法,并画出程序框图.
解 算法:
S1 令S=0,n=1.
S2 S=S+n.
S3 n=n+1.
S4 若S≥100,则输出n-2,结束算法;否则,返回S2.
程序框图如图所示.
四、探究与拓展
14.执行两次如图所示的程序框图,若第一次输入的a的值为-1.2,第二次输入的a的值为1.2,则第一次、第二次输出的a的值分别为( )
A.0.2,0.2 B.0.2,0.8 C.0.8,0.2 D.0.8,0.8
答案 C
解析 若第一次输入的a的值为-1.2,满足上面一个判断框条件a<0,
第1次循环,a=-1.2+1=-0.2,
第2次判断后循环,a=-0.2+1=0.8,
第3次判断,满足上面一个判断框的条件退出上面的循环,进入下面的循环,
不满足下面一个判断框条件a≥1,退出循环,输出a=0.8;
第二次输入的a的值为1.2,不满足上面一个判断框条件a<0,退出上面的循环,进入下面的循环,
满足下面一个判断框条件a≥1,
第1次循环,a=1.2-1=0.2,
第2次判断后不满足下面一个判断框的条件退出下面的循环,输出a=0.2.故选C.
15.用循环结构书写求1++++…+的算法,并画出相应的程序框图.
解 算法如下:
S1 S=0,i=1.
S2 S=S+.
S3 i=i+1.
S4 判断i>1 000是否成立,若成立执行S5,否则执行S2.
S5 输出S,结束算法.
相应的程序框图如图所示.
1.1.3 算法的三种基本逻辑结构和框图表示(二)
学习目标 1.掌握条件分支结构的程序框图的画法.2.能用条件分支结构框图描述分类讨论问题的算法.3.进一步熟悉程序框图的画法.
知识点一 条件分支结构
思考1 我们经常需要处理分类讨论的问题,顺序结构能否完成这一任务?为什么?
答案 分类讨论是带有分支的逻辑结构,而顺序结构是一通到底的“直肠子”,所以不能表达分支结构,这就需要条件分支结构出场.
思考2 有些问题需要按给定的条件进行分析、比较和判断,在程序框图结构中还能只用顺序结构吗?
答案 不能,顺序结构不能按给定的条件进行分析、比较和判断.
梳理 一些简单的算法可以用顺序结构来表示,但是这种结构无法描述要求进行逻辑判断,并根据判断结果进行不同处理的情况,因此,需要另一种逻辑结构来处理这类问题.这种结构叫做条件分支结构.
知识点二 条件分支结构的两种形式
结构形式
特征
两个步骤A,B根据条件选择一个执行
根据条件选择是否执行步骤A
知识点三 条件分支结构的嵌套
思考 条件分支结构中的判断框有两个出口,由此说明条件分支结构执行的结果不唯一,对吗?
答案 不对,判断框虽然有两个出口,但根据条件是否成立,选择的出口是确定的,故执行结果也是唯一的.
梳理 条件分支结构的嵌套实际上就是将一个条件分支结构置于另一个条件分支结构的分支中,这个分支结束后,要与另一个分支交汇.
1.条件分支结构的程序框图中含有顺序结构.( √ )
2.条件分支结构的程序框图中可以不含判断框.( × )
3.条件分支结构的判断条件要写在判断框内.( √ )
4.条件分支结构的两种形式执行结果可能不同.( × )
题型一 条件分支结构的概念
例1 (1)下列算法中,含有条件分支结构的是( )
A.求两个数的积
B.求点到直线的距离
C.解一元二次方程
D.已知梯形两底和高求面积
(2)条件分支结构不同于顺序结构的特征是( )
A.处理框 B.判断框
C.输入、输出框 D.起止框
(3)给出以下四个问题:
①输入一个数x,输出它的绝对值;
②求面积为6的正方形的周长;
③求a,b,c三个数中的最大值;
④求函数f(x)=的函数值.
其中需要用条件分支结构来描述算法的有( )
A.1个 B.2个
C.3个 D.4个
答案 (1)C (2)B (3)C
解析 (1)解一元二次方程时,当判别式Δ<0时,方程无解,当Δ≥0时,方程有解,由于分情况,故用到条件分支结构.
(2)在条件分支结构中含有判断框,而顺序结构中没有.
(3)①③④都要对条件作出判断,故需要用条件分支结构,②用顺序结构即可.
反思与感悟 条件分支结构中含有判断框,且判断框内相应的判定条件是依据所给具体问题设定的.
跟踪训练1 下列问题的算法适宜用条件分支结构表示的是( )
A.求点P(2,5)到直线l:3x-2y+1=0的距离
B.由直角三角形的两条直角边求斜边
C.解不等式ax+b>0(其中a≠0)
D.计算3个数的平均数
答案 C
解析 条件分支结构是处理逻辑判断并根据判断进行不同处理的结构,只有C中需判断a的符号,其余选项中都不含逻辑判断,故选C.
题型二 条件分支结构的应用
例2 如图所示的程序框图,若输出y的值为3,求输入的x值.
解 由程序框图可得y=当x≤0时,y∈(1,2],
此时不可能输出y=3;当x>0时,令y=2x+1=3,解得x=1,符合题意,故输入的x的值为1.
引申探究
本例中,若输入x的值为-1,则输出y的值为多少?
解 由x=-1<0,故y=2-1+1=,故y=,从而输出y的值为.
反思与感悟 先由条件作出判断,然后再决定选择哪一个步骤,在画框图时,必须用到条件分支结构.
跟踪训练2 画出计算函数y=|x-2|的函数值的程序框图.
解 算法如下:
S1 输入x.
S2 若x≥2,则y=x-2;否则y=2-x.
S3 输出y.
程序框图如下.
题型三 条件分支结构的嵌套
例3 解关于x的方程ax+b=0的算法的程序框图如何表示?
解 先设计算法步骤:
S1 输入实数a,b.
S2 判断a是否为0.若是,执行第三步,否则,计算x=-,并输出x,结束算法.
S3 判断b是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.
再用程序框图表达上述算法如图.
反思与感悟 我们现在使用的条件分支结构只提供2个出口,故当要分三类以上讨论时,往往需要在条件分支结构中再嵌套一个条件分支结构.
跟踪训练3 已知函数y=请设计一个程序框图,要求输入x的值,输出y的值.
解 程序框图如下.
1.在如图所示的程序框图中,若输出的y的值为26,则输入的x的值为( )
A.-4 B.-5 C.6 D.-6
答案 A
解析 由x2-2x+2=26,解得x=-4或x=6,由框图知,输入的x的值为-4.
2.若输入x=-5,按图中所示程序框图运行后,输出的结果是( )
A.-5 B.0
C.-1 D.1
答案 D
解析 因为x=-5,不满足x>0,所以在第一个判断框中执行“否”,在第二个判断框中,由于-5<0,执行“是”,所以得y=1.
3.对任意非零实数a、b,若a(b的运算原理如程序框图所示,则3(2=________.
答案 2
解析 由题意知,a=3,b=2,由程序框图得,3≤2不成立,故执行,得到3(2==2.
4.已知函数y=|x-3|,如图表示的是给定x的值,求其相应函数的值的算法.请将该程序框图补充完整,其中①处应填________,②处应填________.
答案 x<3或x≤3 y=x-3
解析 由已知得y=结合所给程序框图易得.
5.已知函数y=写出给定x的值求该函数的函数值的算法,并画出程序框图.
解 算法步骤如下:
S1 输入x.
S2 如果x<0,那么y=2x-1,否则,执行第三步.
S3 如果x<1,那么y=x+1,否则,执行第四步.
S4 y=x+2.
S5 输出y.
程序框图如图所示.
1.条件分支结构是程序框图的重要组成部分.其特点是先判断后执行.
2.在利用条件分支结构画程序框图时要注意两点:一是需要判断条件是什么,二是条件判断后分别对应着什么样的结果.
3.设计程序框图时,首先设计算法步骤,再转化为程序框图,待熟练后可以省略算法步骤直接画出程序框图.对于算法中分类讨论的步骤,通常设计成条件分支结构来解决.
一、选择题
1.求下列函数的函数值的算法中需要用到条件分支结构的是( )
A.f(x)=x2-1
B.f(x)=2x+1
C.f(x)=
D.f(x)=2x
答案 C
解析 C项中函数f(x)是分段函数,需分类讨论x的取值范围,要用条件分支结构来设计算法,A,B,D项中均不需要用条件分支结构.
2.已知a=,b=3,执行如图所示的程序框图,则输出的值为( )
A. B.
C. D.
答案 D
解析 由a=,b=3==2,知a>b不成立,
故输出=.
3.某市的士收费办法如下:不超过2公里收7元(即起步价7元),超过2公里的里程每公里收2.6元,另每车次超过2公里收燃油附加费1元(不考虑其他因素).相应收费系统的程序框图如图所示,则①处应填( )
A.y=7+2.6x B.y=8+2.6x
C.y=7+2.6(x-2) D.y=8+2.6(x-2)
答案 D
解析 当x>2时,2公里内的收费为7元,2公里外的收费为7+(x-2)×2.6(元),另外燃油附加费为1元,所以y=7+2.6(x-2)+1=8+2.6(x-2).
4.执行如图所示的程序框图,若输出结果为2,则输入的实数x的值是( )
A.3 B.
C.4 D.2
答案 C
解析 依题意,若x>1,
则令y=log2x=2,得x=4>1;
若x≤1,则令y=x-1=2,得x=3,但3>1,故舍去.
因此,若输出结果为2,
则输入的实数x的值是4,故选C.
5.如图所示的程序框图,如果输入三个实数a,b,c,要求输出这三个数中最大的数,那么在空白的判断框中,应该填入( )
A.c>x B.x>c
C.c>b D.b>c
答案 A
解析 从程序框图中可以看出,应填c>x,其含义是当c>x不成立时,说明x最大,输出x,当c>x成立时,执行x=c后,x的值变为c,从而输出x(也就是c).
6.如图给出了一个程序框图,其作用是输入x的值,输出相应的y值.若要使输入的x值与输出的y值相等,则这样的x值有( )
A.1个 B.2个
C.3个 D.4个
答案 C
解析 由题意得该程序的功能是计算并输出分段函数y=的值,
当x≤2时,由x=x2,解得x=0或x=1,
当2<x≤5时,由x=2x-4,解得x=4,
当x>5时,由x=,解得x=±1(舍去),
故满足条件的x值共有3个.故选C.
7.如图是计算函数y=的值的程序框图,在①②③处应分别填入的是( )
A.y=ln(-x),y=0,y=2x
B.y=ln(-x),y=2x,y=0
C.y=0,y=2x,y=ln(-x)
D.y=0,y=ln(-x),y=2x
答案 B
解析 ①处应填入当自变量x≤-2时的解析式,②处应填入当自变量x>3时的解析式,③处应填入当自变量-2<x≤3时的解析式,故选B.
8.程序框图如图所示,若输出y的值是4,则输入的实数x的值为( )
A.1 B.-2
C.1或2 D.1或-2
答案 D
解析 根据题意和程序框图可知,
程序框图反映的函数关系式为
y=
令y=4,解得当x<1时,x=-2;
当1≤x<10时,x=1;
当x≥10时无解.故选D.
二、填空题
9.已知函数y=图中表示的是给定x的值,求其对应的函数值y的程序框图.①处应填写______;②处应填写________.
答案 x<2 y=log2x
解析 框图中的①处就是分段函数解析式两种形式的判断条件,故填写x<2,②就是函数的另一段表达式y=log2x.
10.如图所示的程序框图中,当输入的数为3时,输出的结果为________.
答案 8
解析 ∵3<5,
∴y=32-1=8.
11.如图的程序框图的功能是计算函数______________的函数值.
答案 y=|2x-3|
12.某次考试,为了统计成绩情况,设计了如图所示的程序框图.当输入一个同学的成绩x=75时,输出结果为________.
答案 及格
解析 由于75<80,在程序框图中的第一个判断框中,将按“否”的指向进入第二个判断框,又因为75≥60,将按“是”的指向,所以输出的是“及格”.
三、解答题
13.有一城市,市区为半径为15 km的圆形区域,近郊区为距中心15~25 km 的范围内的环形地带,距中心25 km以外的为远郊区,如图所示.市区地价每公顷100万元,近郊区地价每公顷60万元,远郊区地价每公顷20万元,输入某一点的坐标为(x,y),求该点的地价,写出公式并画出程序框图.
解 设点(x,y)与市中心的距离为r,则r=,由题意知r与地价p的关系为p=
程序框图如下图.
四、探究与拓展
14.如图所示,是关于判断闰年的程序框图,则以下年份是闰年的为( )
A.1996年 B.1998年
C.2010年 D.2100年
答案 A
解析 由程序框图可知,闰年的年份能被4整除,但不能被100整除,或能被400整除,经检验知,只有选项A满足,故选A.
15.如图,x1,x2,x3为某次考试三个评阅人对同一道题的独立评分,p为该题的最终得分,当x1=6,x2=9,p=8.5时,x3=________.
答案 8
解析 x1=6,x2=9,|x1-x2|=3<2不成立,
即为“否”,所以再输入x3;
由绝对值的意义(一个点到另一个点的距离)和不等式
|x3-x1|<|x3-x2|知,
点x3到点x1的距离小于点x3到点x2的距离,
所以当x3<7.5时,
|x3-x1|<|x3-x2|成立,即为“是”,
此时x2=x3,所以p=,
即=8.5,解得x3=11>7.5,不合题意;
当x3>7.5时,|x3-x1|<|x3-x2|不成立,即为“否”,
此时x1=x3,所以p=,
即=8.5,
解得x3=8>7.5,符合题意.
1.2 基本算法语句
1.2.1 赋值、输入和输出语句
学习目标 1.了解学习程序语句的必要性和根本目的.2.理解赋值、输入和输出的格式和功能.3.能把本节涉及的程序框转化为相应的程序语句.
知识点一 赋值语句
思考1 计算机用变量来存取数据.怎样表示“把变量a,b中的数据相加,存入c中”?
答案 用赋值语句“c=a+b”.
思考2 输入语句和赋值语句都可以给变量赋值,二者有何不同?
答案 输入语句可使初始值与程序分开,利用输入语句改变初始数据时,程序不变,而赋值语句是程序的一部分,输入语句可对多个变量赋值,赋值语句只能给一个变量赋值.
思考3 赋值语句中的“=”和平时所用的“=”意义相同吗?
答案 意义不同,赋值语句中的“=”叫赋值号,它表示把右边的表达式所代表的常量、变量或算式赋给左边的变量,如C=Y+Z表示把计算Y+Z所得的值赋给C.
梳理 赋值语句
(1)格式:变量名=表达式.
(2)功能:将表达式所代表的值赋给变量.一般先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量.
知识点二 输入语句
思考1 一个计算圆的面积的程序,需要使用者输入什么信息?
答案 圆的半径.
思考2 输入语句所输入的内容可以是函数、变量或表达式吗?
答案 输入语句要求输入的值只能是具体的常数,不可以是函数、变量或表达式.如输入“5*3”或“x+2”等都不可以.
梳理 输入语句
在某些算法中,变量的初值要根据情况经常地改变.一般我们把程序和初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要每次程序运行时,输入相应的数据即可.这个过程在程序语言中,用“输入语句”来控制.“input”在计算机程序中,通常称为键盘输入语句.
知识点三 输出语句
思考1 一个程序如果没有输出语句,影响程序运行吗?你知道运行结果吗?
答案 不影响.程序照常运行,但运行结果就不会告诉你.
思考2 输出语句能否一次完成输出多个表达式的功能?
答案 能.
梳理 输出语句
任何求解问题的算法,都要把求解的结果“输出”,由此可知,任何程序语言也必须有“输出语句”来控制输出.
知识点四 算法语句中的表达方式
数学表达式
程序语句表达式
xa
x^a
2x
2*x
a/b
1.输入语句的作用是计算.( × )
2.输出语句的作用是实现算法的输出结果功能.( √ )
3.赋值语句的作用是把赋值号左边的值赋值给右边.( × )
题型一 赋值语句
例1 判断下列给出的赋值语句是否正确?为什么?
(1)赋值语句 3=B;
(2)赋值语句 x+y=0;
(3)赋值语句 A=B=-2;
(4)赋值语句 T=T*T.
解 (1)错,赋值语句中“=”号左边不能是常量;
(2)错,不能给一个表达式赋值;
(3)错,一个赋值语句只能给一个变量赋值;
(4)正确,该句的功能是将当前T的值平方后再赋给变量T.
反思与感悟 赋值号与数学中的等号的意义是不同的,赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值;如果已有值,则执行该语句,以赋值号右边表达式的值代替该变量原来的值,即将原值“冲掉”;赋值号的左边不能是常量,一个赋值语句的表达式不能出现两个及两个以上的赋值号.
跟踪训练1 判断下列各组语句是否正确.
(1)赋值语句r=9;
(2)赋值语句9=r;
(3)赋值语句R=r=9.
答案 (1)对,(2)错,(3)错.
题型二 输入语句
例2 写出鸡兔同笼问题的一个算法,画出相应算法的框图,写出计算机程序.
解 算法:
S1 输入鸡和兔的总数量M;
S2 输入鸡腿和兔腿的总数量N;
S3 鸡的数量A=;
S4 兔的数量B=M-A;
S5 输出A,B.
程序框图如图所示:
程序如下:
M=input(“How many heads”);
N=input(“How many legs”);
A=(4*M-N)/2;
B=M-A
A
B
反思与感悟 本题得出的程序本身没法得出A,B的值,只有把上述程序保存成一个文件,然后在Scilab界面内执行该程序,然后根据屏幕出现的提示内容,从键盘输入相应数据才能计算出结果.
跟踪训练2 “植树造林,防风抗沙”.某沙漠地区在2013年底有绿化带树林20 000亩.该地区每年春天都会种树400亩加以绿化,但同时每年冬天又会有总绿化面积的1%被沙漠化,问2016年底该地区总绿化面积S有多少亩?画出程序框图,并写出程序.
解 程序框图如图:
程序如下:
S=20 000;
S=(S+400(*(1-0.01(;
S=(S+400(*(1-0.01(;
S=(S+400(*(1-0.01(;
S
题型三 输出语句
例3 一个算法是,用Scilab中的rand( )函数,首先生成一个0~1之间的随机数并把它赋值给变量a,再把3赋值给变量b,把a+b赋值给变量c,最后把它们都输出到屏幕上.这个算法用Scilab程序写出,并用print(%io(2),a,b,c)语句控制输出,写出该程序.
解 程序如下:
a=rand((((;
b=3;
c=a+b;
print(%io(2(,a,b,c);
反思与感悟 (1)print(%io(2),表达式)中的表达式指程序要输出的数据,输出语句可以输出常量,变量或表达式的值.例如print(%io(2),B),print(%io(2),4*3)等.
(2)print(%io(2),a,b,c)中的参数%io(2)表示在屏幕上输出,print(%io(2),a,b,c)在屏幕上输出的顺序是c,b,a.
跟踪训练3 用描点法作函数y=2x3+3x2-12x+15的图象时,需要求出自变量与函数的一组对应值.编写该程序.
解 我们用Scilab语言来描述:
x=input(“x=”);
y=2*x^3+3*x^2-12*x+15;?
print(%io(2),y,x);
1.将两个数a=8,b=17交换,使a=17,b=8,下面语句正确的一组是( )
a=b
b=a
A.
c=b
b=a
a=c
B.
b=a
a=b
C.
a=c
c=b
b=a
D.
答案 B
解析 先把b的值赋给中间变量c,于是c=17;再把a的值赋给变量b,于是b=8;最后把c的值赋给变量a,于是a=17.
2.下面算法执行后的结果为________.
a=2;
a=4;
a=a+a;
a
答案 8
解析 先把2赋给a,然后又把4赋给a,此时a的原值2被4“冲掉”,所以a的值为4,最后把4+4再赋给a,因此输出的a的值为8.
3.下面算法执行后的结果为________.
a=2;
b=3;
c=a+b;
b=a+c-b;
print(%io(2(,a,b,c(;
答案 5,4,2
解析 由于把2+3的值赋给c,所以c的值为5,又把2+5-3的值赋给b,所以b的值为4,a的值没有变化仍为2.
4.下列程序的运行结果是________.
a=2;
b=3;
c=4;
a=b;
b=a+c;
c=b+a;
a=(a+b+c(/2;
print(%io(2(,a(;
答案 10
解析 ∵a=2,b=3,c=4,
∴执行程序语句后,a=b=3,b=a+c=7,c=b+a=10,
a===10.故程序的运行结果为10.
5.已知三角形的三边长分别为a,b,c,借助海伦公式求三角形的面积.
解 程序如下:
a=input(“a=”(;
b=input(“b=”(;
c=input(“c=”(;
p=(a+b+c(/2;
S=sqrt(p*(p-a(*(p-b(*(p-c((;
print(%io(2(,S(;
1.赋值语句中的“=”称作赋值号,而不是“等号”;格式中右边“表达式”可以是一个数值、常量或算式,如果“表达式”是一个算式,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量.
2.需输入信息时用input语句,需输出信息时用print语句,当变量需要的数据较少或给变量赋予算式时,用赋值语句,当变量需要输入多组数据且程序重复使用时,使用输入语句较好.
一、选择题
1.下列给出的赋值语句中正确的是( )
A.4=M B.M=-M
C.B=A=3 D.x+y=0
答案 B
解析 赋值语句的格式:变量=表达式,是将右边表达式的值赋给左边的变量,赋值时左右两端不能对换,也不能进行字符运算.故选B.
2.下列给变量赋值的语句正确的是( )
A.5=a B.a+2=a
C.a=b=4 D.a=2*a
答案 D
解析 A错,因为赋值语句的左右两边不能对换,赋值语句是将赋值号右边表达式的值赋给赋值号左边的变量;B错,赋值语句左边是一个变量,而不是代数式;C错,因为赋值语句不能把一个值同时赋给两个变量;D正确.
3.赋值语句N=N+1的意义是( )
A.N等于N+1
B.N+1等于N
C.将N的值赋给N+1
D.将N的原值加1再赋给N,即N的值增大1
答案 D
解析 赋值语句的一般格式:变量名=表达式.赋值语句的作用是将表达式所代表的值赋给变量.故选D.
4.下列程序执行后,变量a,b的值分别为( )
a=15;
b=20;
a=a+b;
b=a-b;
a=a-b;
print(%io(2(,a,b(;
A.15,20 B.35,35 C.5,5 D.-5,-5
答案 A
解析 根据赋值语句的意义,先把a+b=35赋给a,然后把a-b=35-20=15赋给b,最后再把a-b=35-15=20赋给a.
5.执行“print(%io(2),3+2)”的输出结果是( )
A.3+2=3+2 B.3+2=5
C.5 D.5=5
答案 C
解析 在屏幕上输出3+2的运算结果,即5,故选C.
6.给出下面一个程序:
A=5;
B=8;
X=A;
A=B;
B=X+A;
print(%io(2(,A,B(;
此程序运行的结果是( )
A.5,8 B.8,5 C.13,8 D.5,13
答案 C
解析 此程序先将A的值赋给X,再将B的值赋给A,再将X+A的值赋给B,即将原来的A与B的和赋给B,最后A的值是原来B的值8,而B的值是两数之和13.
7.下列给出的输入、输出语句正确的是( )
①input a;b;c;②input x=4;③print A=4;④print(%io(2),a).
A.①② B.②③ C.③④ D.④
答案 D
解析 由输入、输出语句的格式知,只有④正确,故选D.
8.给出下列程序,输入x=2,y=3,则输出( )
x=input(“x=”(;
y=input(“y=”(;
A=x;
x=y;
y=A;
print(%io(2(,x,y(;
A.2,3 B.2,2 C.3,3 D.3,2
答案 A
解析 该程序的运行过程是
输入2,3
A=2
x=3
y=2
输出2,3.
二、填空题
9.下面一段程序执行后的结果是________.
A=2;
A=A*2;
A=A+6;
print(%io(2(,A(;
答案 10
解析 先把2赋给A,然后把A*2=4赋给A,即A的值为4,再把4+6=10赋给A,所以输出的A值为10.
10.下面的程序输出的结果是________.
a=2
b=5
c=a+b
a=c+4
print a,b
答案 11,5
解析 第三句给c赋值后c=7,第四句给a赋值后a=11,故最后输出11,5.
11.读程序Ⅰ,Ⅱ,若两程序输入值与执行结果均分别相同,则两程序的输入值为________,执行结果为________.
程序Ⅰ: 程序Ⅱ:
x=input(“x=”); ?x=input(“x=”);
y=x+2; y=2*x+2
print(%io(2),y); print(%io(2),y);
答案 0 2
解析 两程序输入值、执行结果相同,即求直线y=x+2与y=2x+2的交点.
12.下面程序的运行结果为__________.
a=2;
b=3;
c=4;
a=b;
b=c+2;
c=b+4;
d=(a+b+c(/3;
print(%io(2(,d(;
答案
解析 ∵a=b=3,b=c+2=4+2=6,c=b+4=6+4=10,
∴d=(a+b+c)=×(3+6+10)=.
三、解答题
13.对于平面直角坐标系中给定的两点A(a,b),B(c,d),编写一个程序,要求输入两点的坐标,输出这两点间的距离.
解 程序如下:
a=input(“a=”(;
b=input(“b=”(;
c=input(“c=”(;
d=input(“d=”(;
D=sqrt((a-c(*(a-c(+(b-d(*(b-d((;
print(%io(2(,D(;
14.编写一个程序,要求输入两个正数a,b的值,输出ab和ba的值.
解 程序如下:
a=input(“a=”(;
b=input(“b=”(;
c=a^b;
d=b^a;
print(%io(2(,d,c(;
15.读用Scilab语句编写的程序,根据程序画出程序框图.
x=input(“x=”);
y=input(“y=”);
print(%io(2),x/4);
print(%io(2),2*y);
x=x+2;
y=y-1;
print(%io(2),x);
print(%io(2),y);
解 程序框图如图所示:
课件33张PPT。1.2.1 赋值、输入和输出语句第一章 1.2 基本算法语句学习目标
1.了解学习程序语句的必要性和根本目的.
2.理解赋值、输入和输出的格式和功能.
3.能把本节涉及的程序框转化为相应的程序语句.问题导学达标检测题型探究内容索引问题导学知识点一 赋值语句思考1 计算机用变量来存取数据.怎样表示“把变量a,b中的数据相加,存入c中”?
思考2 输入语句和赋值语句都可以给变量赋值,二者有何不同? 答案 用赋值语句“c=a+b”.
答案 输入语句可使初始值与程序分开,利用输入语句改变初始数据时,程序不变,而赋值语句是程序的一部分,输入语句可对多个变量赋值,赋值语句只能给一个变量赋值. 思考3 赋值语句中的“=”和平时所用的“=”意义相同吗? 答案 意义不同,赋值语句中的“=”叫赋值号,它表示把右边的表达式所代表的常量、变量或算式赋给左边的变量,如C=Y+Z表示把计算Y+Z所得的值赋给C. 梳理 赋值语句
(1)格式: .
(2)功能:将表达式所代表的值赋给变量.一般先计算“=”右边_____
,然后把这个值赋给“=”左边的 .变量名=表达式表达式的值变量思考1 一个计算圆的面积的程序,需要使用者输入什么信息?
思考2 输入语句所输入的内容可以是函数、变量或表达式吗? 知识点二 输入语句答案 圆的半径.
答案 输入语句要求输入的值只能是具体的常数,不可以是函数、变量或表达式.如输入“5*3”或“x+2”等都不可以. 梳理 输入语句
在某些算法中,变量的初值要根据情况经常地改变.一般我们把程序和初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要每次程序运行时,输入相应的数据即可.这个过程在程序语言中,用“ ”来控制.“ ”在计算机程序中,通常称为键盘输入语句.输入语句input知识点三 输出语句思考1 一个程序如果没有输出语句,影响程序运行吗?你知道运行结果吗?
思考2 输出语句能否一次完成输出多个表达式的功能?答案 不影响.程序照常运行,但运行结果就不会告诉你.
答案 能. 梳理 输出语句
任何求解问题的算法,都要把求解的结果“输出”,由此可知,任何程序语言也必须有“ ”来控制输出.输出语句知识点四 算法语句中的表达方式[思考辨析 判断正误]
1.输入语句的作用是计算.( )
2.输出语句的作用是实现算法的输出结果功能.( )
3.赋值语句的作用是把赋值号左边的值赋值给右边.( )×√×题型探究例1 判断下列给出的赋值语句是否正确?为什么?
(1)赋值语句 3=B;
(2)赋值语句 x+y=0;
(3)赋值语句 A=B=-2;
(4)赋值语句 T=T*T.题型一 赋值语句解答解 错,赋值语句中“=”号左边不能是常量;
解 错,不能给一个表达式赋值;
解 错,一个赋值语句只能给一个变量赋值;
解 正确,该句的功能是将当前T的值平方后再赋给变量T. 反思与感悟 赋值号与数学中的等号的意义是不同的,赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值;如果已有值,则执行该语句,以赋值号右边表达式的值代替该变量原来的值,即将原值“冲掉”;赋值号的左边不能是常量,一个赋值语句的表达式不能出现两个及两个以上的赋值号.跟踪训练1 判断下列各组语句是否正确.
(1)赋值语句r=9;
(2)赋值语句9=r;
(3)赋值语句R=r=9.答案答案 对,
答案 错,
答案 错.题型二 输入语句例2 写出鸡兔同笼问题的一个算法,画出相应算法的框图,写出计算机程序.解答解 算法:
S1 输入鸡和兔的总数量M;
S2 输入鸡腿和兔腿的总数量N;S4 兔的数量B=M-A;
S5 输出A,B.
程序框图如图所示:程序如下:M=input(“How many heads”);
N=input(“How many legs”);
A=(4*M-N)/2;
B=M-A
A
B反思与感悟 本题得出的程序本身没法得出A,B的值,只有把上述程序保存成一个文件,然后在Scilab界面内执行该程序,然后根据屏幕出现的提示内容,从键盘输入相应数据才能计算出结果.跟踪训练2 “植树造林,防风抗沙”.某沙漠地区在2013年底有绿化带树林20 000亩.该地区每年春天都会种树400亩加以绿化,但同时每年冬天又会有总绿化面积的1%被沙漠化,问2016年底该地区总绿化面积S有多少亩?画出程序框图,并写出程序.解答解 程序框图如图:
程序如下: S=20 000;
S=(S+400)*(1-0.01);
S=(S+400)*(1-0.01);
S=(S+400)*(1-0.01);
S例3 一个算法是,用Scilab中的rand( )函数,首先生成一个0~1之间的随机数并把它赋值给变量a,再把3赋值给变量b,把a+b赋值给变量c,最后把它们都输出到屏幕上.这个算法用Scilab程序写出,并用print(%io(2),a,b,c)语句控制输出,写出该程序.题型三 输出语句解答解 程序如下:a=rand( );
b=3;
c=a+b;
print(%io(2),a,b,c);反思与感悟 (1)print(%io(2),表达式)中的表达式指程序要输出的数据,输出语句可以输出常量,变量或表达式的值.例如print(%io(2),B),print(%io(2),4*3)等.
(2)print(%io(2),a,b,c)中的参数%io(2)表示在屏幕上输出,print(%io(2),a,b,c)在屏幕上输出的顺序是c,b,a.跟踪训练3 用描点法作函数y=2x3+3x2-12x+15的图象时,需要求出自变量与函数的一组对应值.编写该程序.解 我们用Scilab语言来描述:解答x=input(“x=”);
y=2*x^3+3*x^2-12*x+15;
print(%io(2),y,x);达标检测答案解析1.将两个数a=8,b=17交换,使a=17,b=8,下面语句正确的一组是
A. B. C. D. 12345解析 先把b的值赋给中间变量c,于是c=17;
再把a的值赋给变量b,于是b=8;
最后把c的值赋给变量a,于是a=17.√a=b
b=ac=b
b=a
a=cb=a
a=ba=c
c=b
b=a解析2.下面算法执行后的结果为_____.解析 先把2赋给a,然后又把4赋给a,此时a的原值2被4“冲掉”,
所以a的值为4,最后把4+4再赋给a,
因此输出的a的值为8.12345a=2;
a=4;
a=a+a;
a答案8解析3.下面算法执行后的结果为________.12345解析 由于把2+3的值赋给c,所以c的值为5,
又把2+5-3的值赋给b,
所以b的值为4,a的值没有变化仍为2.a=2;
b=3;
c=a+b;
b=a+c-b;
print(%io(2),a,b,c);答案5,4,2答案解析4.右列程序的运行结果是_____.1012345解析 ∵a=2,b=3,c=4,
∴执行程序语句后,a=b=3,b=a+c=7,c=b+a=10,a=2;
b=3;
c=4;
a=b;
b=a+c;
c=b+a;
a=(a+b+c)/2;
print(%io(2),a);故程序的运行结果为10.123455.已知三角形的三边长分别为a,b,c,借助海伦公式求三角形的面积.解 程序如下:解答a=input(“a=”);
b=input(“b=”);
c=input(“c=”);
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
print(%io(2),S);1.赋值语句中的“=”称作赋值号,而不是“等号”;格式中右边“表达式”可以是一个数值、常量或算式,如果“表达式”是一个算式,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量.
2.需输入信息时用input语句,需输出信息时用print语句,当变量需要的数据较少或给变量赋予算式时,用赋值语句,当变量需要输入多组数据且程序重复使用时,使用输入语句较好.1.2.2 条件语句
学习目标 1.了解条件语句和条件分支结构之间的对应关系.2.理解条件语句的语法规则和用算法解决问题的一般步骤.3.能够用条件语句编写条件分支结构的程序.
知识点一 条件语句的概念
处理条件分支逻辑结构的算法语句,叫做条件语句.
知识点二 条件语句的类型、格式、功能
格式一
格式二
条件语句
if 表达式
??语句序列1;
end
if 表达式
语句序列1;
else
语句序列2;
end
语句功能
如果表达式的结果为真,则执行语句序列1,否则跳过语句序列1.
如果表达式结果为真,则执行语句序列1;如果表达式结果为假,则执行语句序列2
对应条件结构框图
1.条件语句中必须有else和end.( × )
2.条件语句中可以没有end.( × )
3.条件语句中可以没有else,但是必须有end.( √ )
4.条件语句中可以没有end,但是必须有else.( × )
题型一 条件语句的理解
例1 编写程序,输入两个不等的实数,由大到小输出这两个数.
解 程序如下:
a=input(“a=”(;
b=input(“b=”(;
if a<b
t=a;
a=b;
b=t;
end
a
b
反思与感悟 (1)条件语句的执行顺序与算法框图中的选择结构的执行顺序一致,先对条件进行判断,满足条件,则执行该条件下的语句,不满足条件,则执行下一步.
(2)条件语句一般用在需要对条件进行判断的算法设计中,这与逻辑结构中的选择结构一致.
(3)if代表条件语句的开始,end代表条件语句的结束,这两点是判断一个语句是否是条件语句的关键.
跟踪训练1 根据输入的x值计算y的值,y=利用条件语句编写程序,并画出相应的程序框图.
解 程序如下:
x=input(“x=”(;
if x<=2.5
y=x^2+1;
else
y=x^2-1;
end
print(%io(2(,y(;
程序框图如图所示.
题型二 条件语句的编写
例2 编写程序,根据输入的x值,计算y的值,并输出y的值,y=
解 程序如下:
x=input(“x=”);
if x<1
y=-2*x+1;
else
y=2*x-1;
end
print(%io(2((y);
引申探究
若本例中条件不变,请画出相应的程序框图.
解 程序框图如图所示.
反思与感悟 使用条件语句时的三个关注点
(1)条件语句是一个语句,if,else,end都是语句的一部分.
(2)条件语句必须是以if开始,以end结束,一个if必须与一个end相对应.
(3)为了程序的可读性,一般if,else,end顶格书写,其他的语句体前面空两格.
跟踪训练2 设计一个程序,输入一个学生的成绩S,根据该成绩的不同值进行以下输出:若S<60,则输出“不及格”;若60≤S≤90,则输出“及格”;若S>90,则输出“优秀”.
解 程序如下:
S=input(“S=”(;
if S<60
disp(“不及格”(;
else
if S>90
disp(“优秀”(;
else
disp(“及格”(;
end
end
题型三 条件语句的嵌套
例3 若有以下程序:
x=input(“x=”(;
if x<=-1
f(x(=x+2;
else
if x<=1
f(x(=x^2;
else
f(x(=-x+2;
end
end
print(%io(2(,f(x((;
根据上面的程序,若函数g(x)=f(x)-m在R上有且只有两个零点,则实数m的取值范围为________.
答案 (-∞,0)∪{1}
解析 由题意知,该程序的作用是计算分段函数
f(x)=的函数值.
其函数图象如图.
又∵函数g(x)=f(x)-m在R上有且只有两个零点,
∴由图象可得m<0或m=1.
反思与感悟 在某些较为复杂的算法中,有时需要按条件要求执行的某一语句(特别是else后的语句序列2)继续按照另一条件进行判断,这时可以再利用一个条件语句完成这一要求,这就形成了条件语句的嵌套,其一般形式是:
if 表达式1
语句序列1;
else
if 表达式2
语句序列2;
else
语句序列3;
end
end
注意:end是“出口”,是条件语句的结束符号,在书写程序时不要漏掉.当出现条件语句的嵌套时,每一个if对应着一个end.
跟踪训练3 已知程序:
x=input(“x=”(;
if x>-1 and x<0
y=-x;
else
if x>=0 and x<1
y=x^2;
else
if x>=1 and x<=2
y=x;
end
end
end
print(%io(2(,y(;
如果分别输入x=,x=,则输出的结果分别为________.
答案 ,
解析 当-1<x<0时,y=-x;当0≤x<1时,y=x2;当1≤x≤2时,y=x,
即函数的解析式为y=
当x=时,y=;当x=时,y=.
1.当a=1,b=3时,执行完下面一段程序后x的值是( )
if a<b
x=a+b;
else
x=a-b;
end
x
A.1 B.3 C.4 D.-2
答案 C
解析 因为1<3满足a<b,故x=1+3=4,故选C.
2.给出下列程序:
x1=input(“x1=”(;
x2=input(“x2=”(;
if x1=x2
x1=x1+x2;
end
y=x1+x2;
print(%io(2(,y(;
如果输入x1=2,x2=3,那么执行程序后,输出的结果是( )
A.7 B.10 C.5 D.8
答案 C
解析 因为x1=2,x2=3,故x1≠x2,得y=x1+x2=2+3=5.
3.根据下列算法语句,当输入x为60时,输出y的值为( )
x=input(“x=”);
if x≤50
y=0.5*x;
else
y=25+0.6*(x-50);
end
print(%io(2(( y(((
A.25 B.30 C.31 D.61
答案 C
解析 由题意,得y=
当x=60时,y=25+0.6×(60-50)=31.
∴输出y的值为31.
4.下面的程序运行后输出的结果为______.
x=5;
y=-20;
if x<0
x=y-3;
else
y=y+3;
end
print(%io(2(,x-y,y-x(;
答案 -22,22
解析 因为x=5>0,根据题意,
执行y=y+3,y=-20+3=-17,
因此x-y=5-(-17)=22,y-x=-17-5=-22.
输出的结果y-x在前,x-y在后,
所以答案为-22,22.
5.儿童乘坐火车时,若身高不超过1.1 m,则无需购票;若身高超过1.1 m不超过1.4 m,只需买半票;若身高超过1.4 m,则买全票.试写出一个购票算法程序.
解 程序如下:
h=input(“h=”);
if h<=1.1
print(%io(2),“免费乘车”);
else
if h<=1.4
print(%io(2),“半票乘车”);
else
print(%io(2),“全票乘车”);
end
end
使用条件语句时应注意的问题:
(1)对于条件语句,要先看输入的值是否符合条件,再进一步执行合适的步骤;
(2)如果程序中只需对条件为真的情况作出处理,不用处理条件为假的情况时,else分支可以省略,此时条件语句就由双支变为单支;
(3)分段函数需要多重判断,可以利用条件语句的嵌套式结构.
一、选择题
1.当a=3时,下面的程序段输出的结果是( )
a=input(“a=”((
if a<10
y=a;
else
y=a*a;
end
print(%io(2(,y(;
A.9 B.3 C.10 D.6
答案 B
解析 此程序段的功能是求分段函数y=的函数值,当a=3时,y=3.故选B.
2.已知程序如下:
x=3;
if x>3
y=x^2;
else
y=2*x;
end
print(%io(2(,y(;
该程序运行后,y的值是( )
A.3 B.6
C.9 D.27
答案 B
解析 依题意知,x=3,得y=2x=2×3=6.
3.给出以下四个问题,其中不需要用条件语句来描述其算法的有( )
①输入一个数x,输出它的绝对值;
②求函数f(x)=的函数值;
③求面积为6的正方形的周长;
④求三个数a,b,c中的最大数.
A.1个 B.2个
C.3个 D.4个
答案 A
解析 在算法中需要逻辑判断的都要用到条件语句,其中①②④都需要进行逻辑判断,故都要用到条件语句,③只要顺序结构就能描述其算法.
4.阅读下列程序,
x=4;
if x>3
y=x*x;
else
y=2*x;
end
print(%io(2(,y(;
则该程序运行后,变量y的值为( )
A.4 B.16
C.6 D.8
答案 B
解析 因为x=4满足“x>3”的条件,所以执行的是y=x2=4×4=16.
5.下面程序输入“x=π”时的运算结果是( )
x=input(“x=”(;
if x>0
y=-2;
else
if x=0
y=0;
else
y=2;
end
end
print(%io(2(,y(;
A.-2 B.1
C.π D.2
答案 A
解析 此程序表示的函数为分段函数y=故x=π时,y=-2.
6.为了在运行下面的程序之后得到输出y=9,x输入的值应该是( )
x=input(“x=”(;
if x<0
y=(x+1(*(x+1(;
else
y=(x-1(*(x-1(;
end
print(%io(2(,y(;
A.-4 B.-2
C.4或-4 D.2或-2
答案 C
解析 此程序表示的函数为分段函数,
y=
若x<0,则由(x+1)2=9得x=-4;
若x≥0,则由(x-1)2=9得x=4.
7.下列程序语句是求函数y=|x-4|+1的函数值,则①处为( )
x=input(“x=”(;
if x>=4
y=x-3;
else
①
end
print(%io(2(,y(;
A.y=3-x B.y=x-5
C.y=5-x D.y=ABS(x-4)+1
答案 C
解析 ∵y=|x-4|+1=故选C.
8.下面程序在开始运行后,通过键盘输入三个值a=3,b=24,c=7,则输出的结果是( )
程序:
a=input(“a=”(;
b=input(“b=”(;
c=input(“c=”(;
if b>a
t=a,a=b,b=t;
end
if c>a
t=a,a=b,b=t;
end
if c>b
t=b,b=c,c=t;
end
print(%io(2(,a,b,c(;
A.3,24,7 B.3,7,24
C.24,7,3 D.7,3,24
答案 B
解析 当a=3,b=24,c=7时,此时b>a,
首先是a,b交换数值即a=24,b=3,c=7,
又此时c>b,执行的程序是b,c交换数值,
即b=7,c=3,所以a=24,b=7,c=3.
二、填空题
9.给出如下程序,运行后输出的结果为________.
x=5;
y=-12;
if x<0
x=y-3;
else
x=y+3;
end
S=x-y;
print(%io(2(,S(;
答案 3
解析 ∵x=5不满足x<0,∴x=y+3=-12+3=-9,
∴S=x-y=-9-(-12)=3.
10.给出下列程序:
x=input(“x=”);
if x<10
p=x*5;
else
p=1010*5+(x-15)*7;
end
print(%io(2(,P(;
若输入x=6,则p=____,若输入x=18,则p=______.
答案 30 71
解析 此程序是求函数p=的值,
当x=6时,p=6×5=30;
当x=18时,p=10×5+(18-15)×7=50+21=71.
11.若下面程序执行的结果是5,则输入的x值是__________________________.
x=input(“x=”(;
if x>=0
y=x;
else
y=-x;
end
print(%io(2(,y(;
答案 5或-5
解析 由程序语句知,该程序的功能是输入一个x,
输出函数y=的值,若输出5,则应输入5或-5.
12.下列程序语句的算法功能是________.
a=input(“a=”(;
b=input(“b=”(;
c=input(“c=”(;
if a<b
a=b;
end
if a<c
a=c;
end
print(%io(2(,a(;
答案 输出a,b,c三个数中的最大数
解析 由程序语句可知,当比较a,b的大小后,选择较大的数赋给a;当比较a,c的大小后,选择较大的数赋给a;最后输出a,所以此程序的作用是输出a,b,c中最大的数.
13.下面的程序是求一个函数的函数值的程序:
x=input(“x=”(;
if x<=0
y=-x;
else
if x>0 and x<=1
y=0;
else
y=x-1;
end
end
print(%io(2(,y(;
若执行此程序的结果为3,则输入的x值为________.
答案 4或-3
解析 此程序是求函数y=的值.
若输出的结果为3,则有可能x-1=3即x=4,或-x=3即x=-3.
三、解答题
14.已知函数y=试写出程序,根据输入的x值,输出相应的y值.
解 程序为
x=input(“x=”(;
if x<0
??y=x^2-3;
else
if x>0
y=x/2+5;
else
y=0;
end
end
print(%io(2(,y(;
四、探究与拓展
15.如图所示,在边长为16的正方形ABCD的边上有一动点P,点P沿边线由B→C→D→A(B为起点,A为终点)运动.若设P运动的路程为x,△APB的面积为y,试写出程序,根据输入的x值,输出相应的y值.
解 由题意可得函数关系式为y=
程序如下:
x=input(“x=”);(
if(x>0 and x<=16(
((y=8*x;(
else(
((if(x<=32(
((((y=128;(
((else(
((((y=8*(48-x);(
((end(
end(
print(%io(2),y);
课件30张PPT。1.2.2 条件语句第一章 1.2 基本算法语句学习目标
1.了解条件语句和条件分支结构之间的对应关系.
2.理解条件语句的语法规则和用算法解决问题的一般步骤.
3.能够用条件语句编写条件分支结构的程序.问题导学达标检测题型探究内容索引问题导学知识点一 条件语句的概念处理 分支逻辑结构的算法语句,叫做条件语句.条件语句序列1知识点二 条件语句的类型、格式、功能[思考辨析 判断正误]
1.条件语句中必须有else和end.( )
2.条件语句中可以没有end.( )
3.条件语句中可以没有else ,但是必须有end.( )
4.条件语句中可以没有end ,但是必须有else.( )××√×题型探究例1 编写程序,输入两个不等的实数,由大到小输出这两个数.题型一 条件语句的理解解答解 程序如下:a=input(“a=”);
b=input(“b=”);
if a<b
t=a;
a=b;
b=t;
end
a
b反思与感悟 (1)条件语句的执行顺序与算法框图中的选择结构的执行顺序一致,先对条件进行判断,满足条件,则执行该条件下的语句,不满足条件,则执行下一步.
(2)条件语句一般用在需要对条件进行判断的算法设计中,这与逻辑结构中的选择结构一致.
(3)if代表条件语句的开始,end代表条件语句的结束,这两点是判断一个语句是否是条件语句的关键.解答解 程序如下:程序框图如图所示.x=input(“x=”);
if x<=2.5
y=x^2+1;
else
y=x^2-1;
end
print(%io(2),y);题型二 条件语句的编写解答解 程序如下:x=input(“x=”);
if x<1
y=-2*x+1;
else
y=2*x-1;
end
print(%io(2),y);引申探究
若本例中条件不变,请画出相应的程序框图.解 程序框图如图所示.解答反思与感悟 使用条件语句时的三个关注点
(1)条件语句是一个语句,if,else,end都是语句的一部分.
(2)条件语句必须是以if开始,以end结束,一个if必须与一个end相对应.
(3)为了程序的可读性,一般if,else,end顶格书写,其他的语句体前面空两格.跟踪训练2 设计一个程序,输入一个学生的成绩S,根据该成绩的不同值进行以下输出:若S<60,则输出“不及格”;若60≤S≤90,则输出“及格”;若S>90,则输出“优秀”.解答解 程序如下:S=input(“S=”);
if S<60
disp(“不及格”);
else
if S>90
disp(“优秀”);
else
disp(“及格”);
end
End例3 若有如右程序:根据右面的程序,若函数g(x)=f(x)-m在R上有且只有两个零点,则实数m的取值范围为_______________. 题型三 条件语句的嵌套x=input(“x=”);
if x<=-1
f(x)=x+2;
else
if x<=1
f(x)=x^2;
else
f(x)=-x+2;
end
end
print(%io(2),f(x));答案解析(-∞,0)∪{1}解析 由题意知,该程序的作用是计算分段函数其函数图象如图.
又∵函数g(x)=f(x)-m在R上有且只有两个零点,
∴由图象可得m<0或m=1. 反思与感悟 在某些较为复杂的算法中,有时需要按条件要求执行的某一语句(特别是else后的语句序列2)继续按照另一条件进行判断,这时可以再利用一个条件语句完成这一要求,这就形成了条件语句的嵌套,其一般形式是:
注意:end是“出口”,是条件语句的结束符号,在书写程序时不要漏掉.当出现条件语句的嵌套时,每一个if对应着一个end. if 表达式1
语句序列1;
else
if 表达式2
语句序列2;
else
语句序列3;
end
end跟踪训练3 已知程序:x=input(“x=”);
if x>-1 and x<0
y=-x;
else
if x>=0 and x<1
y=x^2;
else
if x>=1 and x<=2
y=x;
end
end
end
print(%io(2),y);答案解析解析 当-1<x<0时,y=-x;
当0≤x<1时,y=x2;
当1≤x≤2时,y=x,达标检测答案解析1.当a=1,b=3时,执行完右面一段程序后x的值是
A.1 B.3
C.4 D.-2 √12345解析 因为1<3满足a<b,
故x=1+3=4,故选C.if a<b
x=a+b;
else
x=a-b;
end
x答案解析2.给出右侧程序:如果输入x1=2,x2=3,那么执行程序后,输出的结果是
A.7 B.10
C.5 D.8 12345√x1=input(“x1=”);
x2=input(“x2=”);
if x1=x2
x1=x1+x2;
end
y=x1+x2;
print(%io(2),y);解析 因为x1=2,x2=3,
故x1≠x2,
得y=x1+x2=2+3=5.3.根据右列算法语句,当输入x为60时,输出y的值为
A.25 B.30
C.31 D.61 12345解析答案√x=input(“x=”);
if x≤50
y=0.5*x;
else
y=25+0.6*(x-50);
end
print(%io(2), y );当x=60时,y=25+0.6×(60-50)=31.
∴输出y的值为31.答案解析4.右面的程序运行后输出的结果为________.12345-22,22x=5;
y=-20;
if x<0
x=y-3;
else
y=y+3;
end
print(%io(2),x-y,y-x);解析 因为x=5>0,根据题意,
执行y=y+3,y=-20+3=-17,
因此x-y=5-(-17)=22,
y-x=-17-5=-22.
输出的结果y-x在前,x-y在后,
所以答案为-22,22.解答123455.儿童乘坐火车时,若身高不超过1.1 m,则无需购票;若身高超过1.1 m不超过1.4 m,只需买半票;若身高超过1.4 m,则买全票.试写出一个购票算法程序.12345解 程序如下:h=input(“h=”);
if h<=1.1
print(%io(2),“免费乘车”);
else
if h<=1.4
print(%io(2),“半票乘车”);
else
print(%io(2),“全票乘车”);
end
end使用条件语句时应注意的问题:
(1)对于条件语句,要看输入的值是否符合条件,再进一步执行合适的步骤;
(2)如果程序中只需先对条件为真的情况作出处理,不用处理条件为假的情况时,else分支可以省略,此时条件语句就由双支变为单支;
(3)分段函数需要多重判断,可以利用条件语句的嵌套式结构.1.2.3 循环语句
学习目标 1.正确理解循环语句的概念,并掌握其结构.2.会应用循环语句编写程序.3.经历对现实生活情境的探究,认识到应用计算机解决数学问题方便、简捷.
知识点一 循环语句的概念和适用范围
思考1 循环语句与条件语句有何关系?
答案 循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环,但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.
思考2 编写程序时,什么情况下使用循环语句?
答案 在问题处理中,对不同的运算对象进行若干次相同运算或处理时,一般用到循环结构,在编写程序时要用到循环语句.
梳理 1.循环语句的概念
用来处理算法中的循环结构的语句.
2.循环语句的作用
循环语句是用来控制有规律的重复运算或者在程序中需要对某些语句进行重复的执行.
知识点二 循环语句的一般格式
(1)for循环的格式
for循环变量=初值:步长:终值
??循环体;
end
(2)while循环的格式
while 表达式
?循环体;
end
1.算法中的循环结构由while语句来实现.( × )
2.循环语句中有直到型语句和当型语句,即until语句和while语句.( √ )
3.循环语句在循环的过程中需要有“结束”的语句.( √ )
题型一 for循环及应用
例1 写出求1+2+3+…+1 000的值的计算程序.
解 用for循环语句来实现计算
S=0;
for i=1:1:1 000
S=S+i;
end
S
步骤:这个程序一共四步:
S1 选择一个变量S表示和,并赋给初值0.
S2 开始进入for循环语句,首先设i为循环变量,分别设定其初值、步长、终值.这里初值为1,步长为1(步长是指循环变量i每次增加的值.步长为1,可以省略不写,若为其他值,则不可省略),终值为1 000.
S3 循环表达式(循环体).
S4 用“end”控制结束一次循环,开始一次新的循环.
反思与感悟 (1)for循环语句的格式:
for 循环变量=初值:步长:终值
?循环体;
end
(2)根据for语句中所给定的初值、终值和步长,来确定循环次数,反复执行循环体内各语句.
(3)执行过程:通过for语句进入循环,将初值赋给循环变量,当循环变量的值不超过终值时,则顺序执行循环体内的各个语句,遇到end,将循环变量增加一个步长的值,再与终值比较,如果仍不超过终值范围,则再次执行循环体,这样重复执行,直到循环变量的值超过终值,则跳出循环.
跟踪训练1 用for循环语句写出求1+++…+的值的计算程序.
解 程序如下.
i=1;
S=0;
for i=1:1:99
S=S+;
end
S
题型二 while循环语句
例2 编写一个程序求使1×2×…×n<5 000的最大正整数n,并画出程序框图.
解 该算法的程序框图如图所示.
程序如下.
S=1;
n=1;
while S<5 000
S=S*n;
n=n+1;
end
n=n-1;
print(%io(2(,n(;
引申探究 将本例中“求使1×2×3×…×n<5 000的最大正整数”,改为“求使1+3+5+…+i>2 016的最小自然数i”,如何设计?
解 程序框图如图所示:
程序为:
S=0;
i=1;
while S<=2 016
S=S+i;
i=i+2;
end
print(%io(2(,i-2(;
反思与感悟 (1)while循环语句的执行过程:首先要求对表达式进行判断,如果表达式为真,则执行循环体部分,每次开始执行循环体前,都要判断表达式是否为真.这样重复执行,一直到表达式值为假时,就跳过循环体部分,结束循环.
(2)在Scilab界面内,可直接输入程序,for(while)循环语句可以在同一行,但在循环条件后面一定要用“,”分开,也可以分行写,最后要记住加end.
跟踪训练2 计算1+2+3+…+100的值有如下算法:
S1 令i=1,S=0.
S2 若i≤100成立,则执行S3;否则,输出S,结束算法.
S3 S=S+i.
S4 i=i+1,返回S2.
请利用while语句写出这个算法对应的程序.
解 程序如下:
i=1;
S=0;
while i<=100
S=S+i;
i=i+1;
end
S
1.在一个程序中含有语句“for x=(-100):10:190”,则该程序执行循环体的次数为( )
A.29 B.30
C.28 D.19
答案 B
解析 执行循环体的次数=+1,结果不是整数时,取其整数部分.
2.下列问题可以用循环语句设计程序的有( )
①求1+3+32+…+39的和;
②比较a,b两个数的大小;
③对于分段函数,要求输入自变量的值,输出函数值;
④求平方小于100的最大自然数.
A.0个 B.1个
C.2个 D.3个
答案 C
解析 ①④可用循环语句设计程序,②③要用条件语句设计程序.
3.执行下面的程序,输出的结果是________.
i=1;
S=0;
while i<=4
S=S*2+1;
i=i+1;
end
print(%io(2(,S(;
答案 15
解析 当i=1时,S=0×2+1=1,依次执行i=2,i=3,当i=4时,S=7×2+1=15.
4.将求1×2×3×4×5×6×7×8×9×10的值的程序补充完整.
a=10;
b=1;
while
b=b*a;
a= ;
end
print(%io(2(,b(;
答案 a>0(或a>=1) a-1
解析 a的初值为10,故循环体中a的值应该递减,
即a从10减小到1,循环的条件可为a>0,也可为a≥1.
5.编写一个程序,求使不等式1+++…+>10成立的最小自然数i的值.
解 程序如下:
S=0;
i=1;
while S<=10
S=S+1/i;
i=i+1;
end
i=i-1;
print(%io(2(,i(;
1.应用循环语句编写程序要注意以下三点:
(1)循环语句中的变量一定要合理设置变量的初始值.
(2)循环语句在循环的过程中需要有“结束”的语句,即有跳出循环的机会.
(3)在循环中要改变循环条件的成立因素.
程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,且在步步逼近跳出循环体的条件.
2.循环语句主要用来实现算法中的循环结构,处理一些需要反复执行的运算任务,如累加求和,累乘求积等问题.
一、选择题
1.执行下面的程序,输出的结果为( )
for i=1:2:7
S=3*i;
end
S
A.17 B.21 C.25 D.27
答案 B
解析 i的终值为7,故S=3×7=21.
2.在程序:
a=1;
for i=0:2:100
a=a+1;
end
a
执行完毕后,a的值是( )
A.50 B.51 C.52 D.53
答案 C
解析 结合程序,知其执行循环体51次,a=51+1=52.
3.在循环语句的格式中有“while A”,其中A是( )
A.循环变量 B.终止条件
C.开始循环的条件 D.循环体
答案 C
解析 当满足A时,程序才开始循环,故A是开始循环的条件,故选C.
4.下面的程序运行后输出的结果为( )
i=1;
while i<5
i=i+2;
end
print(%io(2(,i(;
A.1 B.3 C.5 D.7
答案 C
解析 i=1<5,满足条件,i=1+2=3<5,满足条件,
i=3+2=5<5不成立,输出i的值为5,
故选C.
5.下列程序的运行结果为( )
i=0;
S=0;
while S<=20
i=i+1;
S=S+i;
end
i
A.5 B.6 C.7 D.8
答案 B
解析 S=0+1+2+…,由于0+1+2+3+4+5=15,0+1+2+3+4+5+6=21,∴i=6.
6.下面程序输出的结果为( )
for i=1:2:9
S=2*i+3;
end
S
A.17 B.19 C.21 D.23
答案 C
解析 S=2×9+3=21.
7.下面程序运行的结果是( )
x=100
for i=1∶1∶11
x=x+10
end
print(%io(2(,x,i(;
A.180,10 B.190,10 C.200,10 D.11,200
答案 D
解析 每次执行循环体后x与i的值对应如下.
x
110
120
130
140
150
160
170
180
190
200
i
2
3
4
5
6
7
8
9
10
11
二、填空题
8.执行下列程序后输出的结果是________.
n=5;
s=0;
while s<8
s=s+n;
n=n-2;
end
print(%io(2(,n(;
答案 1
解析 运行程序:
n=5,s=0,满足s<8,
∴s=0+5=5,n=3;满足s<8,
∴s=5+3=8,n=1;
不满足s<8,循环结束,故输出1.
9.下面的程序运行后第3次输出的数是________.
x=1;
for i=1:1:6
x=x+1/2;
print(%io(2),x);
end
答案
解析 该程序中关键是循环语句,
第一次输出的数是x=1+=,
第二次输出的数是x=+=2,
第三次输出的数是x=2+=.
10.求1+2+22+…+2100的程序如下,请补全.
S=1;
for i=1:1:100
;
end
S
答案 S=S+2^i
解析 由于进行1+2+22+…+2100为有规律的累加运算,其中底数为2,指数i的步长为1.
11.写出以下程序的算术表达式.
N=2;
T=1;
while N<=5
T=N*T;
N=N+1;
end
disp(T(;
该程序的表达式为________________.
答案 T=1×2×3×4×5
三、解答题
12.已知程序框图如图所示.试分析算法的功能,并用for语句写出其程序.
解 此程序框图的功能是求方程x(x+2)=48的正整数解.for语句为
for i=1∶1∶48
if i*(i+2)=48
print(%io(2),i);
end
end
13.根据下列程序画出相应的程序框图,并写出相应的算法.
S=1;
n=1;
while S<1 000
S=S*n;
n=n+1;
end
n
解 算法分析:
S1 输入S,n,S的初始值为1,n的初始值为1.
S2 n从1开始循环直到S≥1 000停止,且S=S×n,
n=n+1.
S3 跳出循环,输出n值.
程序框图:
四、探究与拓展
14.下列程序运行的结果为__________.
i=1;
S=0;
while S<=20
S=S+i;
i=i+1;
end
print(%io(2(,i(;
答案 7
解析 第一次循环:S=0+1=1,i=1+1=2;第二次循环:S=1+2=3,i=2+1=3;第三次循环:S=3+3=6,i=3+1=4;第四次循环:S=6+4=10,i=4+1=5;第五次循环:S=10+5=15,i=5+1=6;第六次循环:S=15+6=21>20,i=6+1=7,故输出i的值为7.
15.在某电视台举行的青年歌手大赛中,有10名选手参加,并邀请了12名评委,在给每位选手计算平均分数时,为避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最低分后再求平均数(分数采用10分制,即每位选手的分数最高为10分,最低为0分).
试用循环语句来解决上述问题.
解 程序如下:
S=0;
k=1;
max=0;
min=10;
while k<=12
x=input(“x=”);
S=S+x;
if max<=x
max=x;
end
if min>=x
min=x;
end
k=k+1;
end
S1=S-max-min;
a=S1/10;
print(%io(2),a);
课件27张PPT。1.2.3 循环语句第一章 1.2 基本算法语句学习目标
1.正确理解循环语句的概念,并掌握其结构.
2.会应用循环语句编写程序.
3.经历对现实生活情境的探究,认识到应用计算机解决数学问题方便、简捷.问题导学达标检测题型探究内容索引问题导学知识点一 循环语句的概念和适用范围思考1 循环语句与条件语句有何关系?
思考2 编写程序时,什么情况下使用循环语句? 答案 循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环,但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题.
答案 在问题处理中,对不同的运算对象进行若干次相同运算或处理时,一般用到循环结构,在编写程序时要用到循环语句. 梳理 1.循环语句的概念
用来处理算法中的 的语句.
2.循环语句的作用
循环语句是用来控制 运算或者在程序中需要对某些语句进行 .循环结构有规律的重复重复的执行(1)for循环的格式知识点二 循环语句的一般格式初值:步长:终值循环体for循环变量=_________________
??_______;
end(2)while循环的格式while 表达式
? _______;
end循环体[思考辨析 判断正误]
1.算法中的循环结构由while语句来实现.( )
2.循环语句中有直到型语句和当型语句,即until语句和while语句.( )
3.循环语句在循环的过程中需要有“结束”的语句.( )
×√√题型探究例1 写出求1+2+3+…+1 000的值的计算程序.题型一 for循环及应用解答解 用for循环语句来实现计算S=0;
for i=1:1:1 000
S=S+i;
end
S步骤:这个程序一共四步:
S1 选择一个变量S表示和,并赋给初值0.
S2 开始进入for循环语句,首先设i为循环变量,分别设定其初值、步长、终值.这里初值为1,步长为1(步长是指循环变量i每次增加的值.步长为1,可以省略不写,若为其他值,则不可省略),终值为1 000.
S3 循环表达式(循环体).
S4 用“end”控制结束一次循环,开始一次新的循环. 反思与感悟 (1)for循环语句的格式:for 循环变量=初值:步长:终值
循环体;
end(2)根据for语句中所给定的初值、终值和步长,来确定循环次数,反复执行循环体内各语句.
(3)执行过程:通过for语句进入循环,将初值赋给循环变量,当循环变量的值不超过终值时,则顺序执行循环体内的各个语句,遇到end,将循环变量增加一个步长的值,再与终值比较,如果仍不超过终值范围,则再次执行循环体,这样重复执行,直到循环变量的值超过终值,则跳出循环.解 程序如下.解答i=1;
S=0;
for i=1:1:99
S=S+ ;
end
S题型二 while循环语句例2 编写一个程序求使1×2×…×n<5 000的最大正整数n,并画出程序框图.解答解 该算法的程序框图如图所示.S=1;
n=1;
while S<5 000
S=S*n;
n=n+1;
end
n=n-1;
print(%io(2),n);程序如下.引申探究 将本例中“求使1×2×3×…×n<5 000的最大正整数”,改为“求使1+3+5+…+i>2 016的最小自然数i”,如何设计?解 程序框图如图所示:解答程序为:S=0;
i=1;
while S<=2 016
S=S+i;
i=i+2;
end
print(%io(2),i-2);反思与感悟 (1)while循环语句的执行过程:首先要求对表达式进行判断,如果表达式为真,则执行循环体部分,每次开始执行循环体前,都要判断表达式是否为真.这样重复执行,一直到表达式值为假时,就跳过循环体部分,结束循环.
(2)在Scilab界面内,可直接输入程序,for(while)循环语句可以在同一行,但在循环条件后面一定要用“,”分开,也可以分行写,最后要记住加end.跟踪训练2 计算1+2+3+…+100的值有如下算法:
S1 令i=1,S=0.
S2 若i≤100成立,则执行S3;否则,输出S,结束算法.
S3 S=S+i.
S4 i=i+1,返回S2.
请利用while语句写出这个算法对应的程序.解答解 程序如下:i=1;
S=0;
while i<=100
S=S+i;
i=i+1;
end
S达标检测答案解析1.在一个程序中含有语句“for x=(-100):10:190”,则该程序执行循环体的次数为
A.29 B.30
C.28 D.19√12345答案解析2.下列问题可以用循环语句设计程序的有
①求1+3+32+…+39的和;
②比较a,b两个数的大小;
③对于分段函数,要求输入自变量的值,输出函数值;
④求平方小于100的最大自然数.
A.0个 B.1个
C.2个 D.3个12345√解析 ①④可用循环语句设计程序,②③要用条件语句设计程序.3.执行下面的程序,输出的结果是_____.12345解析答案i=1;
S=0;
while i<=4
S=S*2+1;
i=i+1;
end
print(%io(2),S);解析 当i=1时,S=0×2+1=1,依次执行i=2,i=3,
当i=4时,S=7×2+1=15.15a=10;
b=1;
while _______________
b=b*a;
a= ;
end
print(%io(2),b);答案解析4.将求1×2×3×4×5×6×7×8×9×10的值的程序补充完整.12345a-1解析 a的初值为10,故循环体中a的值应该递减,
即a从10减小到1,循环的条件可为a>0,也可为a≥1.a>0(或a>=1)解答12345解 程序如下:S=0;
i=1;
while S<=10
S=S+1/i;
i=i+1;
end
i=i-1;
print(%io(2),i);1.应用循环语句编写程序要注意以下三点:
(1)循环语句中的变量一定要合理设置变量的初始值.
(2)循环语句在循环的过程中需要有“结束”的语句,即有跳出循环的机会.
(3)在循环中要改变循环条件的成立因素.
程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,且在步步逼近跳出循环体的条件.
2.循环语句主要用来实现算法中的循环结构,处理一些需要反复执行的运算任务,如累加求和,累乘求积等问题.1.3 中国古代数学中的算法案例
学习目标 1.理解更相减损之术中的数学原理,并能根据这些原理进行算法分析.2.理解割圆术中蕴含的数学原理.3.了解秦九韶算法及利用它提高计算效率的本质.4.对简单的案例能设计程序框图并写出算法.
知识点一 更相减损之术
更相减损之术的运算步骤
第一步,任意给定两个正整数,判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.
第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.
知识点二 割圆术
1.割圆术的算法
S1 假设圆的半径为1,面积为S,圆内接正n边形面积为Sn,边长为xn,边心距为hn,先从圆内接正六边形的面积开始算起,即n=6,则正六边形的面积S6=6×;
S2 利用公式S2n=Sn+n··xn(1-hn)重复计算,就可得到正十二边形、正二十四边形…的面积.因为圆的半径为1,所以随着n的增大,S2n的值不断趋近于圆周率,这样不断计算下去,就可以得到越来越精密的圆周率近似值.
2.割圆术的算法思想
刘徽从圆内接正六边形开始,让边数逐次加倍,逐个算出这些圆内接正多边形的面积,从而得到一系列逐渐递增的数值,来一步一步地逼近圆面积,最后求出圆周率的近似值.用刘徽自己的话概括就是“割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体而无所失矣.”
知识点三 秦九韶算法
思考 衡量一个算法是否优秀的重要参数是速度.把多项式f(x)=x5+x4+x3+x2+x+1变形为f(x)=((((x+1)x+1)x+1)x+1)x+1,然后求当x=5时的值,为什么比常规逐项计算省时?
答案 从里往外计算,充分利用已有成果,可减少重复计算.
梳理 秦九韶算法的一般步骤:
把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0改写成如下形式:
(…((anx+an-1)x+an-2)x+…+a1)x+a0,求多项式的值时,首先计算最内层括号内一次多项式的值,即v1=anx+an-1,然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2,
v3=v2x+an-3,
…
vn=vn-1x+a0,
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值.
1.辗转相除法的基本步骤是用较大的数除以较小的数.( √ )
2.求最大公约数的方法除辗转相除法之外,没有其他方法.( × )
3.编写辗转相除法的程序时,要用到循环语句.( √ )
题型一 更相减损之术
例1 试用更相减损之术求612,396的最大公约数.
解 方法一 612÷2=306,396÷2=198,306÷2=153,198÷2=99,∴153-99=54,99-54=45,54-45=9,45-9=36,36-9=27,27-9=18,18-9=9.所以612,396的最大公约数为9×22=36.
方法二 612-396=216,396-216=180,216-180=36,180-36=144,144-36=108,108-36=72,72-36=36.故36为612,396的最大公约数.
反思与感悟 用更相减损之术的算法步骤:
第一步,给定两个正整数m,n,不妨设m>n.
第二步,若m,n都是偶数,则不断用2约简,使它们不同时是偶数,约简后的两个数仍记为m,n.
第三步,d=m-n.
第四步,判断“d≠n”是否成立,若是,则将n,d中的较大者记为m,较小者记为n,返回第三步;否则,2kd(k是约简整数2的个数)为所求的最大公约数.
跟踪训练1 用更相减损之术求261和319的最大公约数.
解 ∵319-261=58,
261-58=203,
203-58=145,
145-58=87,
87-58=29,
58-29=29,
∴319与261的最大公约数为29.
题型二 秦九韶算法的基本思想
例2 已知一个5次多项式为f(x)=4x5+2x4+3.5x3-2.6x2+1.7x-0.8,用秦九韶算法求这个多项式当x=5时的值.
解 将f(x)改写为
f(x)=((((4x+2)x+3.5)x-2.6)x+1.7)x-0.8,
由内向外依次计算一次多项式当x=5时的值:
v0=4;v1=4×5+2=22;
v2=22×5+3.5=113.5;
v3=113.5×5-2.6=564.9;
v4=564.9×5+1.7=2 826.2;
v5=2 826.2×5-0.8=14 130.2.
∴当x=5时,多项式的值为14 130.2.
反思与感悟 秦九韶算法之所以优秀,一是其对所有多项式求值都适用,二是充分利用已有计算成果,效率更高.
跟踪训练2 用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.
解 f(x)=((((((7x+6)x+5)x+4)x+3)x+2)x+1)x,
所以有v0=7,
v1=7×3+6=27,
v2=27×3+5=86,
v3=86×3+4=262,
v4=262×3+3=789,
v5=789×3+2=2 369,
v6=2 369×3+1=7 108,
v7=7 108×3=21 324.
故当x=3时,多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x的值为21 324.
1.用秦九韶算法计算多项式f(x)=6x6+5x5+4x4+3x3+2x2+x+7在x=0.4时的值时,需做加法和乘法的次数的和为( )
A.10 B.9 C.12 D.8
答案 C
解析 f(x)=(((((6x+5)x+4)x+3)x+2)x+1)x+7,
∴做加法6次,乘法6次,
∴6+6=12(次),故选C.
2.已知f(x)=2x3+x-3,用秦九韶算法求当x=3时v2的值.
解 f(x)=2x3+x-3=2x3+0·x2+x-3
=((2x+0)x+1)x-3,
v0=2,v1=2×3+0=6,
v2=6×3+1=19.
3.用更相减损之术求1 734和816的最大公约数.
解 因为1 734和816都是偶数,所以分别除以2得867和408.
867-408=459,459-408=51,408-51=357,
357-51=306,306-51=255,255-51=204,
204-51=153,153-51=102,102-51=51.
所以867和408的最大公约数是51,故1 734和816的最大公约数是51×2=102.
1.更相减损之术,就是对于给定的两个正整数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,继续上面的减法,直到差和较小的数相等,此时相等的两数即为原来两个数的最大公约数.
2.用秦九韶算法求多项式f(x)当x=x0的值的思路为(1)改写;(2)计算
(3)结论f(x0)=vn.
一、选择题
1.1 037和425的最大公约数是( )
A.51 B.17 C.9 D.3
答案 B
2.利用秦九韶算法求当x=2时,f(x)=1+2x+3x2+4x3+5x4+6x5的值,下列说法正确的是( )
A.先求1+2×2
B.先求6×2+5,第二步求2×(6×2+5)+4
C.用f(2)=1+2×2+3×22+4×23+5×24+6×25直接运算求解
D.以上都不正确
答案 B
3.45和150的最大公约数和最小公倍数分别是( )
A.5,150 B.15,450
C.450,15 D.15,150
答案 B
4.用秦九韶算法计算f(x)=6x5-4x4+x3-2x2-9x,需要加法(或减法)与乘法运算的次数分别为( )
A.5,4 B.5,5 C.4,4 D.4,5
答案 D
解析 n次多项式,当最高次项的系数不为1时,需进行n次乘法;若各项均不为0,则需进行n次加法(或减法),缺一项就减少一次加法(或减法)运算,而这个5次多项式的5次项系数不为1,缺常数项,因而乘法次数为5,加法(或减法)次数为5-1=4.故选D.
5.下面程序框图的算法思路源于我国古代数学名著《九章算术》中的“更相减损之术”.执行该程序框图,若输入的a,b分别为14,18,则输出的a等于( )
A.0 B.2 C.4 D.14
答案 B
解析 开始:a=14,b=18,
第一次循环:a=14,b=4;第二次循环:a=10,b=4;
第三次循环:a=6,b=4;第四次循环:a=2,b=4;
第五次循环:a=2,b=2.
此时,a=b,退出循环,输出a=2.
6.用秦九韶算法求多项式f(x)=1+2x+x2-3x3+2x4当x=-1时的值时,v2的结果是( )
A.-4 B.-1 C.5 D.6
答案 D
解析 此题的n=4,a4=2,a3=-3,a2=1,a1=2,a0=1,由秦九韶算法的递推关系式
得v1=v0x+a3=2×(-1)-3=-5,
v2=v1x+a2=-5×(-1)+1=6,
故选D.
7.三个数4 557,1 953,5 115的最大公约数是( )
A.31 B.93 C.217 D.651
答案 B
8.已知f(x)=x5+2x3+3x2+x+1,应用秦九韶算法计算当x=3时的值时,v3的值为( )
A.27 B.11 C.109 D.36
答案 D
解析 将函数式化成如下形式,
f(x)=((((x+0)x+2)x+3)x+1)x+1.
由内向外依次计算:
v0=1,
v1=1×3+0=3,
v2=3×3+2=11,
v3=11×3+3=36,
v4=36×3+1=109,
v5=109×3+1=328.
二、填空题
9.自然数8 251和6 105的最大公约数为________.
答案 37
解析 利用更相减损之术可得它们的最大公约数为37.
10.用秦九韶算法求多项式6x3+5x2+4x+3的值时,应先将此多项式变形为________.
答案 ((6x+5)x+4)x+3
解析 6x3+5x2+4x+3=(6x2+5x+4)x+3
=((6x+5)x+4)x+3.
11.用更相减损之术求459和357的最大公约数,需进行减法的次数为________.
答案 5
解析 利用更相减损之术,有459-357=102,357-102=255,255-102=153,153-102=51,102-51=51,共进行了5次减法.
12.用秦九韶算法求多项式f(x)=2+0.35x+1.8x2-3.66x3+6x4-5.2x5+x6在x=-1.3时的值时,令v0=a6,v1=v0x+a5,…,v6=v5x+a0时,v3的值为________.
答案 -22.445
三、解答题
13.求三个数72,120,168的最大公约数.
解 (更相减损之术):
先求120,168的最大公约数.
168-120=48,120-48=72,72-48=24,48-24=24,
所以120,168的最大公约数为24.
再求72,24的最大公约数.
72-24=48,48-24=24,
所以72,24的最大公约数为24,
即72,120,168的最大公约数为24.
14.用秦九韶算法求多项式f(x)=4x5+3x4+5x3+x2+x当x=2时的值.
解 因为f(x)=((((4x+3)x+5)x+1)x+1)x,
所以v0=4,
v1=4×2+3=11,
v2=11×2+5=27,
v3=27×2+1=55,
v4=55×2+1=111,
v5=111×2=222.
所以当x=2时,多项式f(x)=4x5+3x4+5x3+x2+x的值为222.
四、探究与拓展
15.秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例,若输入n,x的值分别为3,2,则输出v的值为( )
A.9 B.18
C.20 D.35
答案 B
解析 初始值n=3,x=2,
程序运行过程如下:
v=1
i=2 v=1×2+2=4
i=1 v=4×2+1=9
i=0 v=9×2+0=18
i=-1 跳出循环,输出v=18,故选B.
16.用秦九韶算法求多项式f(x)=x5+0.11x3-0.15x-0.04当x=0.3时的值.
解 将f(x)写为f(x)=((((x+0)·x+0.11)x+0)x-0.15)x-0.04.
按从内到外的顺序,依次计算多项式的值:
v0=1,
v1=1×0.3+0=0.3,
v2=0.3×0.3+0.11=0.2,
v3=0.2×0.3+0=0.06,
v4=0.06×0.3-0.15=-0.132,
v5=-0.132×0.3-0.04=-0.079 6.
∴当x=0.3时,f(x)的值为-0.079 6.
课件23张PPT。1.3 中国古代数学中的算法案例第一章 算法初步学习目标
1.理解更相减损之术中的数学原理,并能根据这些原理进行算法分析.
2.理解割圆术中蕴含的数学原理.
3.了解秦九韶算法及利用它提高计算效率的本质.
4.对简单的案例能设计程序框图并写出算法.问题导学达标检测题型探究内容索引问题导学知识点一 更相减损之术更相减损之术的运算步骤
第一步,任意给定两个正整数,判断它们是否都是 .若是,用 约简;若不是,执行 .
第二步,以 的数减去 的数,接着把所得的差与 的数比较,并以大数减小数,继续这个操作,直到所得的数 为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.偶数2第二步较大较小较小相等知识点二 割圆术1.割圆术的算法
S1 假设圆的半径为1,面积为S,圆内接正n边形面积为Sn,边长为xn,边心距为hn,先从圆内接正六边形的面积开始算起,即n=6,则正六边形的面积S6=6× ;
S2 利用公式S2n=Sn+n· ·xn(1-hn)重复计算,就可得到正十二边形、正二十四边形…的面积.因为圆的半径为1,所以随着n的增大,S2n的值不断趋近于圆周率,这样不断计算下去,就可以得到越来越精密的圆周率近似值.2.割圆术的算法思想
刘徽从圆内接正六边形开始,让边数逐次加倍,逐个算出这些圆内接正多边形的面积,从而得到一系列逐渐递增的数值,来一步一步地逼近圆面积,最后求出圆周率的近似值.用刘徽自己的话概括就是“割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体而无所失矣.”思考 衡量一个算法是否优秀的重要参数是速度.把多项式f(x)=x5+x4+x3+x2+x+1变形为f(x)=((((x+1)x+1)x+1)x+1)x+1,然后求当x=5时的值,为什么比常规逐项计算省时?知识点三 秦九韶算法答案 从里往外计算,充分利用已有成果,可减少重复计算.梳理 秦九韶算法的一般步骤:
把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0改写成如下形式:
(…((anx+an-1)x+an-2)x+…+a1)x+a0,求多项式的值时,首先计算
一次多项式的值,即v1= ,然后由内向外逐层计算一次多项式的值,即
v2= ,
v3= ,
…
vn= ,
这样,求n次多项式f(x)的值就转化为求 的值.最内层括号内anx+an-1v1x+an-2v2x+an-3vn-1x+a0n个一次多项式[思考辨析 判断正误]
1.辗转相除法的基本步骤是用较大的数除以较小的数.( )
2.求最大公约数的方法除辗转相除法之外,没有其他方法.( )
3.编写辗转相除法的程序时,要用到循环语句.( )√×√题型探究例1 试用更相减损之术求612,396的最大公约数.题型一 更相减损之术解答解 方法一 612÷2=306,396÷2=198,306÷2=153,198÷2=99,
∴153-99=54,99-54=45,54-45=9,45-9=36,36-9=27,27-9=18,18-9=9.
所以612,396的最大公约数为9×22=36.
方法二 612-396=216,396-216=180,216-180=36,180-36=144,144-36=108,108-36=72,72-36=36.
故36为612,396的最大公约数.反思与感悟 用更相减损之术的算法步骤:
第一步,给定两个正整数m,n,不妨设m>n.
第二步,若m,n都是偶数,则不断用2约简,使它们不同时是偶数,约简后的两个数仍记为m,n.
第三步,d=m-n.
第四步,判断“d≠n”是否成立,若是,则将n,d中的较大者记为m,较小者记为n,返回第三步;否则,2kd(k是约简整数2的个数)为所求的最大公约数.跟踪训练1 用更相减损之术求261和319的最大公约数.解答解 ∵319-261=58,
261-58=203,
203-58=145,
145-58=87,
87-58=29,
58-29=29,
∴319与261的最大公约数为29.解 将f(x)改写为
f(x)=((((4x+2)x+3.5)x-2.6)x+1.7)x-0.8,
由内向外依次计算一次多项式当x=5时的值:
v0=4;v1=4×5+2=22;
v2=22×5+3.5=113.5;
v3=113.5×5-2.6=564.9;
v4=564.9×5+1.7=2 826.2;
v5=2 826.2×5-0.8=14 130.2.
∴当x=5时,多项式的值为14 130.2.题型二 秦九韶算法的基本思想例2 已知一个5次多项式为f(x)=4x5+2x4+3.5x3-2.6x2+1.7x-0.8,用秦九韶算法求这个多项式当x=5时的值.解答反思与感悟 秦九韶算法之所以优秀,一是其对所有多项式求值都适用,二是充分利用已有计算成果,效率更高.跟踪训练2 用秦九韶算法求多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x当x=3时的值.解答解 f(x)=((((((7x+6)x+5)x+4)x+3)x+2)x+1)x,
所以有v0=7,
v1=7×3+6=27,
v2=27×3+5=86,
v3=86×3+4=262,
v4=262×3+3=789,
v5=789×3+2=2 369,
v6=2 369×3+1=7 108,
v7=7 108×3=21 324.
故当x=3时,多项式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x的值为21 324.达标检测答案解析1.用秦九韶算法计算多项式f(x)=6x6+5x5+4x4+3x3+2x2+x+7在x=0.4时的值时,需做加法和乘法的次数的和为
A.10 B.9
C.12 D.8√123解析 f(x)=(((((6x+5)x+4)x+3)x+2)x+1)x+7,
∴做加法6次,乘法6次,
∴6+6=12(次),故选C.解答2.已知f(x)=2x3+x-3,用秦九韶算法求当x=3时v2的值.123解 f(x)=2x3+x-3=2x3+0·x2+x-3
=((2x+0)x+1)x-3,
v0=2,v1=2×3+0=6,
v2=6×3+1=19.3.用更相减损之术求1 734和816的最大公约数.123解答解 因为1 734和816都是偶数,所以分别除以2得867和408.
867-408=459,459-408=51,408-51=357,
357-51=306,306-51=255,255-51=204,
204-51=153,153-51=102,102-51=51.
所以867和408的最大公约数是51,
故1 734和816的最大公约数是51×2=102.1.更相减损之术,就是对于给定的两个正整数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,继续上面的减法,直到差和较小的数相等,此时相等的两数即为原来两个数的最大公约数.
2.用秦九韶算法求多项式f(x)当x=x0的值的思路为(1)改写;
(2)计算
(3)结论f(x0)=vn.章末复习
学习目标 1.加深对算法思想的理解.2.加强用程序框图清晰条理地表达算法的能力.3.进一步体会由自然语言到程序框图再到程序的逐渐精确的过程.
知识点一 算法、程序框图、程序语言
(1)算法的概念
算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题.
(2)程序框图
程序框图由程序框组成, 按照算法进行的顺序用流程线将程序框连接起来.结构可分为顺序结构、条件分支结构和循环结构.
(3)算法语句
基本算法语句有输入语句、输出语句、赋值语句、条件语句、循环语句五种,它们对应于算法的三种逻辑结构:顺序结构、条件分支结构、循环结构.用基本语句编写程序时要注意各种语句的格式要求.
知识点二 算法案例
本章涉及的更相减损之术是用来求两个正整数的最大公约数的,秦九韶算法可以计算多项式的值.对这些案例,应该知其然,还要知其所以然,体会其中蕴含的算法思想.
题型一 算法设计
例1 求两底面直径分别为2和4,且高为4的圆台的表面积及体积,写出解决该问题的算法.
解 算法如下:
S1 取r1=1,r2=2,h=4.
S2 计算l=.
S3 计算S=πr+πr+π(r1+r2)l与V=π(r+r+r1r2)h.
S4 输出计算结果.
反思与感悟 算法的设计与一般意义上的解决问题并不相同,它是对一类问题一般解法的抽象与概括.我们将一般问题划分为数值型问题和非数值型问题两类;对于数值型问题,我们可以采用数值分析的方法进行处理,数值分析中许多现成的固定算法,我们可以直接使用,当然我们也可以根据问题的实际情况设计算法;对于非数值型问题,可以根据过程模型分析算法并进行处理,也可以选择一些成熟的办法进行处理,如排序、递推等.
跟踪训练1 已知函数y=2x4+8x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的算法.
解 算法如下:
S1 输入自变量x的值.
S2 计算y=2x4+8x2-24x+30.
S3 输出y.
S4 记录输入次数.
S5 判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.
题型二 程序框图及应用
例2 已知函数f(x)=试画出求f(f(x))的值的程序框图.
解 算法的程序框图如图所示.
反思与感悟 算法的设计是画程序框图的基础,我们通过对问题的分析,写出相应的算法步骤.画程序框图之前应先对算法问题设计的合法性和合理性进行探讨,然后分析算法的逻辑结构和各步骤的功能(输入、输出、判断、赋值和计算),画出相应的程序框图.
跟踪训练2 执行如图所示的程序框图,若输入x=2,则输出y的值为________.
答案 23
解析 当输入x=2时,
第一次循环:y=2×2+1=5,x=5;
第二次循环:y=2×5+1=11,x=11;
第三次循环:y=2×11+1=23.
∵|x-y|=12>8,∴结束循环,输出y=23.
题型三 算法语言及应用
例3 编写程序,求1-2+3-4+…-100的值.
解 程序如下:
S=0;
I=1;
while I<=100
S=S+(-1(^(I+1(*I;
I=I+1;
end
disp(S(;
反思与感悟 通常情况下,用for语句编写的程序都可以用while语句编写,在用while语句编写程序时,要注意在开始循环之前设定好循环变量,在循环体中要有循环变量的累加或其他变化.
跟踪训练3 (1)画出计算12+32+52+…+9992的值的程序框图,并写出程序.
解 程序框图如图所示.
程序如图所示.
S=0;
for i=1:2:999
S=S+i^2;
end
print(%io(2(,S(;
(2)编写程序计算1×3×5×7×…×2 015的值.
解 程序如图所示.
S=1;
for i=3:2:2 015
S=S*i;
end
print(%io(2(,S(;
1.下列叙述正确的是( )
①用程序框图表达算法,其优点是算法的逻辑结构展现得非常直观清楚;
②不同的算法都可由顺序结构、条件分支结构、循环结构这三种基本的逻辑结构构成;
③循环结构中,循环体指的是算法中反复执行的处理步骤;
④条件分支结构中一定包含循环结构.
A.①②③ B.②③④
C.①③④ D.①②④
答案 A
解析 循环结构中一定包含条件分支结构,但条件分支结构中不一定包含循环结构.
2.如图,程序框图所进行的求和运算是( )
A.1+++…+
B.1+++…+
C.+++…+
D.+++…+
答案 C
解析 因为i是计数变量,n是计算变量.当i=1时,s=;当i=2时,s=+;当i=11时,跳出循环.故选C.
3.下面的程序语句输出的结果S为( )
i=1
while i<8
i=i+2;
S=2*i+3;
i=i-1
end
S
A.17 B.19 C.21 D.23
答案 C
解析 当i为7的时候i<8,执行循环体后i=9,S=21.
4.用辗转相除法计算60和48的最大公约数,需要做的除法次数是________.
答案 2
解析 60=48×1+12,48=12×4,故需做2次除法.
5.用更相减损之术求294和84的最大公约数时,需做多少次减法?
解 ∵(294,84)→(210,84)→(126,84)→(42,84)→(42,42),
∴需做4次减法.
1.算法往往是把问题的解法划分为若干个可执行的步骤,有些步骤甚至重复多次,但最终都必须在有限个步骤之内完成.
2.对程序框图的考查之一是程序的运行结果;考查之二是补全程序框图中的条件或循环体等.
3.算法设计和程序框图是程序设计的基础,编写程序的基本方法是“自上而下,逐步求精”.
一、选择题
1.用二分法求方程x2-8=0的近似根的算法中,要用到的算法结构是( )
A.顺序结构 B.条件分支结构
C.循环结构 D.以上都用
答案 D
解析 任何一个算法都有顺序结构,循环结构一定包含条件分支结构,二分法用到循环结构.
2.1 337与382的最大公约数是( )
A.3 B.382
C.191 D.201
答案 C
解析 1 337=382×3+191,382=191×2,所以1 337与382的最大公约数是191.
3.下列式子或语句是算法的有( )
①从济南到巴黎可以先乘火车到北京,再坐飞机到巴黎;
②利用公式S=ah计算底为1、高为2的三角形的面积;
③x>2x+4;
④求过M(1,2)与N(-3,-5)两点的直线方程,可先求直线MN的斜率,再利用点斜式求得方程.
A.1个 B.2个
C.3个 D.4个
答案 C
解析 ①②④均为算法.
4.下面的程序运行后,输出的结果是( )
a=1;
b=3;
a=a+b;
b=a-b;
print (%io(2(,a,b(;
A.1,3 B.1,4
C.0,0 D.6,0
答案 B
解析 该程序运行过程中a,b的值变化如下:a=1;b=3;a=4,b=4-3=1,故选B.
5.用秦九韶算法计算多项式f(x)=12+35x-8x2+79x3+6x4+5x5+3x6当x=-4时的值时,v4的值为( )
A.167 B.220
C.-57 D.845
答案 B
解析 v0=3,v1=v0x+5=-7,v2=v1x+6=34,v3=v2x+79=-57,v4=v3x-8=220.
6.阅读如图程序框图:若输出结果为0,则①处的执行框内应填的是( )
A.x=-1 B.b=0 C.x=1 D.a=
答案 A
解析 先确定处理框内是给x赋值然后倒着推,b=0时,2a-3=0,解得a=,a=时,2x+1=,解得x=-1.
7.运行如下的程序,输出的结果为( )
(提示:1+3+5+…+(2n-1)=n2)
S=0;
i=1;
while S<=1 000
S=S+i;
i=i+2;
end
i=i-2;
print(%io(2(,i(;
A.32 B.33 C.61 D.63
答案 D
解析 本程序实现的是:求满足1+3+5+…+n>1 000的最小的整数n.
当n=61时,1+3+…+61=312=961<1 000,
当n=63时,1+3+…+63=322=1 024>1 000,
此时i=63+2=65,
结束循环,i=65-2=63.
8.执行如图所示的程序框图,输出的S的值为30,则输入的n为( )
A.2 B.3 C.4 D.5
答案 C
解析 第一次循环后,S=0+21=2,k=1+1=2;第二次循环后,S=2+22=6,k=2+1=3;第三次循环后,S=6+23=14,k=3+1=4;第四次循环后,S=14+24=30,k=4+1=5.此时需要输出结果,故输入的n应为4.
二、填空题
9.执行如图所示的程序框图,则输出的结果是________.
答案 9
解析 执行程序框图,有:k=1,s=0,
满足条件s<39,s=3,k=3;
满足条件s<39,s=12,k=5;
满足条件s<39,s=27,k=7;
满足条件s<39,s=48,k=9;
不满足条件s<39,退出循环,输出k的值为9.
10.用秦九韶算法求多项式f(x)=5x5+4x4+3x3+2x2+x+1当x=2时的值的过程中,做的乘法和加法次数分别为5,5,其中v2=________.
答案 31
解析 f(x)=((((5x+4)x+3)x+2)x+1)x+1,
所以有5次乘法和5次加法.
v0=5,v1=5×2+4=14,v2=14×2+3=31.
11.如图是某算法的程序框图,则程序运行后输出的结果是________.
答案 10
解析 本题主要考查程序框图的读取及相关的计算.程序运行后,s=0+(-1)1+1=0,n=2;s=0+(-1)2+2=3,n=3;s=3+(-1)3+3=5,n=4;s=5+(-1)4+4=10>9,故输出的结果是10.
三、解答题
12.有甲、乙、丙三种溶液分别重147 g,343 g,133 g,现要将它们分别全部装入小瓶中,每个小瓶装入液体的质量相同,每瓶最多装多少克溶液?
解 每个小瓶装的溶液的质量应是三种溶液质量的最大公约数,先求147和343的最大公约数.343-147=196,196-147=49,147-49=98,98-49=49.
所以147和343的最大公约数为49.
同理可求得49与133的最大公约数为7.
所以每瓶最多装7克.
13.如果我国工业产值每年以9%的增长率增长,那么几年后我国产值翻一番?画出程序框图,并写出算法程序.
解 程序框图如图所示.
程序如下.
p=1;
R=0.09;
n=0;
while p<2
p=p*(1+R(;
n=n+1;
end
print(%io(2(,n(;
四、探究与拓展
14.执行如图所示的程序框图,如果输入的x,t均为2,则输出的S=________.
答案 7
解析 x=2,t=2,M=1,S=3,k=1.
k≤t,M=×2=2,S=2+3=5,k=2;
k≤t,M=×2=2,S=2+5=7,k=3;
3>2,不满足条件,输出S=7.
15.已知某算法的程序框图如图所示,若将输出的(x,y)值依次记为(x1,y1),(x2,y2),…,(xn,yn)…
(1)若程序运行中输出的一个数组是(9,t),求t的值;
(2)程序结束时,共输出(x,y)的组数为多少?
(3)写出程序框图的程序语句.
解 (1)由程序框图知:当x=1时,y=0;当x=3时,y=-2;当x=9时,y=-4,所以t=-4.
(2)当n=1时,输出一对,当n=3时,又输出一对,…,当n=2 009时,输出最后一对,共输出(x,y)的组数为1 005.
(3)程序框图的程序语句如图.
x=1;
y=0;
n=1;
while n<=2 010
print(%io(2(,(x,y((;
n=n+2;
x=3+x;
y=y-2;
end
课件25张PPT。章末复习第一章 算法初步学习目标
1.加深对算法思想的理解.
2.加强用程序框图清晰条理地表达算法的能力.
3.进一步体会由自然语言到程序框图再到程序的逐渐精确的过程.知识梳理达标检测题型探究内容索引知识梳理(1)算法的概念
算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的 计算序列,并且这样的步骤或序列能够解决 .
(2)程序框图
程序框图由 组成, 按照 用 将程序框连接起来.结构可分为 结构、 结构和 结构.
(3)算法语句
基本算法语句有 语句、 语句、 语句、 语句、 语句五种,它们对应于算法的三种逻辑结构:顺序结构、条件分支结构、循环结构.用基本语句编写程序时要注意各种语句的 .有限的确切的一类问题程序框知识点一 算法、程序框图、程序语言算法进行的顺序流程线顺序条件分支循环输入输出赋值条件循环格式要求本章涉及的更相减损之术是用来求 的,秦九韶算法可以 .对这些案例,应该知其然,还要知其所以然,体会其中蕴含的 .知识点二 算法案例两个正整数的最大公约数计算多项式的值算法思想题型探究例1 求两底面直径分别为2和4,且高为4的圆台的表面积及体积,写出解决该问题的算法.题型一 算法设计解答解 算法如下:
S1 取r1=1,r2=2,h=4.S4 输出计算结果.反思与感悟 算法的设计与一般意义上的解决问题并不相同,它是对一类问题一般解法的抽象与概括.我们将一般问题划分为数值型问题和非数值型问题两类;对于数值型问题,我们可以采用数值分析的方法进行处理,数值分析中许多现成的固定算法,我们可以直接使用,当然我们也可以根据问题的实际情况设计算法;对于非数值型问题,可以根据过程模型分析算法并进行处理,也可以选择一些成熟的办法进行处理,如排序、递推等.跟踪训练1 已知函数y=2x4+8x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的算法.解答解 算法如下:
S1 输入自变量x的值.
S2 计算y=2x4+8x2-24x+30.
S3 输出y.
S4 记录输入次数.
S5 判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.题型二 程序框图及应用解 算法的程序框图如图所示.试画出求f(f(x))的值的程序框图.解答反思与感悟 算法的设计是画程序框图的基础,我们通过对问题的分析,写出相应的算法步骤.画程序框图之前应先对算法问题设计的合法性和合理性进行探讨,然后分析算法的逻辑结构和各步骤的功能(输入、输出、判断、赋值和计算),画出相应的程序框图.跟踪训练2 执行如图所示的程序框图,若输入x=2,则输出y的值为____.答案解析23解析 当输入x=2时,
第一次循环:y=2×2+1=5,x=5;
第二次循环:y=2×5+1=11,x=11;
第三次循环:y=2×11+1=23.
∵|x-y|=12>8,∴结束循环,输出y=23.题型三 算法语言及应用例3 编写程序,求1-2+3-4+…-100的值.解答解 程序如下:S=0;
I=1;
while I<=100
S=S+(-1)^(I+1)*I;
I=I+1;
end
disp(S);反思与感悟 通常情况下,用for语句编写的程序都可以用while语句编写,在用while语句编写程序时,要注意在开始循环之前设定好循环变量,在循环体中要有循环变量的累加或其他变化.跟踪训练3 (1)画出计算12+32+52+…+9992的值的程序框图,并写出程序.解答解 程序框图如图所示.程序如图所示.S=0;
for i=1:2:999
S=S+i^2;
end
print(%io(2),S);(2)编写程序计算1×3×5×7×…×2 015的值.解答解 程序如图所示.S=1;
for i=3:2:2 015
S=S*i;
end
print(%io(2),S);达标检测答案解析1.下列叙述正确的是
①用程序框图表达算法,其优点是算法的逻辑结构展现得非常直观清楚;
②不同的算法都可由顺序结构、条件分支结构、循环结构这三种基本的逻辑结构构成;
③循环结构中,循环体指的是算法中反复执行的处理步骤;
④条件分支结构中一定包含循环结构.
A.①②③ B.②③④ C.①③④ D.①②④√12345解析 循环结构中一定包含条件分支结构,但条件分支结构中不一定包含循环结构.答案解析2.如图,程序框图所进行的求和运算是 12345√12345解析 因为i是计数变量,n是计算变量.当i=11时,跳出循环.故选C.3.下面的程序语句输出的结果S为
A.17 B.19 C.21 D.23 12345解析i=1
while i<8
i=i+2;
S=2*i+3;
i=i-1
end
S解析 当i为7的时候i<8,执行循环体后i=9,S=21.答案√答案解析4.用辗转相除法计算60和48的最大公约数,需要做的除法次数是____.123452解析 60=48×1+12,48=12×4,故需做2次除法.123455.用更相减损之术求294和84的最大公约数时,需做多少次减法?解答解 ∵(294,84)→(210,84)→(126,84)→(42,84)→(42,42),
∴需做4次减法.1.算法往往是把问题的解法划分为若干个可执行的步骤,有些步骤甚至重复多次,但最终都必须在有限个步骤之内完成.
2.对程序框图的考查之一是程序的运行结果;考查之二是补全程序框图中的条件或循环体等.
3.算法设计和程序框图是程序设计的基础,编写程序的基本方法是“自上而下,逐步求精”.
1 算法概念的诠释
同学们也许对算法这个概念很陌生,但其实大家在日常生活中已经接触过很多算法了.广义地说,算法就是做某一件事情的步骤或程序.菜谱是做菜肴的“算法”,洗衣机的使用说明书是操作洗衣机的“算法”.算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础,它可理解为由基本运算及规定的运算顺序所构成的完整的解题步骤.
一、算法的特征
1.确定性
确定性:算法中的每条运算规则必须是明确定义的、可行的,每一个步骤只能有一个确定的后继步骤,运行终止应得到问题的解答或指出问题没有解答.
2.有限性
一个算法必须保证在执行有限步后结束,不能出现无限循环或死循环.这里说的“有限性”一般指算法在合理的范围以内,一般由人们的常识和需要以及计算机性能而定.例如,计算机执行一个算法需要一千年才能结束,这个算法虽然有限,但超过了合理的限度,因而也不是一个有效算法.
二、算法的思想
在数学中,计算一个函数值、求解一个方程、证明一个结论等等,我们都需要有一个清晰的思路,一步一步去完成,这就是算法的思想,即程序化思想.它强调的是通性通法,给出一个算法实际上是给出了一种解决问题(特别是数学问题)的方法.
三、特别提示
1.在算法的理解方面,是指使用一系列运算规则,能在有限步骤内求解某类问题,其中每条规则必须是明确定义的,可行的.
2.算法中的每一步应该是确定的并且能够有效地执行且得到确定的结果,而不应当模棱两可,如求近似值却没有要求近似的精确度,则该问题不能求解.
3.在设计算法时,算法应有一个或多个输出,算法的目的是为了求解,没有输出的算法是没有意义的.
4.只要有公式可以利用,利用公式解决问题是最理想、最简便的方法,比如在写解方程x2-3x-4=0的算法时,用求根公式来做,步骤则较为简洁.
5.求解某一个问题的算法一般不是唯一的,我们通常选择较为简单的算法.
四、典例分析
例1 已知一个等边三角形的周长为a,求这个三角形的面积,设计一个算法解决这个问题.
分析 对于已知等边三角形的边长求面积的题目.同学们已经很熟悉,回顾其中的解题过程不难得到这个问题的算法步骤.
解 算法步骤如下:
S1 输入a的值.
S2 计算l=的值.
S3 计算S=×l2的值.
S4 输出S的值.
例2 下面给出了一个问题的算法:
S1 输入x.
S2 若x≥4,则执行第三步,否则执行第四步.
S3 输出2x-1.
S4 输出x2-2x+3.
这个算法解决的问题是什么?
分析 依据题目给出的算法步骤依次执行,分别写出其对应的结果就可以很容易解决此题.
解 这个算法先是输入一个变量x,当x≥4时输出2x-1,当x<4时输出x2-2x+3,不难发现这个算法解决的问题是求分段函数f(x)=的函数值.
2 典型算法举例
1.解方程(方程组)、不等式的算法
例1 用自然语言描述求一元二次方程x2+bx+c=0的根的算法.
思维切入 对于求方程的根,解方程组这样的数值型的问题,我们都有具体的计算方法,只要我们把平时的计算方法严格地按步骤描述出来即可.因此我们很容易得到下面的算法.
解 用自然语言来描述算法,
S1 计算Δ=b2-4ac.
S2 如果Δ<0,则原方程无实数解,否则(Δ≥0)x1=,x2=.
S3 输出x1,x2或无实数解的信息.
评注 第二步中包含了一个判断Δ=b2-4ac是否小于零的条件,并根据判断结果进行不同的处理,在算法中称作条件分支结构.
例2 写出解x2-4x+3<0的算法.
思维切入 只要把平时的固定解法有条理地写出来,即为解不等式的算法.
解 S1 求出对应方程的根x1=1,x2=3.
S2 确定根的大小x1S3 写出解集{x|12.套用公式求值的算法
例3 已知摄氏温度C与华氏温度F的关系是F=C×+32,写出由摄氏温度求华氏温度的算法.
思维切入 这是一个函数求值问题,给C赋值再代入解析式求F.
解 S1 输入摄氏温度C.
S2 代入F=C×+32.
S3 输出华氏温度F.
评注 平时计算我们只注重第二步,其他步骤往往忽略了,算法却讲究“按部就班”,这类问题的算法一般分为三步:第一步输入值,第二步套用公式,第三步输出结果.
3.判断性质型问题的算法
例4 试描述判断圆(x-a)2+(y-b)2=r2和直线Ax+By+C=0位置关系的算法.
思维切入 直线与圆的关系有三种:相离、相切、相交,如果圆心到直线的距离d>r,则直线与圆相离,d=r则直线与圆相切,d解 S1 输入圆心的坐标、直线方程的系数和半径r.
S2 计算z1=Ax0+By0+C.
S3 计算z2=A2+B2.
S4 计算d=.
S5 如果d>r则相离;如果d=r则相切;如果d评注 算法要求分解成简单计算,不要直接计算
d=.
4.累加、累乘问题的算法
例5 用自然语言描述求解mul=1×2×3×4×5×6问题的算法.
思维切入 根据算法的特点,我们学过的加、减、乘、除运算法则都是算法,只要按照具体的规则有步骤地描述过程,便有了该题的算法.
解 S1 计算1×2,得2.
S2 将S1中的运算结果2与3相乘得6.
S3 将S2中的运算结果6与4相乘得24.
S4 将S3中的运算结果24与5相乘得120.
S5 将S4中的运算结果120与6相乘得720.
评注 一眼就看出答案来了,为什么还一步一步地做,太枯燥了,但是相乘的数小、数少还能看出,如果数多了,数大了没有这样的步骤就很难解决这一类问题.
思维拓展 该算法包含一个重复操作的过程是循环结构,我们可将算法改造得更为简练、科学.
解 S1 设i=1,P=1.
S2 如果i≤6执行S3,否则执行S5.
S3 计算P×i并将结果代替P.
S4 将i+1代替i,转去执行S2.
S5 输出P.
评注 i称作计数变量,每一次循环它的值增加1,由1变到6,P是一个累乘变量,每一次循环得到一个新的结果,然后新的结果代替原值.
3 程序框图画法全知晓
一、画程序框图的基本步骤
第一步,设计算法,因为算法的设计是画程序框图的基础,所以画程序框图前,首先写出相应的算法步骤,并分析算法需要用哪种基本逻辑结构(顺序结构、条件分支结构、循环结构)完成.
第二步,把算法步骤转化为对应的程序框图,在这种转化过程中往往需要考虑很多细节,是一个将算法“细化”的过程.
第三步,将所有步骤的程序框图用流程线连接起来,并加上起、止框,得到整个表示算法的程序框图.
二、画程序框图的规则
1.使用标准的框图符号.
2.框图一般按从上到下、从左到右的方向来画.
3.除判断框外,大多数框图符号只有一个输入点和一个输出点,判断框是唯一具有超过一个输出点的符号.
4.在图形符号内描述的语言要简练清楚.
三、典例分析
1.顺序结构
顺序结构是最简单的算法结构,是任何一个算法都离不
开的结构.若一个算法由若干个依次执行的步骤组成,则在画程序框图时,可直接由顺序结构完成.因为在其他的结构中都会涉及顺序结构,所以关于顺序结构的画法,在此不再单独叙述.
2.条件分支结构
设计程序框图时,若是分段函数或执行时需要先判断才能执行的问题,则需要用到判断框,引入条件分支结构.
例1 如图,在边长为4的正方形ABCD的边上有一点P,沿着BCDA的方向由点B向点A运动,设点P运动的路程为x(0分析 先根据题意写出算法,再根据算法画出程序框图.即
第一步,按照题意,y与x的关系满足分段函数:
y=
第二步,用合适的含条件分支结构的程序框图表示该分段函数.
解 程序框图如图所示.
点评 该题中的分段函数是分三段的函数,需引入两个判断框.至于判断框的内容是没有顺序的,但与下一图形的内容或操作必须相互对应.同时,在画程序框图时,要特别注意图形符号的规范性.
3.循环结构
如果问题中进行了重复的运算,且有相同的规律,就可根据需要引入相关变量,利用这些规律组成一个循环体,用循环结构来解决.
例2 某机械厂为增加产值进行了技术革新.据统计2014年的生产总值为500万元,技术革新后预计每年的生产总值比上一年增加5%,求最早要到哪一年生产总值才能超过600万元,试用程序框图表示.
分析 用变量n,a分别表示所经过的年数和生产总值的数量,注意变量的初始值以及递加的值是多少.由题意知第n年后的生产总值为a=500(1+0.05)n,此时为(2014+n)年.由于题中进行了重复的运算,故应引入循环结构.
解 程序框图如图所示.
点评 在本例中,给出了一种循环结构的框图,另一种循环结构(先执行循环体,再判断条件是否成立),同学们可以自行完成.
4 例说条件分支结构
条件分支结构是三种基本逻辑结构之一,可以解决一些含有条件判断的算法问题,如分段函数求值问题、比较大小问题、分类讨论问题和一些实际问题等.下面就其应用略举两例,供同学们学习时参考.
一、分段函数求值问题
例1 已知函数y=请设计程序框图,要求输入自变量x,输出函数值y.
分析 输入自变量x的值,首先判断x与0的大小关系,再代入相应的表达式求函数值.
解 程序框图如图.
点评 求分段函数的函数值,需先判断再执行步骤,需要引入条件分支结构.注意画程序框图时,判断条件不同,框图中表达式的位置也不同.
二、实际应用问题
例2 某电子汇款单笔最高限额为1万元,每笔汇款的资费标准为汇款金额的1%,最低收费为2元,最高收费为50元.试编写一程序框图求出当汇款x (0分析 由题意分析,当x≤200时,应缴纳资费2元,当x≥5 000时,应缴纳资费50元,所以引入条件分支结构,200和5 000是两个分段点.
解 程序框图如图.
点评 在一些需要判断的实际问题中,一般都会用到条件分支结构,在设计程序框图时,可先根据题意,设计算法,再根据算法画出程序框图.
5 循环结构的应用
在循环结构中,经常会出现两个变量:计数变量和累计变量.计数变量往往出现在循环结构中,起到循环计数的作用,这个变量一般出现在执行或终止循环体的条件中;而累计变量用于输出结果,往往与计数变量同步执行,一般有累加与累乘两种.下面举例说明循环结构的应用.
一、求和或求积问题
例1 设计两个求1+3+5+…+2 015的值的算法的程序框图.
分析 本题是一个累加问题,由于加数较多,采用逐一相加的思路不可取,引入变量,应用循环结构解决:(1)设一个循环变量为i,初始值为1;再设一个累加变量为S,初始值为0.(2)循环体为S=S+i,i=i+2.(3)终止条件为i>2 015.
解 方法一 程序框图如图1所示,
方法二 程序框图如图2所示.
评注 涉及求多项的和与积的程序框图要用到循环结构和条件分支结构.画图时要注意循环变量的初始值、终值以及循环变量的增量在程序中的作用.本题代表了一类相邻两个数的差为常数的求和问题的解法,在设计程序框图时要注意前后两个加数相差2,此时计数变量不是i=i+1,而是i=i+2,要根据题意灵活地改变算法中的相应部分.
二、叠加求值
例2 画出求式子(共9个3)的值的一个程序框图.
分析 本题是一个叠加问题,由于前后重复了多次相同的运算,所以应采用循环结构来设计算法,但利用循环结构实现算法需搞清初始值是什么.本题中初始值可设定为a1=,第一次循环得到a2=,第二次循环得到a3=,…,a9=,共循环了8次.
解 程序框图如图所示.
评注 如果算法问题里涉及的运算有许多重复的步骤,且数之间有相同的规律,那么可引入变量,应用循环结构.在循环结构中,要注意根据条件,设计合理的计数变量、累计变量,特别要注意条件的表述要恰当、精确,以免出现多一次循环或少一次循环的情况.
6 三种逻辑结构辨析
算法中有三种逻辑结构,即顺序结构、条件分支结构、循环结构,同学们初学这三种结构,容易混淆.本文将这三种结构进行比较,希望同学们能深刻体会这三种结构的差异与共同点.
一、三种基本逻辑结构
顺序结构
按照语句的先后顺序,从上而下依次执行这些语句,该结构不具备控制流程的作用,是任何一个算法都离不开的基本结构.
条件分支结构
根据某种条件是否满足来选择程序的走向.当条件满足时,运行一个分支,不满足时,运行另一个分支.
循环结构
从某处开始,按照一定的条件,反复执行某一处理步骤的情况.用来处理一些反复进行操作的问题.
二、三种基本逻辑结构的共同特点
1.只有一个入口.
2.只有一个出口,注意一个菱形判断框有两个出口,而一个条件分支结构只有一个出口,不要将菱形框的出口和条件分支结构的出口混为一谈.
3.结构内的每一部分都有机会被执行到,即对每一个框来说都应当有一条从入口到出口的路径通过它,如图1中的A,没有一条从入口到出口的路径通过它,是不符合要求的程序框图.
4.结构内不存在死循环,即无终止的循环,如图2就是一个死循环,在程序框图中是不允许有死循环出现的.
三种基本结构的这些共同特点,也是检查一个程序框图或算法是否正确、合理的方法和试金石.
三、典例剖析
1.顺序结构
例1 已知点P(x0,y0)和直线l:Ax+By+C=0,画出求点P(x0,y0)到直线l的距离d的算法的程序框图.
分析 利用点到直线的距离公式可画出其程序框图.
解 程序框图如图所示.
评注 顺序结构是由若干个依次执行的处理步骤组成的,这是任何一个算法都离不开的基本结构,它是最简单的算法结构,在程序框图中的体现就是用流程线自上而下地连接起来,按顺序执行算法的步骤.
2.条件分支结构
例2 画出解方程ax+b=0(a,b为常数)的一个算法的程序框图.
分析 在求解方程时,需要在方程两边同时除以a,这时对a是否为0的情况要加以讨论,当a=0时,又要对b是否为0分情况讨论.
解 程序框图如图所示.
评注 条件分支结构中要先根据指定条件进行判断,再由判断的结果决定选择执行哪一条路径.
3.循环结构
例3 某校高一(1)班共有60人,市青少年保护中心来抽样检测同学们的身体素质,要求学号被3整除的同学参加体检,已知同学们的学号是从1到60号,请画出一个算法的程序框图,使其能够输出参加体检的同学的学号.
解 程序框图如图所示.
评注 循环结构按照一定的条件,反复执行某一处理步骤.循环结构要在某个条件下终止循环,这就需要条件分支结构来判断,在循环结构中都有一个计数变量和一个累加变量,计数变量用于记录循环次数,累加变量用于输出结果,计数变量和累加变量一般是同步执行的,累加一次,计数一次.
7 算法在生活实际中的应用
数学来源于生活,服务于社会,数学与生活息息相关,数学是有用的,在生活中做一件事情的方法和步骤有多种,生活中的许多问题都可以用算法描述,用程序框图表达.下面请欣赏三例算法问题.
一、第29届奥林匹克运动会的申办
例1 北京成功举办了2008年第29届夏季奥林匹克运动会.你知道在申办奥运会的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗?对选出的5个申办城市进行表决的操作程序是首先进行第一轮投票,如果有一个城市得票数超过总票数的一半,那么该城市将获得举办权;如果所有申办城市的得票数都不超过总票数的一半,则将得票数最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止.请设计一个算法表述上面过程,并画出程序框图.
解 算法步骤如下:
S1 投票.
S2 统计票数,如果有一个城市得票数超过总票数的一半,那么该城市就获得主办权;否则淘汰得票数最少的城市,转S1.
S3 宣布主办城市.
程序框图如图:
点评 算法本身就是用计算机解决一些实际问题的方法,一定要充分理解算法的特点.
二、奖金的发放
例2 某科研所决定拿出一定量的资金对科研人员进行奖励,按照科研成果价值的大小决定奖励前10名.第1名得全部奖金的一半多1万元,第2名得剩余的奖金的一半多1万元,第3名再得剩余奖金的一半多1万元,以此类推,到第10名恰得奖金1万元,请设计一个算法的程序求科研所最初拿出多少奖金进行奖励.
解 第10名的奖金额S1=1万元,第9名和第10名的总奖金额S2=(1+1)×2=4万元,第8名、第9名和第10名的总奖金额S3=(4+1)×2=10万元……总奖金额S10=(S9+1)×2,得递推公式S1=1,Sn+1=(Sn+1)×2,n=1,2,…,9.
程序:
S=1;
i=1;
while i<10
S=(S+1(*2;
i=i+1;
end
S
程序框图:
三、李白酒壶中的酒
例3 李白是我国唐代的一位伟大诗人,平时很喜欢喝酒,有一首打油诗讲了李白买酒的一件趣事,“无事街上走,提壶去买酒,遇店加一倍,见花喝一斗,三遇店和花,喝光壶中酒.”问:李白的酒壶中原来有多少酒?请用算法解释,画出程序框图.
解 通过逆向思考,李白遇到第三枝花时,壶中有1斗酒,遇到第三个店时,壶中有斗酒;遇到第二枝花时,壶中有1+=斗酒,遇到第二个店时,壶中有×=斗酒;遇到第一枝花时,壶中有1+=斗酒,遇到第一个店时,壶中有×=斗酒.
根据以上分析可得算法步骤如下:
S1 S=0.
S2 I=1.
S3 S=.
S4 I=I+1.
S5 如果I>3,则输出S;否则,转S3.
程序框图如图所示.