一轮复习13算法与程序框图.ppt

上传人:小飞机 文档编号:4872765 上传时间:2023-05-20 格式:PPT 页数:43 大小:647.50KB
返回 下载 相关 举报
一轮复习13算法与程序框图.ppt_第1页
第1页 / 共43页
一轮复习13算法与程序框图.ppt_第2页
第2页 / 共43页
一轮复习13算法与程序框图.ppt_第3页
第3页 / 共43页
一轮复习13算法与程序框图.ppt_第4页
第4页 / 共43页
一轮复习13算法与程序框图.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《一轮复习13算法与程序框图.ppt》由会员分享,可在线阅读,更多相关《一轮复习13算法与程序框图.ppt(43页珍藏版)》请在三一办公上搜索。

1、算法初步,知识体系,第一节 算法与流程图,基础梳理,1.一般而言,对一类问题的 的、的求解方法称为算法.,2.流程图是由一些 和 组成的,其中图框表示各种操作的,图框中的文字和符号表示操作的,流程线表示操作的.,3.顺序结构:依次进行多个处理的结构.其结构形式为:,机械,统一,图框,流程线,类型,类型,先后次序,4.选择结构:先根据条件作出判断,再决定执行哪一种操作的结构.其结构形式为:,5.循环结构:需要重复执行同一操作的结构.,6.如图是一种常见的循环结构:先判断所给条件p是否成立,若p成立,则执行A,再判断条件p是否成立;若p仍成立,则又执行A,如此反复,直到某一次条件p不成立时为止.这

2、样的循环结构称为当型循环.,7.直到型循环:先执行A,再判断所给条件p是否成立,若p不成立,则再执行A,如此反复,直到p成立,该循环过程结束.,典例分析,题型一 算法的设计【例1】已知点P(x0,y0)和直线l:Ax+By+C=0(A0),求点P(x0,y0)到直线l的距离d,写出其算法并画出流程图.,分析 由公式 可知,欲求点到直线的距离,要先求Z1=Ax0+By0+C及Z2=A2+B2,代入 用顺序结构解决.,解 算法如下:S1 输入点的坐标x0,y0及直线方程的系数A、B、C;S2 Z1Ax0+By0+C;S3 Z2A2+B2;S4 d;S5输出d.,学后反思 给出一个问题,设计算法时应

