1.1.2算法的三种基本逻辑结构和框图表示

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一.程序框图的概念通常用一些通用图形符号构成一张图来表示算法,这种图称为程序框图(简称框图)或流程图流程图是由一些图框和带箭头的流程线组成的,其中图框表示操作的类型,图框中的文字和符号表示操作的内容,带箭头的流程线表示操作的先后次序。写出判断两条直线l1:y=k1x+b1,l2:y=k2x+b2是否垂直的程序框图。是输出l1,l2不垂直是否开始输入k1,k2k1k2=-1输出l1,l2垂直结束画出计算1+2+3+4+5的程序框图:开始S=1S=S+2S=S+3S=S+4S=S+5结束输出S由上述所举的例子可知,程序框图就是由一些规定的图形和流程线组成的,并用来描述算法的图形,但需要注意的是,这些规定的图形必须是大家“约定俗成”的,而不能有任何创新之举,只有这样,用程序框图描述的算法才能被学习和交流。图形符号名称功能终端框(起止框)一个算法的起始和结束输入、输出框一个算法输入和输出的信息处理框(执行框)赋值、计算判断框判断某一条件是否成立,出口成立标“是”不成立标“否”流程线连接程序框连接点连接程序框图的两部分或二、程序框图的基本符号(1)起止框用“”表示,是任何流程不可少的,表明程序的开始或结束;(2)输入、输出框用“”表示,可用在算法中任何需要输入、输出的位置,需要输入的字母、符号、数据都填在框内;(3)处理框用“”表示,算法中处理数据需要的算式、公式等可以分别写在不同的处理框内,另外,对变量进行赋值时,也要用到处理框;(4)当算法要求我们对两个不同的结构进行判断时,需要将实现判断的条件写在判断框内,判断框用“”表示;(5)一个算法步骤到另一个算法步骤用流程线连接,如果一个程序框图需要分开来画,要在断开处画上连结点,并标出连接的号码.11计算△=b2-4ac输入a,b,c开始结束输出两实数解输出无实数解否是△01三.画程序框图的规则:(1)使用标准的框图的符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框外,其它框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;(4)一种判断框是二择一形式的判断,有且仅有两个可能的结果;另一种是多分支判断,可能有几种不同的的结果;(5)在图形符号内描述的语言要非常简练清楚。例1、下列关于程序框图说法正确的是A、程序框图是描述算法的语言B、在程序框图中,一个判断框最多只能有一个退出点C、程序框图虽然可以描述算法,但不如用自然语言描述算法直观D、程序框图中,所有框图都可以有多个进入点,多个退出点A例2.(1)画出求一个数的百分之几的程序框图;(2)画出已知一个数的百分率,求这个数的程序框图;开始b=ap结束输出b输入给的数a输入要求的百分率p开始a=b/p结束输出a输入所给的数取百分率后的结果b输入所用的百分率p练习1、下列关于程序框图的说法正确的是()A、程序框图是描述算法的语言B、程序框图可以没有输出框,但必须要有输入框给变量赋值C、程序框图可以描述算法,但不如自然语言描述算法直观D、程序框图和流程图不是一个概念2、下列功能“”没有功能的是()A、赋值B、计算C、判断D、以上都不对开始输入ni=2求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?r=0?N不是质数N是质数结束是否是否开始结束求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?是否r=0?N不是质数N是质数是否输入ni=2顺序结构循环结构条件结构2.算法的三种基本逻辑结构:顺序结构、条件结构、循环结构。求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?是否r=0?N不是质数N是质数是否输入ni=2顺序结构循环结构条件结构算法千差万别,但都是由这三种基本逻辑结构构成的.你能说出这三种基本逻辑结构的特点吗?条件结构与循环结构有什么区别和联系?(1)顺序结构顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。步骤n步骤n+1例3.已知点和直线,求点到直线的距离。000(,)Pxy:0lAxByC000(,)Pxyld解:(1)用数学语言来描述算法:S1:输入点的坐标,输入直线方程的系数A,B,C;00,xyS2:计算;2200||/dAxByCABS3:输出;dS1:输入点的坐标,及直线系数:已知点和直线,求点到直线的距离。000(,)Pxy:0lAxByC000(,)Pxyld解:(2)用框图来描述算法:00,,,,xyABC2200||/dAxByCABd开始输入结束00,,,,xyABCS2:计算:2200||/dAxByCABS3:输出;d例4、已知一个三角形的三边分别为a、b、c,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。开始输入a,b,c结束p=a+b+c2S=.p(p-a)(p-b)(p-c)输出S例5、已知两个变量A和B的值,试设计一个交换这两个变量的值的算法,并画出程序框图。第一步、输入A、B第二步、令X=A第三步、令A=B第四步、令B=X第五步、输出A、B(2)条件结构在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.分类是算法中经常发生的事情,条件结构的主要作用就是表示分类.条件结构可用程序框图表示为下面两种形式.步骤A步骤B满足条件?否是步骤A满足条件?否是例6任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.条件结构算法步骤如下:第一步,输入3个正实数a,b,c.第二步,判断a+b>c,a+c>b,b+c>a是否同时成立.若是,则存在这样的三角形;否则,不存这样的三角形.条件结构练习已知函数,设计一个算法求相应的函数值,并画出程序框图。3-xy(3)循环结构循环结构指的是按照一定的条件反复执行的某些算法步骤.反复执行的步骤称为循环体.循环体满足条件?否是循环体满足条件?否是执行一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.在每次执行循环体前,对条件进行判断,当条件满足,执行循环体,否则终止循环.例7设计一个计算1+2+3+…+100的值的算法,并画出程序框图.第一步:确定首数a,尾数b,项数n;第二步:利用公式“S=n(a+b)/2”求和;第三步:输出求和结果。算法1:开始结束输入a,b,nS=n(a+b)/2输出S开始i=1S=0i=i+1S=S+ii≤100?输出S结束否是例7设计一个计算1+2+3+…+100的值的算法,并画出程序框图.第1步,0+1=1.第2步,1+2=3.第3步,3+3=6.第4步,6+4=10.……第100步,4950+100=5050.算法2:第一步,令i=1,S=0.第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.第三步,S=S+i.第四步,i=i+1,返回第二步.当型循环结构(1)确定循环体:i=i+1s=s+i(2)初始化变量:i=1s=0(3)循环控制条件:i≤100结束s=s+ii=i+1i≤100?输出S否是i=0;S=0开始结束输出Si=0;S=0开始S=s+ii=i+1i100?否是循环结构直到型结构当型结构例7设计一个计算1+2+3+…+100的值的算法,并画出程序框图.s=s+ii=i+1解决方法就是加上一个判断,判断是否已经加到了100,如果加到了则退出,否则继续加。直到型结构当型结构s=s+ii=i+1是否s=s+ii=i+1否是i≤100?i100?请填上判断的条件。在解题的过程中,用累加变量S表示每一步的计算结果,即把S+i的结果仍记为S,从而把第i步表示为S=S+i,其中S的初始值为0,i依次取1,2,…,100.由于i同时记录了循环的次数,所以也称为计数变量.循环结构中都有一个计数变量和累加变量,计数变量用以记录循环次数,同时它的取值还用于判断循环是否终止,累加变量用于输出结果,累加变量和计数变量一般是同步执行的,累加一次,计数一次.小结1、循环结构的特点:2、循环结构的框图表示:3、循环结构该注意的问题避免死循环的出现,设置好进入(结束)循环体的条件。当型和直到型重复同一个处理过程1.对任意正整数n,111123Sn的值,并画出程序框图.结束开始输入一个正整数n输出S的值S=0i=1S=S+1/ii=i+1i≤nYN设计一个算法求练习2.设计一算法,求积:1×2×3×…×100,画出流程图.结束输出Si=0,S=1开始i=i+1S=S*ii≥100?否是3.求的值22221299100解:算法步骤:第一步,令i=1,s=0.第二步,若成立,则执行第三步,否则,输出s.第三步,计算s=s+i2第四步,计算i=i+1,返回第二步.开始i=1S=0i=i+1S=S+i2i≤100?输出S结束否是当型循环结构4.写出下列程序框图的运行结果。开始()/2Sabh输出S结束245abh(1)运行结果。(2)当x输入,-2,0,2时运行结果分别是。开始输入x0x?输出y1yYesNo1y0x?0yYesNo结束(3)已知函数,程序框图表示的是给出x值,求相应的函数值的算法。将框图补充完整。其中①处应填写;②处应填写。()|3|fxx3yx3x

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功