1、1算法的概念12世纪的算法是指用阿拉伯数字进行算术运算的过程数学中的算法算法通常是指按照一定规则解决_的明确和有限的步骤现代算法通常可以编成计算机程序,让计算机执行并解决问题算法具有确定性、有效性、有限性等特征算法设计与一般意义上的解决问题不同,它是对一类问题的一般解法的抽象与概括,主要借助一般的问题解决方法,又要包括此类问题的所有情形它往往是把问题的解决划分为若干个可执行的步骤,有时甚至是重复多次,但最终都必须在有限个步骤之内完成学科&网(1)用数学语言描述算法解决问题的过程大体可分为三步:第一步,明确问题的性质,分析题意我们将问题简单地分为数值问题和非数值问题,不同类型的问题可以有针对性地
2、采用不同的方法进行处理第二步,建立问题的描述模型对于数值型问题,可以建立数学模型,通过数学语言来描述问题对于非数值型问题,我们可以建立过程模型,通过过程模型来描述问题第三步,设计、确立算法对于数值型问题,我们可以采用数值分析的方法进行处理,数值分析中有许多现成的固定算法,我们可以直接使用当然我们也可以根据问题的实际情况设计算法对于非数值型问题,根据过程模型分析算法并进行处理,也可以选择一些成熟的办法进行处理,如排序、递推等(2)算法设计应注意:与解决问题的一般方法有联系,从中提炼出算法;将解决问题的过程分为若干个可执行步骤;引入有关的参数或变量对算法步骤加以表达;用最简练的语言将各个步骤表达出
3、来;算法的执行要在有限步内完成2程序框图程序框图又称流程图,是一种用_、_及_来表示算法的图形程序框图是人们用来描述算法步骤的形象化的方法在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序另外,程序框内还要有必要的文字说明构成程序框图的图形符号、名称及其功能如下表:图形符号名称功能终端框(起止框)表示一个算法的起始和结束输入、输出框表示一个算法输入和输出的信息处理框(执行框)赋值、计算判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”流程线连接程序框连接点连接程序框图的两部分说明:一个完整
4、的程序框图一定会包含终端框(用于表示一个算法的开始和结束),处理框(赋值、计算,算法中处理数据需要的算式、公式等)和流程线3算法的三种基本逻辑结构通常一个算法只能由三种基本逻辑结构构成,这三种基本逻辑结构分别是:顺序结构、条件结构和循环结构(1)顺序结构顺序结构是由若干个_的步骤组成的这是任何一个算法都离不开的基本结构顺序结构可以用程序框图表示为顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,其中A和B两个框是依次执行的,只有在执行完A框所指定的操作后,才能接着执行B框所指定的操作,顺序结构各步骤之间不能随便调换,调换后可能会使算法不能运行或错误(2)条件结构在
5、一个算法中,经常会遇到一些条件的判断,算法的流程根据_有不同的流向条件结构就是处理这种过程的结构条件结构对应的程序框图如图所示: (1)(2)注意:无论条件是否成立,图(1)中只能执行“步骤”框或“步骤”框,但不可以既执行“步骤”又执行“步骤”,也不可以“步骤”和“步骤”都不执行;“步骤”和“步骤”中可以有一个是空的,如图(2)所示学.科网在利用条件结构画程序框图时,必须清楚判断的条件是什么,条件判断后分别对应着什么样的结果(3)循环结构在一些算法中,要求_同一操作的结构称为循环结构即从算法某处开始,按照一定的条件反复执行某些步骤反复执行的步骤称为循环体循环结构有两种形式:直到型循环结构和当型
6、循环结构直到型循环结构直到型循环结构可以用程序框图表示为:这个循环结构有如下特征:在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环当型循环结构当型循环结构可以用程序框图表示为:这个循环结构有如下特征:在每次执行循环体前,先对控制循环的条件进行判断,当条件满足时,执行循环体,否则终止循环4程序框图的画法在用自然语言表述一个算法后,可以画出程序框图,用顺序结构、条件结构和循环结构来表示这个算法这样表示的算法清楚、简练,便于阅读和交流设计一个算法的程序框图通常要经过以下步骤:注意:流程线不要忘记画箭头,因为它是反映流程执行先后次序的,若不画出箭头,则难以
7、判断各框的执行顺序K知识参考答案:3(1)依次执行(2)条件是否成立(3)反复执行K重点程序框图的画法,条件结构,循环结构K难点循环结构及其循环控制条件的理解与应用K易错画程序框图时误选逻辑结构1算法的概念常见的设计算法的问题有解方程(组)问题、直接应用数学公式求解的问题、筛选问题、实际生活问题等,设计算法时要注意:(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此类问题中可能涉及的各种情况;(3)将解决问题的过程划分为若干个步骤【例1】已知直角三角形两直角边长为a,b,求斜边长c的一个算法分下列三步:计算;输入直角三角形两直角边长a,b的值;输出斜边长c的值;其中正确的顺序是
8、ABCD【答案】D【解析】由算法规则得:第一步:输入直角三角形两直角边长a,b的值,第二步:计算,第三步:输出斜边长c的值;这样,就是求斜边长c的一个算法故选D【名师点睛】算法是解决某一类问题的精确描述,这就要求我们在写算法时应简练、清晰,并善于分析任何可能出现的情况,体现出思维的严密性和完整性【例2】下列关于算法的理解正确的是A算法等同于解法B任何问题都可以运用算法解决C按照算法一步步执行,在有限步之后,总能得出结果D解决某一个具体问题时,算法不同,结果也不同【答案】C2顺序结构与顺序结构相关的问题一般是利用公式求解问题在使用顺序结构书写程序框图时,(1)要注意各种框图符号的正确使用;(2)
9、要先赋值,再运算,最后输出结果学科&网【例3】将两个数a=2017,b=2018交换,使得a=2018,b=2017,下面语句正确一组是ABCD【答案】B【解析】先把b的值赋给中间变量c,这样c=2018,再把a的值赋给变量b,这样b=2017,把c的值赋给变量a,这样a=2018故选B【例4】已知函数f(x)=x23x+2,请设计一个算法,画出算法的程序框图,求f(3)+f(1)的值【答案】答案详见解析程序框图如图:【名师点睛】画顺序结构的程序框图问题,不仅要遵循程序框图的画图原则,而且要看要求的量需要根据哪些条件求解,需要的条件必须先输入,或将已知的条件全部输入,求出未知的量3条件结构凡是
10、需要先根据条件作出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构,有时会需要多个判断框,至于判断框内的内容是没有固定顺序的【例5】一算法的程序框图如图所示,若输出的,则输入的x可能为A1B1C1或5D1或1【答案】B【名师点睛】(1)对于求分段函数的函数值的程序框图画法:如果是分两段的函数,只需引入一个判断框;如果是分三段的函数,需要引入两个判断框;依此类推至于判断框内的内容是没有顺序的学科*网(2)判断框内的内容可以不唯一,但判断框内的内容一经改变,其相应的处理框等内容均要有所改变【例6】阅读程序框图,如果输出的函数值在区间内,则输入的实数x的取值范围是
11、A(,2B2,1C1,2D2,+)【答案】B【解析】分析程序中各变量、各语句的作用,再根据流程图所示的顺序,可知:该程序的作用是计算分段函数f(x)=的函数值又输出的函数值在区间内,解得x2,1故选B4循环结构如果算法问题中涉及的运算进行了许多次重复的操作,且先后参与运算的数之间有相同的变化规律,就可以引入变量(我们称之为循环变量),构成循环结构学科.网循环结构中常用的几个变量:计数变量:即计数器,用来记录执行循环体的次数,如,累加变量:即累加器,用来计算数据之和,如累乘变量:即累乘器,用来计算数据之积,如在程序框图中,一般要根据实际情况先给这些变量赋初始值一般情况下,计数变量的初始值为1,累
12、加变量的初始值为0,累乘变量的初始值为1【例7】阅读如图的程序框图若输入n=5,则输出k的值为A2B3C4D5【答案】B【例8】已知流程图如图所示,该程序运行后,为使输出的b值为16,则循环体的判断框内处应填A2B3C4D5【答案】B1早上从起床到出门需要洗脸刷牙(5 min)、刷水壶(2 min)、烧水(8 min)、泡面(3 min)、吃饭(10 min)、听广播(8 min)几个步骤,从下列选项中选出最好的一种算法A第一步洗脸刷牙、第二步刷水壶、第三步烧水、第四步泡面、第五步吃饭、第六步听广播B第一步刷水壶、第二步烧水同时洗脸刷牙、第三步泡面、第四步吃饭、第五步听广播C第一步刷水壶、第二
13、步烧水同时洗脸刷牙、第三步泡面、第四步吃饭同时听广播D第一步吃饭同时听广播、第二步泡面、第三步烧水同时洗脸刷牙、第四步刷水壶2我们已学过的算法有求解一元二次方程的求根公式,加减消元法求二元一次方程组的解,二分法求函数的零点等,对算法的描述有:对一类问题都有效;算法可执行步骤必须是有限的;算法可以一步一步地进行,每一步都有确切的含义;是一种通法,只要按部就班地做,总能得到结果以上对算法的描述正确的有A1个B2个C3个D4个3表示“根据给定条件判断”的符号是ABCD4下面的程序框图是顺序结构的是5如图所示的程序框图表示的算法意义是A边长为3,4,5的直角三角形面积B边长为3,4,5的直角三角形内切
14、圆面积C边长为3,4,5的直角三角形外接圆面积D以3,4,5为弦的圆面积6如图所示的程序框图是已知直角三角形两直角边a,b求斜边c的算法,其中正确的是7根据所给的程序框图,如图所示,输出的结果是A3B1C2D08下列说法:条件结构是最简单的算法结构;顺序结构就是按照程序语句运行的自然顺序,依次地执行顺序;条件结构可以根据设定的条件,控制语句流程,有选择地执行不同的语句序列其中正确的说法是ABCD9求下列函数的函数值的算法中需要用到条件结构的是Af(x)x21Bf(x)2x1Cf(x)Df(x)2x10如下图所示的程序框图,其功能是A输入a,b的值,按从小到大的顺序输出它们的值B输入a,b的值,
15、按从大到小的顺序输出它们的值C求a,b的最大值D求a,b的最小值11直到型循环结构对应的框图为12如图所示的程序框图中,循环体是ABCD13阅读如图框图,运行相应的程序,则输出i的值为A3B4C5D614下面程序框图表示的算法的运行结果是_15若R8,则如图所示的程序框图运行后的结果为a_16试写一个解三元一次方程组的算法17已知半径为r的圆的周长公式为C2r,当r10时,写出计算圆的周长的一个算法,并画出程序框图18如下算法:第一步,输入x的值;第二步,若x0,则yx;第三步,否则,yx2;第四步,输出y的值,若输出的y值为9,则x的值是A3B3C3或3D3或919给出下列程序框图:若输出的
16、结果为2,则处的执行框内应填的是 Ax2Bb2Cx1Da520下面的程序框图能判断任意输入的数的奇偶性其中判断框中的条件是A?B?C?D?21某程序框图如图所示,现输入如下四个函数,则可以输出的函数是ABCD22执行如图所示的程序框图,若输出的n7,则输入的整数K的最大值是A18B50C78D30623执行如图所示的程序框图,输出的S值为A1BCD24执行如图所示的程序框图,输出的结果为A(2,2)B(4,0)C(4,4)D(0,8)25执行如图所示的程序框图,输出的S值为A1B3C7D1526阅读如图所示的程序框图,运行相应的程序,输出的n的值为 A1B2C3D427如图给出的是计算的一个程
17、序框图,其中判断框内应填入的条件是Ai50?Bi50?Ci25?Di25?28一个算法的程序框图如图所示,当输入的x值为3时,输出y的值恰好是,则“”处的关系式是Ayx3By3xCy3xDyx29如图是求长方体的体积和表面积的一个程序框图,补充完整,横线处应填_30已知函数 图中表示的是给定的值,求其对应的函数值的程序框图处应填写_;处应填写_31阅读下面的算法,回答所给问题:第一步,输入第二步,若,则执行第三步,否则,执行第四步第三步,输出第四步,输出(1)上述算法的功能是_(2)当输入的值为_时,输出的数值最小,其最小值为_32求过两点P1(x1,y1),P2(x2,y2)的直线的斜率设计
18、该问题的算法并画出程序框图33如图所示是解决某个问题而绘制的程序框图,仔细分析各图框内的内容及图框之间的关系,回答下面的问题:(1)该框图解决的是怎样的一个问题?(2)若最终输出的结果y13,y22,当x取5时输出的结果5ab的值应该是多大?(3)在(2)的前提下,输入的x值越大,输出的axb是不是越大,为什么?(4)在(2)的前提下,当输入的x值为多大时,输出结果axb等于0?34画出计算函数y|2x3|的函数值的程序框图(x由键盘输入)35以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,88,90,55,61,73,64,77,82,94,60要求将80分以上的同学
19、的平均分求出来,画出该问题算法的程序框图36(2018新课标)为计算S=1+,设计了如图的程序框图,则在空白框中应填入Ai=i+1Bi=i+2Ci=i+3Di=i+437(2018天津)阅读如图的程序框图,运行相应的程序,若输入N的值为20,则输出T的值为A1B2C3D438(2018北京)执行如图所示的程序框图,输出的s值为ABCD12345678910111213CDAABCCCCCBBB1819202122232425262728363738DCDACCBCBBCBBB1【答案】C【解析】由题知C选项最节省时间,由算法的特征可知C方法最好2【答案】D【解析】由算法的概念可知都正确,因而选
20、D学科%网3【答案】A【解析】A表示判断框,判断框是唯一具有超过一个退出点的图形符号4【答案】A【解析】由于选项A表示的是依次执行的几个步骤,故A为顺序结构5【答案】B【解析】由直角三角形内切圆半径r,故选B6【答案】C7【答案】C【解析】由XY,得X2;由YX,得Y2;由ZY,得Z28【答案】C【解析】依据顺序结构和条件结构的定义可知选C9【答案】C【解析】C项中函数f(x)是分段函数,需分类讨论x的取值范围,要用条件结构来设计算法,A、B、D项中均不需要用条件结构10【答案】C【解析】根据执行过程可知程序框图的功能是输入a,b的值,输出它们的最大值,即求a,b的最大值故选C11【答案】B【
21、解析】根据直到型程序框图的概念进行判断即可12【答案】B【解析】根据循环结构的定义知为循环体,故选B13【答案】B【解析】i1时,a1112,i2时,a2215,i3时,a35116,i4时,a41616550,所以输出i4学*科网14【答案】6【解析】由题意得P9,S615【答案】4【解析】由R8得b2,a2b416【答案】详见解析17【答案】详见解析【解析】算法如下:第一步,令r10第二步,计算C2r第三步,输出C程序框图如图:18【答案】D【解析】根据题意可知,此为分段函数,y的算法,当x0时,x9;当x0时,x29,所以x319【答案】C【解析】因结果是b2,2a3,即a5当2x35时
22、,得x120【答案】D【解析】奇数被2除余1,偶数被2整除【易错易混】条件结构中的判断框内条件一定要清晰、明确、但条件不唯一,不同的人写算法时,可能符合条件时执行A,不符合条件时执行B,也可能不符合条件时执行A,符合条件时执行B,此时两种算法内的条件一定不一样21【答案】A22【答案】C【解析】第一次循环S2,n2,第二次循环S6,n3,第三次循环S2,n4,第四次循环S18,n5,第五次循环S14,n6,第六次循环S78,n7,需满足SK,此时输出n7,所以18K78,所以整数K的最大值为7823【答案】C【解析】执行第一次循环后S,i1;执行第二次循环后,S,i22,退出循环体,输出S的值
23、为24【答案】B【解析】第一次循环:S110,t112;x0,y2,k1;第二次循环:S022,t022,x2,y2,k2;第三次循环:S224,t220,x4,y0,k3输出(4,0)25【答案】C【解析】程序框图运行如下:k03,S0201,k13;S1213,k212满足条件,继续循环得n2,2222不成立,不满足条件,所以输出n227【答案】B【解析】因为该循环体需要运行50次,i的初始值是1,间隔是1,所以i50时不满足判断框内的条件,而i51时满足判断框内条件,所以判断框内的条件可以填入i50?28【答案】C【解析】当x3时,x0,由xx2,得x1;再用xx2,得x1;而当x1时,
24、3x29【答案】【解析】根据题意,长方体的长、宽、高应从键盘输入,故横线处应填写输入框30【答案】【解析】框图中的就是分段函数关系式两种形式的判断条件,故填写“”就是该函数的另一段表达式学科¥网【名师点睛】求分段函数函数值的程序框图的画法:如果是分两段的函数,只需要引入一个判断框;如果是分三段的函数,需要引入两个判断框,依此类推,至于判断框内的内容是没有顺序的31【答案】(1)求分段函数的函数值;(2)1232【答案】详见解析【解析】算法如下:第一步,输入x1,y1,x2,y2第二步,如果x1x2,输出“斜率不存在”;否则,k第三步,输出k程序框图如下图所示33【答案】详见解析34【答案】详见解析【解析】程序框图如图:35【答案】详见解析【解析】程序框图如图36【答案】B【解析】模拟程序框图的运行过程知,该程序运行后输出的是S=NT=(1)+()+();累加步长是2,则在空白处应填入i=i+2故选B学科#网37【答案】B38【答案】B【解析】执行循环前:k=1,S=1在执行第一次循环时,S=1由于k=23,所以执行下一次循环S=,k=3,直接输出S=,故选B