3、注意:(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此问题中可能涉及的各种情况;(3)借助有关变量或参数对算法加以表述;(4)将解决问题的过程划分为若干个步骤;(5)用简练的语言将各个步骤表示出来.,流程图:,1.写出求解方程ax2+x+c=0的一个算法.,举一反三,解析:S1 判断a是否等于零.若a=0,则解得x-c,输出x;若a0,则转S2;S2 判断判别式=1-4ac是否小于零.若0,那么输出“方程无实数根”;若0,则转S3;S3 计算;S4 输出x1,x2.,题型二 算法的顺序结构【例2】(创新题)已知函数f(x)=,实a1=f(1),an+1=f(an)(nN*),

4、试写出一个求a4的算法,并画出流程图.,分析 本题是一道求函数值的题目,显然a1=f(1)=,可利用an+1=f(an)(nN*)逐个求a2,a3,a4.,解 算法如下:流程图如下:S1;S2;S3;S4;S5 输出a4.,学后反思 本题是按照函数中求函数值的方法展开的,这里用了a1、a2、a3、a4四个单元分别存放了四个值.因此利用算法和流程图,能够规范思维,可以锻炼书面表达的能力,对于一些不很复杂的算法,都可用顺序结构来实现.因为它在执行的过程中没有“岔路”,是依次执行的.,2.写出过两点P1(2,0),P2(0,3)的直线方程的一个算法,并画出流程图.,举一反三,解析:算法如下:流程图如

5、下:S1 a2,b3;S2;S3 输出结果.,题型三 算法的选择结构-2,x0,【例3】(2010青岛模拟)函数y=0,x=0,写出求该函数函数值 2,x0,的算法及流程图.,分析 该函数是分段函数,当x取不同范围内的值时,函数表达式不同,因此当给出一个自变量x的值时,用条件结构解决须先判断x的范围,然后确定利用哪一段解析式求函数值.,解 算法如下:相应的流程图如图:S1 输入x;S2 如果x0,则y-2;如果x=0,则y0;如果x0,则y2;S3 输出函数值y.,学后反思 求分段函数值的算法应用到选择结构,因此在流程图的画法中需要引入判断框,要根据题目的要求确定引入判断框的个数,而判断框内的

6、条件不同,对应的下一图框中的内容或操作就相应地进行变化.,举一反三,3.下图输出的是-.,解析:由判断框可知,当S2 004时输出n,又由S=n(n+1)2可知S为1+2+n的和,所以是求S恰好大于2 004时n的值.,答案:63,题型四 算法的循环结构【例4】(14分)某企业2009年的生产总值为200万元,技术创新后预计以后每年的生产总值将比上一年增加5%,问最早哪一年的生产总值将超过300万元?试写出解决该问题的一个算法,并画出相应的流程图.,分析 设第n年后该企业生产总值为a,则a=200(1+0.05)n,此时为2009+n年.,解 算法设计如下:S1 n0,a200,r0.05;S

7、2 Tar(计算年增量);S3 aa+T(计算年产量);3S4 如果a300,那么nn+1,转S2;如果a300,则转S5;,S5 N2009+n;S6 输出N.7,流程图如下:方法一:方法二:1414,学后反思 注意直到型循环结构和当型循环结构的本质区别,直到型循环结构先执行aa+T,再判断a300,若不满足,则执行循环体,直到满足才输出N;而当型循环结构先判断a300,若成立,则执行循环体,直到a300不成立才结束循环,输出N.,4.(2009江苏)下图是一个算法的流程图,最后输出的W-.,举一反三,解析:第一次:T=1,S=12-0=1;第二次:T=3,S=32-1=8;第三次:T=5,

8、S=52-8=17;此时满足S10,所以W=S+T=17+5=22.,答案:22,易错警示,【例】设计一个流程图,求S=12+32+52+992的值.,错解(如图甲、乙),错解分析 图甲的错误在于II+1,步长为1,计算的是S=12+22+32+992.图乙的错误在于先执行II+2而后执行SS+I2,计算的是S=32+52+72+992.,正解,考点演练,10.(2009海南、宁夏改编)如果执行下边的算法流程图,输入x=-2,h=0.5,求输出的各个数的和.,解析:由流程图可知,当x=-2时,y=0;当x=-1.5时,y=0;当x=-1时,y=0;当x=-0.5时,y=0;当x=0时,y=0;

9、当x=0.5时,y=0.5;当x=1时,y=1;当x=1.5时,y=1;当x=2时,y=1.故输出的各数之和为3.5.,11.在国家法定工作日内,每周满工作量的时间为40小时,若每周工作时间不超过40小时,则每小时工资8元;如因需要加班,超过40小时的每小时工资为10元.某公务员在一周内工作时间为x小时,但他须交纳个人住房公积金和失业保险(这两项费用为每周总收入的10%).试分析算法步骤并画出其净得工资y元的算法的流程图.(注:满工作量外的工作时间为加班),解析:算法如下:S1 输入工作时间x小时;S2 若x40,则y8x(1-10%);否则,y408(1-10%)+(x-40)10(1-10

10、%);S3 输出y值.,流程图:,12.给出以下10个数5、9、80、43、95、73、23、17、60、36.要求把其中大于40的数找出来并输出,画出解决该问题的一个算法流程图.,解析:可以先把第1个数输入,然后将它与40进行比较,若该数大于40,就输出,再输入第2个数;否则,若该数小于40,则直接输入第2个数,再将第2个数与40比较.依次下去,共输入10次,可利用循环结构控制输入的次数,用选择结构将输入的数与40进行比较.算法流程图如图所示.,第二节 基本算法语句,基础梳理,1.三种语句的一般格式和功能,2.条件语句(1)定义:在执行算法时,有时要根据一定的条件选择流程线的方向,我们用 来

11、实现.,Read变量,输入信息,Print表达式,输出结果,变量表达式,将表达式的值赋给变量,条件语句,(2)条件语句的格式If A ThenBElseCEnd IfA表示,B表示满足条件时执行的操作内容,C表示 时执行的操作内容,End If表示条件语句结束.,3.循环语句(1)算法中的 是由循环语句来实现的.(2)循环语句的格式,判断的条件,不满足条件,循环结构,当型循环While p 循环体End WhileFor I From“初值”To“终值”Step“步长”循环体End For直到型循环Do 循环体Until pEnd Do,While 循环,For 循环,题型一 输入、输出和赋值

12、语句【例1】已知点D(x0,y0)和直线l:Ax+By+C=0,试编写一个伪代码,求D到直线l的距离.,典例分析,分析 根据点到直线距离公式 知,只需求两个量Ax0+By0+C,A2+B2,然后赋值给两个变量Z1,Z2.故可用顺序结构实现.,解 伪代码如下:,Read A,B,C,x0,y0Z1Ax0+By0+CZ2A2+B2dPrint d,学后反思 编写伪代码的关键是搞清问题的算法,特别是算法的结构,然后确定采用哪一种算法语句.本题用到解析几何中的求点到直线的距离公式,在此基础上确定用顺序结构实现算法.,1.(2010临沂模拟改编)下列赋值语句中正确的是.3B;x-y2;AB-2;TT+T

13、.,举一反三,解析:错,赋值语句中“”左边只能是变量;错,赋值语句不能给一个表达式赋值;错,赋值语句只能给一个变量赋值.,答案:,题型二 条件语句 2x2-1,x0,【例2】已知函数y=2x+1,x=0,试输入x的值计算y的值.画出-2x2+4x,x0,流程图,并写出伪代码.,分析 因为x在不同区间取值时对应的函数关系不一样,需判断x的符号,故应用条件语句完成.注意条件语句的不同格式.,解 流程图如下图所示.,学后反思 在求分段函数的函数值时,由于自变量x的值不同,其函数值的求法也不同,故先对x的值进行判断,然后根据其具体值选择不同的计算方法,故用条件语句进行算法设计.,伪代码如下:,2.某商

14、场购物实行优惠措施,若购物金额x在800元以上,打八折;若购物金额x在500元以上,则打9折;否则不打折.设计算法流程图,要求输入购物金额x,能输出实际交款额,并写出相应的伪代码.,举一反三,解析:依照题意,实际交款额y与购物金额x的函数关系如下:x,x500,y=0.9x,500800.,流程图:伪代码如下:,题型三 循环语句【例3】高一(2)班共有54名同学参加数学竞赛,现已有这54名同学的竞赛分数,请设计一个将竞赛成绩优秀同学的平均分输出的算法(规定90分以上为优秀),画出流程图,并写出伪代码.,分析 由于涉及到54名同学的分数,因此可以使用循环结构控制输入分数,用选择结构来判断分数是否

15、高于90分,同时统计高于90分的成绩的总和和人数,从而求平均分.,解 流程图:伪代码如下:,学后反思 在解决实际问题时,要正确理解其中的算法思想,根据题目写出其关系式,再写出相应的算法.在循环语句中,也可以嵌套条件语句,甚至是循环语句,此时需要注意嵌套这些语句需要保证语句的完整性,否则就会造成程序无法执行.,3.高一(1)班共60人,市青少年保护中心来抽样检测同学们的身体素质,要求学号能被3整除的同学参加体检,已知学生的学号从1到60号,请画出输出参加体检同学学号的流程图,并写出伪代码.,举一反三,解析:流程图如图所示:可写出伪代码如下:,题型四 算法语句的实际应用【例4】(14分)青年歌手电

16、视大奖赛共有10名选手参加,并请了12名评委,在计算每位选手的平均分数时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最低分后再求平均分数.试设计一个算法解决该问题,要求画出流程图,写出程序(假定分数采用10分制,即每位选手的分数最低为0分,最高为10分).,解 算法分析:由于共有12名评委,所以每位选手会有12个分数,我们可以用循环结构来完成这12个分数的输入,同时设计累加变量求出这12个分数之和.本题的关键在于从这12个输入的分数中找出最大数与最小数,以便从总分中减去这两个数.由于每位选手的分数都介于0分和10分之间,故我们可以先假设其中的最大数为0,最小数为10,然后每

17、输入一个评委的分数,就进行一次比较.若输入的数大于0,就将其代替最大数;若输入的数小于10,就用它代替最小的数;依次比较下去,就能找出这12个数中的最大数与最小数,循环结束后,从总和中减去最大数与最小数,再除以10,就得到该选手最后的平均分数.,分析 此题难度较大,利用循环结构,而循环结构中还有选择结构,要分清层次.最好先写算法分析,再画流程图,最后写出伪代码.,流程图如图:伪代码如下:,学后反思 在解决实际问题时,要正确地理解其中的算法思想,根据题目写出其关系式,再写出相应的算法步骤,画出流程图,最后准确地编写出伪代码,同时要注意结合题意加深对算法的理解.,4.在音乐唱片超市里,每张唱片售价

18、25元,顾客若购买5张以上(含5张)唱片,则按照九折收费;若顾客购买10张以上(含10张)唱片,则按照八五折收费,请写出流程图和此算法的伪代码.,举一反三,解析:若用变量a表示顾客购买的唱片数,用变量c表示顾客要缴纳的金额,则需根据唱片数选择其费用的算法,可用选择结构加以判断.,流程图如图:伪代码如下:,考点演练,10.(2010南通二模)下图是由所输入的x值计算y值的一个伪代码,若x依次取数列(nN*,n2 009)的项,求所得y值中的最小值.,解析:当n=1,2,3,4,5,6,时,x依次取5,4,5,此时y的值依次为:25,17,25,29,.故y中的最小值为17.,11.2008年某地

19、森林面积为1 000 km2,且每年增长5%,到哪一年该地森林面积超过2 000 km2?请画出流程图,并写出伪代码.,解析:需要一个累加变量和一个计数变量,将累加变量的初值设为1 000,计数变量从0开始取值.,流程图:伪代码为:,12.某城市现有人口数为100万人,如果年自然增长率为1.2%,试解答下面的问题:(1)写出该市人口总数y(万人)与年份x(年)的函数关系式;(2)用伪代码写出计算10年以后该城市人口总数的算法;(3)用伪代码写出计算大约多少年以后该城市人口总数恰好达到(或超过)120万人的算法.,解析:(1)城市人口总数y(万人)与年份x(年)的函数关系式为典型的增长率模型,故y=100(1+0.012)x.(2)由(1)知10年后该城市人口总数为y=100(1+0.012)10,要写出计算10年以后该城市人口总数的算法,只需要把算法的循环次数控制在10次就可以,所以得到算法的伪代码如图1所示.,(3)设x年后该城市人口总数恰好达到(或超过)120万人,即要求100(1+0.012)x120时的最小整数x.算法伪代码如图2所示.,图1 图2,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号