1第十一章算法初步与框图(理)一、知识网络二、考纲要求1.算法的含义、程序框图(1)了解算法的含义,了解算法的思想.(2)理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.2.基本算法语句理解几种基本算法语句――输入语句、输出语句、赋值语句、条件语句、循环语句的含义.三、复习指南本章是新增内容,多以选择题或填空题形式考查,常与数列、函数等知识联系密切.考查的重点是算法语句与程序框图,以基础知识为主,如给出程序框图或算法语句,求输出结果或说明算法的功能;或写出程序框图的算法语句,判断框内的填空等考查题型.难度层次属中偏低.第一节算法与程序框图※知识回顾1.算法的概念:算法通常是指按一定规则解决某一类问题的明确和有限的步骤.2.程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.3.程序框图的三种基本逻辑结构是顺序结构、条件结构、循环结构.4.算法的描述方式有:自然语言、程序框图、程序语言.5.算法的基本特征:①明确性:算法的每一步执行什么是明确的;②顺序性:算法的“前一步”是“后一步”的前提,“后一步”是“前一步”的继续;③有限性:算法必须在有限步内完成任务,不能无限制的持续进行;④通用性:算法应能解决某一类问题.算法初步算法与程序框图算法语句算法案例算法概念框图的逻辑结构输入语句赋值语句循环语句条件语句输出语句顺序结构循环结构条件结构2※典例精析例1.如图所示是一个算法的程序框图,则该程序框图所表示的功能是解析:首先要理解各程序框的含义,输入a,b,c三个数之后,接着判断a,b的大小,若b小,则把b赋给a,否则执行下一步,即判断a与c的大小,若c小,则把c赋给a,否则执行下一步,这样输出的a是a,b,c三个数中的最小值.所以该程序框图所表示的功能是求a,b,c三个数中的最小值.评注:求a,b,c三个数中的最小值的算法设计也可以用下面程序框图来表示.例2.下列程序框图表示的算法功能是()(1)计算小于100的奇数的连乘积(2)计算从1开始的连续奇数的连乘积(3)计算从1开始的连续奇数的连乘积,当乘积大于100时,计算奇数的个数(4)计算1×3×5××n100成立时n的最小值解析:为了正确地理解程序框图表示的算法,可以将执行过程分解,分析每一步执行的结果.可以看出程序框图中含有当型的循环结构,故分析每一次循环的情况,列表如下:3第一次:13,5Si;第二次:135,7Si;第三次:1357,9Si,此时100S不成立,输出结果是7,程序框图表示的算法功能是求使1×3×5××n100成立时n的最小值.选D.评注:通过列表,我们能清楚了解程序的每一步中的各个变量是怎样变化的,这正是程序运行的本质所在.本题若要求编写求使1×3×5××n100成立时n的最小值的程序框图或程序时,很容易弄错输出的结果,应注意.例3.在音乐唱片超市里,每张唱片售价为25元,顾客如果购买5张以上(含5张)唱片,则按九折收费,如果购买10张以上(含10张)唱片,则按八折收费,请设计算法步骤并画出程序框图,要求输入张数x,输出实际收费y(元).分析:先写出y与x之间的函数关系式,有25(5)22.5(510)20(10)xxyxxxx,再利用条件结构画程序框图.解:算法步骤如下:第一步,输入购买的张数x,第二步,判断x是否小于5,若是,计算25yx;否则,判断x是否小于10,若是,计算22.5yx;否则,计算20yx.第三步,输出y.程序框图如下:评注:凡必须先根据条件做出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构设计算法.如果变量分三级(或以上)时,就需要用到条件结构的嵌套,不能忽视结果中“是”、“否”的书写,否则不知道执行哪一条路径.一般地,分n段的分段函数,需要引入1n个判断框.条件结构有以下两种基本类型.27?x否是输出X1ii11?i否4例4.画出求222111123100的值的程序框图.分析:这是一个有规律的数列求和问题,每次都进行了相同的运算,故应用循环结构进行算法设计.解:程序框图如下:(1)当型循环(2)直到型循环评注:(1)解题关键是选择好计数变量i和累加变量S的初始值,并写出用i表示的数列的通项公式是;(2)循环结构主要用在一些有规律的重复计算的算法中,如累加求和,累乘求积等问题.在循环结构中,要注意根据条件,设计合理的计数变量、累加(积)变量以及它们的初始值等,特别要注意循环结构中条件的表述要恰当、精确,以免出现多一次或少一次循环.(3)循环结构分为两类:一类是当型循环结构,如下左图所示;另一类是直到型循环结构,如下右图所示.变式训练画出求222111147100的值的程序框图.解:程序框图如下:5例5.某工厂2005年的生产总值为200万元,技术改进后预计以后后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预期年生产总值超过300万元的最早年份及2005年到此年份之前(不包此年份)的年生产总值的和.分析:本例可用循环结构来实现.(1)确定“循环体”:设a为某年的年生产总值,n为年份,S为年产值的总和,则循环体为(2)初始化变量:n的初始值为2005,a的初始值为200,S的初始值为0.(3)设定循环控制条件:300a解:程序框图如下:,0.05,1.SSaaaann6评注:本问题的关健是设计好循环体,注意SSa与n之间的对应关系.本题若将SSa放在1nn之后,则输出时须重新赋值1nn,否则n的值为超过300万的年份的下一年.本题也可用当型循环结构来表示.变式训练:设计一个程序框图,求使1235000Sn的最小n的值,并输出此时S的值.解:程序框图如下:7※基础自测一、选择题1.下列说法正确的是()A.算法就是某个问题的解题过程;B.算法执行后可以产生不同的结果;C.解决某一个具体问题算法不同结果不同;D.算法执行步骤的次数不可以很大,否则无法实施.1.解析:选项A,算法不能等同于解法;选项B,例如:判断一个正整数是否为质数,结果为“是质数”和“不是质数”两种;选项C,解决某一个具体问题算法不同结果应该相同,否则算法构造的有问题;选项D,算法可以为很多次,但不可以无限次.选B.2、如图所示的程序框图中,则第3个输出的数是()A.1B.32C.2D.522.解析:前3个分别输出的数是1,32,2.故选C.3.如图给出的是求201614121的值的一个程序框图,其中判断框内应填入的条件是()A.i10?B.i10?C.i20?D.i20?开始12A1N12AA1NN4?N结束是否输出A83.解析:通过列表,我们能清楚了解程序的每一步中的各个变量是怎样变化的,第一次:11,,42iSn,第二次:112,,624iSn,…依此可知循环的条件是i10?.选A4.(2007年高考山东卷)阅读右边的程序框图,若输入的n是100,则输出的变量S和T的值依次是()A.2550,2500B.2550,2550C.2500,2500D.2500,2550开始021Sni,,1SSn2nn1ii结束是否输出S94.解析:依据框图可得1009896...22550S,999795...12500T.选A.5.2006年1月份开始实施的《个人所得税法》规定:全月总收入不超过1600元的免征个人工资、薪金所得税,超过1600元部分需征税.设全月总收入金额为x元,前三级税率如下左表所示:级数全月应纳税金额1600x税率1不超过500元部分5%2超过500至2000元部分10%3超过2000至5000元部分15%………………开始00ST,TTnSSn2?n结束是否输出ST、输入n1nn1nn10当工资薪金所得不超过3600元,计算个人所得税的一个算法框图如图.则输出①、输出②分别为().A.0.05;0.1xxB.0.05;0.1185xxC.0.0580;0.1;xxD.0.0580;0.1185xx5.解析:设全月总收入金额为x元,所得税额为y元,则y与x之间的函数关系为0(01600)(1600)5%(16002100)25(2100)10%(21003600)xyxxxx选D.二、填空题6.(2008年高考山东卷)执行右边的程序框图,若p=0.8,则输出的n=________..6.解析:第一次循环后,10.82S,此时n=2;第二次循环后,110.824S,此时n3;第三次循环后,1110.8248S,此时4n,输出,故填4.7.(2008年高考江苏卷)某地区为了解7080岁的老人的日平均睡眠时间(单位:h),随机选择了50位老人进行调查,下表是这50位老人睡眠时间的频率分布表:开始结束输入x输出0输出①输出②0x≤1600?1600x≤2100?2100x≤3600?否否否是是是11在上述统计数据的分析中一部分计算见算法流程图,则输出的S的值为▲解析:由流程图1122334455SGFGFGFGFGF4.50.125.50.206.50.407.50.28.50.086.42故填6.42.8.如果执行右面的程序框图,那么输出的S8.解析:2461002550S三、解答题序号i分组(睡眠时间)组中值(iG)频数(人数)频率(iF)1[4,5)4.560.122[5,6)5.5100.203[6,7)6.5200.404[7,8)7.5100.205[8,9]8.540.08开始S=0输入Gi,Fii=1S=S+Gi·Fii≥5?i=i+1NY输出S结束129.请阅读下面程序框图,说明此程序的功能解:程序功能是求s的值.26122...2s,并输出s10.已知函数22(2)(0)4(0)(2)(0)xxyxxx,请画出程序框图,要求输入自变量x的值,输出函数值y.10.解:11.画出一个计算151015100的程序框图.11解:程序框图如下1312、甲、乙两位同学为解决数列求和问题,试图编写一程序.两人各自编写的程序框图分别如图1和如图2.(Ⅰ)根据图1和图2,试判断甲、乙两位同学编写的程序框图输出的结果是否一致?当n=20时分别求它们输出的结果;(Ⅱ)若希望通过对图2虚框中某一步(或几步)的修改来实现“求首项为2,公比为3的等比数列的前n项和”,请你给出修改后虚框部分的流程图.1412、解:(Ⅰ)输出结果一致.当n=20时,图1的结果为2+4+6+…+38+40=2×(1+2+3+…+20)=420图2的结果为2+4+6+…+38+40=2×(1+2+3+…+20)=420(Ⅱ)修改后虚框部分的流程图为S=S+aa=3﹡ai=i+1第二节算法的基本语句及算法案例开始输入ni=1S=0a=2S=S+aa=a+2i=i+1in?输出S结束是否图2开始输入ni=0S=0i=i+1S=S+2输出S结束i≤n?否是图115※知识回顾1.任何一种程序设计语言都包含五种基本的算法语句,它们是输入语句,输出语句,赋值语句,条件语句,循环语句2.输入语句的一般格式是;INPUT提示内容变量;输出语句的一般格式是;PRINT提示内容表达式;赋值语句的一般格式是变量表达式;条件语句的一般格式是IFTHENENDIF条件语句体或IFTHENENDIF条件语句体1ELSE语句体2;循环语句的一般格式是DOLOOPUNTIL循环体条件和,WHILEWEND条件循环体.输入语句、输出语句、赋值语句基本对应于程序框图中的顺序结构;条件语句、循环语句分别用来表达程序框图中的条件结构和循环结构.3.常用符号运算符号:加_+_,减-__,乘*__,除/__,乘方a^b,整数取商\,求余数MOD.逻辑符号:且AND,