第六讲、算法和流程图
- 格式:ppt
- 大小:239.50 KB
- 文档页数:32


算法及流程图的总结
算法及流程图的总结
算法及流程图的总结
一、概念
1.算法:算法通常是指可以用计算机来解决的某一类问题的程序或步骤。
算法的程序或步骤应具有明确性、有效性和有限性。
2.流程图:流程图是由一些图框和带箭头的'流程线组成的,如图,其中图框表示各种操作的内容,带箭头的流程线表示操作的先后次序。
二、试题解答
1.体会算法的思想,了解算法的含义,能够解决简单的算法步骤。
2.算法的描述方式有自然语言、程序框设计语言、伪代码等等,他们之间能够互相转化。
3.理解程序框图的顺序结构、条件结构和循环结构这三种基本的逻辑结构,能识别和理解简单的框图的功能,能够运用三种基本逻辑结构设计程序框图来解决简单的问题。
三、解答“基本算法语句”一类的试题注意事项
1.理解赋值语句、输入和输出语句的格式和作用,并能用它们编写程序。
2.通过具体的实例理解并掌握条件语句、循环语句,借助框图中的条件结构和循环结构,用这两种语句设计程序。
3.无论用自然语言,还是用框图语言和程序语句表示算法,都是对算法的一种形式化的表示,而算法才是解决问题的关键。
§13.1 算法与流程图1.以下对算法的描述正确的有个.①对一类问题都有效;②算法可执行的步骤必须是有限的;③计算可以一步步地进行,每一步都有确切的含义;④是一种通法,只要按部就班地做,总能得到结果.答案42.任何一个算法都必须有的基本结构是 .答案顺序结构3.下列问题的算法适宜用选择结构表示的是(填序号).①求点P(-1,3)到直线l:3x-2y+1=0的距离②由直角三角形的两条直角边求斜边③解不等式ax+b>0 (a≠0)④计算100个数的平均数答案③4.下列4种框图结构中,是直到型循环结构的为(填序号).答案②5.(2008·广东理,9)阅读下面的流程图,若输入m=4,n=3,则输出a= ,i= .(注:框图中的赋值符号“←”也可以写成“=”或“:=”)基础自测答案 12 3例1 已知点P (x 0,y 0)和直线l:Ax+By+C=0,求点P (x 0,y 0)到直线l 的距离d ,写出其算法并画出 流程图. 解 算法如下:第一步,输入x 0,y 0及直线方程的系数A ,B ,C. 流程图: 第二步,计算Z 1←Ax 0+By 0+C. 第三步,计算Z 2←A 2+B 2. 第四步,计算d ←21Z Z .第五步,输出d.例2 “特快专递”是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式,某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:f =⎩⎨⎧>⨯-+⨯≤)100(85.0)100(6.0100)100(6.0ωωωω其中f(单位:元)为托运费,ω为托运物品的重量(单位:千克).试设计计算费用f 的算法,并画出流程图.解 算法如下: S1 输入ω;S2 如果ω≤100,那么f ←0.6ω;否则f ←100×0.6+(ω-100)×0.85; S3 输出f. 流程图为:例3 (14分)画出计算12-22+32-42+…+992-1002的值的流程图.解 流程图如下图.14分1.写出求解一个任意二次函数y=ax 2+bx+c(a ≠0)的最值的算法. 解 算法设计如下: 第一步,计算m ←ab ac 442-; 第二步,若a >0,输出最小值m; 第三步,若a <0,输出最大值m.2.到银行办理个人异地汇款(不超过100万元),银行收取一定的手续费,汇款额不超过100元,收取1元手续费,超过100元但不超过5 000元,按汇款额的1%收取,超过5 000元,一律收取50元手续费,试用条件语句描述汇款额为x 元时,银行收取手续费y 元的过程,画出流程图. 解 这是一个实际问题,故应先建立数学模型,y=⎪⎩⎪⎨⎧≤<≤<≤<00000010005.500005100,01.01000,1x x x x 由此看出,求手续费时,需先判断x 的范围,故应用选择结构描述. 流程图如图所示:3.利用两种循环写出1+2+3+…+100的算法,并画出各自的流程图. 解 直到型循环算法: 第一步:S ←0;第二步:I←1;第三步:S←S+I;第四步:I←I+1;第五步:如果I不大于100,转第三步;否则,输出S.相应的流程图如图甲所示.当型循环算法如下:S1 令i←1,S←0S2 若i≤100成立,则执行S3;否则,输出S,结束算法S3 S←S+iS4 i←i+1,返回S2相应的流程图如图乙所示.一、填空题1.算法:S1 输入n;S2 判断n是否是2,若n=2,则n满足条件,若n>2,则执行S3;S3 依次从2到n-1检验能不能整除n,若不能整除n,满足上述条件的是 .答案质数2.在算法的逻辑结构中,要求进行逻辑判断,并根据结果进行不同处理的是哪种结构 .答案选择结构和循环结构3.阅读下面的流程图,若输入的a、b、c分别是21、32、75,则输出的a、b、c分别是 .答案75,21,324.如果执行下面的流程图,那么输出的S= .答案 2 5505.(2009·兴化市板桥高级中学12月月考)如下图的流程图输出的结果为 .答案 1326.如图所示,流程图所进行的求和运算是 .答案 21+41+61+…+2017.(2008·山东理,13)执行下边的流程图,若p=0.8,则输出的n= .(注:框中的赋值符号“←”,也可以写成“=”或“:=”)答案 48.若框图所给的程序运行的结果为S=90,那么判断框中应填入的关于k 的判断条件是 .答案 k ≤8二、解答题9.已知函数f(x)=⎩⎨⎧≥-<-)0(52)0(13x x x x ,写出该函数的函数值的算法并画出流程图.解 算法如下: 第一步,输入x.第二步,如果x <0,那么使f(x)←3x-1;否则f(x)←2-5x.第三步,输出函数值f(x). 流程图如下:10.写出求过两点P 1(x 1,y 1),P 2(x 2,y 2)的直线的斜率的算法,并画出流程图.解 由于当x 1=x 2时,过两点P 1、P 2的直线的斜率不存在,只有当x 1≠x 2时,根据斜率公式 k=1212x x y y --求出,故可设计如下的算法和流程图.算法如下:第一步:输入x 1,y 1,x 2,y 2;第二步:如果x 1=x 2,输出“斜率不存在”,否则,k ←1212x x y y --;第三步:输出k. 相应的流程图如图所示:11.画出求211⨯+321⨯+431⨯+…+100991⨯的值的流程图.解 流程图如图所示:12.某企业2007年的生产总值为200万元,技术创新后预计以后的每年的生产总值将比上一年增加5%,问最早哪一年的年生产总值将超过300万元?试写出解决该问题的一个算法,并画出相应的流程图. 解 算法设计如下:第一步,n ←0,a ←200,r ←0.05. 第二步,T ←ar(计算年增量). 第三步,a ←a+T (计算年产量).第四步,如果a ≤300,那么n ←n+1,重复执行第二步. 如果a >300,则执行第五步. 第五步,N ←2 007+n. 第六步,输出N. 流程图如下: 方法一方法二§13.2 基本算法语句、算法案例1.下面是一个算法的操作说明:①初始值为n←0,x←1,y←1,z←0;②n←n+1;③x←x+2;④y←2y;⑤z←z+xy;⑥如果z>7 000,则执行语句⑦;否则回到语句②继续执行;⑦打印n,z;⑧程序终止.由语句⑦打印出的数值为、 .答案8 7 6822.按照下面的算法进行操作:S1 x←2.35S2 y←Int(x)S3 Print y最后输出的结果是 .答案23.读下面的伪代码:Read xIf x>0 ThenPrint xElsePrint -xEnd If这个伪代码表示的算法的功能是 .答案输入一个数,输出其绝对值4.下面是一个算法的伪代码.如果输入的x的值是20,则输出的y的值是 .答案150基础自测5.与下列伪代码对应的数学表达式是 .Read ne←0S←1For I From 1 To n Step 1S←S×Ie←e+1/SEnd forPrint e答案S=1+!21+!31+…+!1n例1设计算法,求用长度为l的细铁丝分别围成一个正方形和一个圆时的面积.要求输入l的值,输出正方形和圆的面积.解伪代码如下:Read lS1←(l×l)/16S2←(l×l)/(4×3.14)Print S1Print S2End例2 (14分)已知分段函数y=⎪⎩⎪⎨⎧>+=<+-,1,0,1xxxxx,编写伪代码,输入自变量x的值,输出其相应的函数值,并画出流程图.解伪代码如下:流程图如图所示:Read xIf x<0 Theny ←-x+1ElseIf x=0 Theny←0Elsey←x+1End IfEnd IfPrint yEnd 7分例3 编写一组伪代码计算1+21+31+…+00011,并画出相应的流程图.解 伪代码如下: i ←1 S ←0While i ≤1 000 S ←S+1/i i ←i+1 End While Print S End流程图如图所示:1.下面的表述: ①6←p; ②t ←3×5+2; ③b+3←5;④p ←((3x+2)-4)x+3; ⑤a ←a 3; ⑥x,y,z ←5; ⑦ab ←3; ⑧x ←y+2+x.其中正确表述的赋值语句有 . (注:要求把正确的表述的序号全填上) 答案 ②④⑤⑧2.某百货公司为了促销,采用打折的优惠办法: 每位顾客一次购物①在100元以上者(含100元,下同),按九五折优惠; ②在200元以上者,按九折优惠; ③在300元以上者,按八五折优惠; ④在500元以上者,按八折优惠.试写出算法、画出流程图、伪代码,以求优惠价. 解 设购物款为x 元,优惠价为y 元, 则优惠付款公式为y=⎪⎪⎪⎩⎪⎪⎪⎨⎧≥<≤<≤<≤<500,8.0500300,85.0300200,9.0200100,95.0100,x x x x x x x x x x 算法分析: S1 输入x 的值;S2 如果x <100,输出y ←x,否则转入S3; S3 如果x <200,输出y ←0.95x,否则转入S4; S4 如果x <300,输出y ←0.9x,否则转入S5; S5 如果x <500,输出y ←0.85x,否则转入S6; S6 输出y ←0.8x.3.某玩具厂1996年的生产总值为200万元,如果年生产增长率5%,计算最早在哪一年生产总值超过300万元.试写出伪代码. 解 伪代码如下: n ←1 996 p ←1.05 a ←200 While a ≤300a←a×pn←n+1End WhilePrint nEnd一、填空题1.伪代码a←3b←5Print a+b的运行结果是 .答案82.为了在运行下面的伪代码后输出y=16,应输入的整数x的值是 . Read xIf x<0 Theny←(x+1)2Elsey←1-x2End IfPrint y答案-53.写出下列伪代码的运行结果.图1 图2(1)图1的运行结果为;(2)图2的运行结果为 .答案(1)7 (2)64.以下给出的是用条件语句编写的一个伪代码,该伪代码的功能是 .答案 求下列函数当自变量输入值为x 时的函数值f(x),其中f (x )=⎪⎩⎪⎨⎧>-=<3,13,23,22x x x x x 5.下面是一个算法的伪代码,其运行的结果为 .答案 2 5006.如图所示,该伪代码表示的作用是 .答案 求三个数中最大的数7.如图(1)是某循环流程图的一部分,若改为图(2),则运行过程中I 的值是 .答案18.图中算法执行的循环次数为 .答案333二、解答题9.用条件语句描述下面的算法流程图.解Read xIf x<0 Theny←2×x+3ElseIf x>0 Theny←2×x-5Elsey←0End IfEnd IfPrint yEnd10.请设计一个问题,使得该问题的算法如已知的伪代码所示.解 已知圆O 内有一个边长为a 的圆的内接正方形,求圆的面积比正方形的面积大多少? 11.有一个算法如下: S1 输入x; S2 判断x >0是:z ←1;否:z ←-1; S3 z ←1+z; S4 输出z.试写出上述算法的流程图及相应的伪代码. 解12.一个小朋友在一次玩皮球时,偶然发现一个现象:球从某高度落下后,每次都反弹回原高度的31,再落下,再反弹回上次高度的31,如此反复.假设球从100 cm 处落下,那么第10次下落的高度是多少?在第10次落地时共经过多少路程?试用伪代码表示其算法. 解 伪代码如图所示:Read a r ←2a /2 S ← ×r ×r -a ×a Print S EndRead xIf x >0 Thenz ←1 Elsez ←-1 End If z ←z +1 Print z Endh ←100 s ←100 i ←2While i ≤10h ←h /3 s ←s +2×h i ←i +1 End WhilePrint “第10次下落的高度为:”;h Print “第10次落地时共经过的路程为:”;s End。