算法与流程图
- 格式:ppt
- 大小:1.22 MB
- 文档页数: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。
算法和流程图(及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。
还可以有其它的⽅法。
当然,⽅法有优劣之分。
有的⽅法只需进⾏很少的步骤,⽽有些⽅法则需要较多的步骤。
⼀般说,希望采⽤⽅法简单,运算步骤少的⽅法。
因此,为了有效地进⾏解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
⼀个计算问题的解决过程通常包含下⾯⼏步:确⽴所需解决的问题以及最后应达到的要求。
必须保证在任务⼀开始就对它有详细⽽确切的了解,避免模棱两可和含混不清之处。
分析问题构造模型。
在得到⼀个基本的物理模型后,⽤数学语⾔描述它,例如列出解题的数学公式或联⽴⽅程式,即建⽴数学模型。
算法与流程图算法与流程图是计算机科学中常用的两种工具。
算法是解决问题的一系列有序的步骤,而流程图则是以图形的形式展示算法的执行过程。
本文将介绍算法与流程图的概念、基本结构,以及它们在实际应用中的作用。
算法是一种抽象的表示方法,它描述了一个问题的解决方案。
一个好的算法应该满足以下几个标准:可行性、确定性、有穷性、有界性和有效性。
可行性表示算法能够解决特定问题,确定性表示算法的每一步都是确定的,有穷性表示算法能在有限时间内结束,有界性表示算法的输入和输出都是有限的,有效性表示算法的执行效率应尽可能高。
算法通常由一系列的步骤组成,每个步骤都是精确的、清晰的、可执行的。
算法可以使用伪代码、流程图或编程语言来表示。
伪代码是用自然语言描述的算法步骤,流程图则是以图形的方式表示算法的执行过程。
流程图通常由图形符号、箭头和标注组成。
图形符号代表不同的操作,箭头代表控制流的方向,标注用来描述操作的目的和属性。
一个标准的流程图包含以下几个基本结构:开始、输入、处理、输出和结束。
开始结构用于表示算法的起始点,输入结构用于接收数据,处理结构用于执行算法的主要计算,输出结构用于展示结果,结束结构用于表示算法的结束点。
流程图还可以包含条件结构和循环结构,用于实现分支和循环控制。
算法与流程图在实际应用中发挥着重要的作用。
它们可以帮助程序员理清思路,设计出高效、可靠的程序。
算法与流程图还可以为团队协作提供一个共同的语言,方便沟通与合作。
此外,算法与流程图还是程序设计、软件工程等课程中的重要学习内容,通过学习算法与流程图,学生能够培养逻辑思维、问题分析和解决问题的能力。
总结来说,算法与流程图是计算机科学中常用的解决问题的工具。
算法描述了一个问题的解决方案,而流程图以图形的方式展示算法的执行过程。
算法与流程图在实际应用中发挥着重要的作用,帮助程序员设计出高效、可靠的程序,并提供一个共同的语言用于团队协作。
通过学习算法与流程图,学生能够培养逻辑思维和解决问题的能力。
一、算法的概念
算法(algorithm)这个词出现于12世纪,指的是用阿拉伯数字进行运算的过程。
在数学中,现代意义上的“算法”通常是指可以有计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
例3、求1+2+3+···+100的和。
算法分析:
第一步:对称地取前后两数相加,即1+100,2+99,
3+98,···,50+51,得出两数之和都是101的规律。
第二步:这样的和式共有100/2个,即50个
第三步:总结出计算方法:101*100/2
第四步:计算上式得出结果5050。
方法二:直接累加求1+2+3+ ···+100的和,虽然也能求得结果,但是要做99次加法,这显然是十分烦琐的。
如何去设计算法呢?设计的算法又怎么表示呢?大家看到了,算法的设计分两个内容:一是寻找一种方法;二是描述一下实现这个方法的步骤。
刚才我们已经用语言的形式描述过算法了。
我们还可以用流程图的方法来描术算法。
流程图,又叫做程序框图,是一种较常用的算法表示方法。
流程图用一些几何图形符号表示各种类型的操作,并在框内以简明文字或符号表示具体操作。
实数根的算法(如下图)
用程序框图来表示算法,算法的基本逻辑结构展现得非常清楚,一共有三种不同的基本逻辑结构,分别称为顺序结构、条件结构和循环结构。
顺序结构:完全按照框图的排列顺序执行的结构。
如下图:
例4、用流程图描述求一元二次方程: )0(02
≠=++a c bx ax。