算法与流程图
- 格式:pptx
- 大小:180.30 KB
- 文档页数:16
算法、代码与流程图的关系理解下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 算法算法是解决问题的一系列明确步骤。
它描述了如何完成特定任务或解决特定问题的逻辑过程。
§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。
算法和流程图(及N-S流程图)算法和流程图2.1.1算法计算机语⾔只是⼀种⼯具。
光学习语⾔的规则还不够,最重要的是学会针对各种类型的问题,拟定出有效的解决⽅法和步骤即算法。
有了正确⽽有效的算法,可以利⽤任何⼀种计算机⾼级语⾔编写程序,使计算机进⾏⼯作。
因此,设计算法是程序设计的核⼼。
并⾮只有“计算”的问题才有算法。
⼴义地说,为解决⼀个问题⽽采取的⽅法和步骤,称为“算法”。
不要把“计算⽅法”(computational method)和“算法”(algorithm)这两个词混淆。
前者指的是求数值解的近似⽅法,后者是指解决问题的⼀步⼀步的过程。
在解⼀个数值计算问题时,除了要选择合适的计算⽅法外,还要根据这个计算⽅法写出如何让计算机⼀步⼀步执⾏以求解的算法。
对于计算机外⾏来说,他们可以只使⽤别⼈已设计好的现成算法,只需根据算法的要求给以必要的输⼊,就能得到输出的结果。
对他们来说,算法如同⼀个“⿊箱⼦”⼀样,他们可以不了解“⿊箱⼦”中的结构,只是从外部特性上了解算法的作⽤,即可⽅便地使⽤算法。
但对于程序设计⼈员来说,必须会设计算法,并且根据算法编写程序。
对同⼀个问题,可以有不同的解题⽅法和步骤。
例如,求1+2+3+…+100,可以先进⾏1+2,再加3,再加4,⼀直加到100,也可采取100+ (1+99)+(2+98)+…+(49+51)+50=100+50+49×100=5050。
还可以有其它的⽅法。
当然,⽅法有优劣之分。
有的⽅法只需进⾏很少的步骤,⽽有些⽅法则需要较多的步骤。
⼀般说,希望采⽤⽅法简单,运算步骤少的⽅法。
因此,为了有效地进⾏解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
⼀个计算问题的解决过程通常包含下⾯⼏步:确⽴所需解决的问题以及最后应达到的要求。
必须保证在任务⼀开始就对它有详细⽽确切的了解,避免模棱两可和含混不清之处。
分析问题构造模型。
在得到⼀个基本的物理模型后,⽤数学语⾔描述它,例如列出解题的数学公式或联⽴⽅程式,即建⽴数学模型。