算法与程序框图
一、程序框图与算法基本逻辑结构: 1.程序框图符号及作用:
程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形. 图形符号 名称 终端框(起止框) 功能 表示一个算法的起始和结束,是任何算法程序框图不可缺少的 表示一个算法输入和输出的信息,可用在算法中任何需要输 输入、输出框 入、输出的位置 赋值、计算.算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内 判断某一条件是否成立,成立时出口处标明“是”或“Y”;不成立时标明“否”或“N” 连接程序框,表示算法进行的前进方向以及先后顺序 如果一个流程图需要分开来画,要在断开处画上连接点,并标出连接的号码 处理框(执行框) 判断框 流程线 连接点 2例:解一元二次方程:ax?bx?c?0(a?0)
2.画程序框图的规则:
为了使大家彼此之间能够读懂各自画出的框图,必须遵守一些共同的规则,下面对一些常用的规则做一简要介绍.
(1)实用标准的框图符号.
(2)框图一般按从上到下、从左到右的方向画.
(3)一个完整的程序框图必须有终端框,用于表示程序的开始和结束.
(4)除判断框外,大多数框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号,另外,一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;还有一种是多分支判断,有几个不同的结果.
(5)在图形符号内用于描述的语言要非常简练清楚.
1开始13.算法的三种基本逻辑结构: (1)顺序结构
顺序结构是最简单的算法结构,语句与语句之间, 框与框之间是按从上到下的顺序进行的,它是由 若干个依次执行的处理步骤组成的,它是任何一 个算法离不开的基本结构.如图,只有在执行完步 骤n后,才能接着执行步骤n+1.
解:算法如下: S1 a←5; S2 b←8; S3 h←9;
S4 S←(a+b)×h/2; S5 输出S. 流程图如下:
(2)条件结构
一些简单的算法可以用顺序结构来实现,顺序结构中所表达的逻辑关系是自然串行,线性排列的.但这种结构无法描述逻辑判断,并根据判断结果进行不同的处理的操作,(例如遇到十字路口看信号灯过马路的问题)因此,需要另一种逻辑结构来处理这类问题.
条件结构的结构形式如图,在此结构中含有一个判断框,算法执行到此判断框给定的条件P时,根据条件P是否成立,选择不同的执行框(步骤A,步骤B),无论条件P是否成立,只能执行步骤A或步骤B之一,不可以两者都执行或都不执行.步骤A和步骤B中可以有一个是空的.
例:某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为
满足条件?是步骤A步骤B否满足条件?是步骤A否S(a+b)×h/2输出S结束bh89?
步骤n
?
步骤n+1
?
开始a5例:.已知梯形的上底、下底和高分别为5、8、9,写出求梯形的面积的算法,画出流程图.
?0.53??,c???50?0.53?(??50)?0.85,??50,其中?(单位:kg)为行李的重量.
??50, 试给出计算费用c(单位:元)的一个算法,并画出流程图.
S1 输入行李的重量?;
S2 如果??50,那么c?0.53??,
否则c?50?0.53?(??50)?0.85;
S3 输出行李的重量?和运费c.
(3)循环结构
在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理过程.重复执行的处理步骤称为循环体.
例:北京成功举办了2008年第29届奥运会.你知道在申奥的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗对筛选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市得票超过总票数的一半,那么该城市就获得举办权;如果所有申办城市得票数都不超过总票数的一半,则将得票数最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止.怎样用算法结构表述上面的操作过程
解:算法为:
S1 投票;
S2 统计票数,如果有一个城市得
票超过总票数的一半,那么该城 市就获得举办权,转S3,否则淘 汰得票数最少的城市,转S1;
S3 宣布主办城市.
这里,“投票”就是一个循环体
循环结构有两种形式:直到型循环结构(until型)和当型循环结构(while型)
(1)直到型循环结构
如图,直到型循环在执行一次循环体A之后,对控制循环的条件P进行判断,如果条件P不成立则返回继续执行循环体A,执行后,再判断条件P是否成立,依次重复操作,直到某一次给定的判断条件P成立为止.此时,不再返回来执行循环体A,离开循环结构,继续执行下面的结构.直到型循环,因其先执行一次循环体,再对控制循环的..条件进行判断,然后根据判断的结果决定是否继续执行循环体.当条件不成立时继续执....行循环体,当条件成立时,跳出循环结构,所以, ....
我们也把直到型循环称为“后测试型”循环.
(2)当型循环结构
如图,每次执行循环体A前,先对控制循环的条件P进行判断,当条件P成立时执行循环体A,循环体A执行完毕后,返回来再判断条件P是否成立,如果条件P仍然成立,那么再执行循环体A,如此反复执行循环体A,直到某一次返回来判断条件P不成立时为止,此时不再执行循环体A,离开循环结构,继续执行下面的结构.也正因为当型循环结构先对条件P进行判断,当条件P成立时,执行循环体;当条件不成立时,.........跳出循环结构,我们常常把当型循环结构还称为“前测试型”循环. 区别:
“当型循环”结构中的循环条件时维持循环的;“直到型循环”结构中的循环条件时终止循环的. 联系:
两个循环形式不同但功能和作用相同,一般情况下可以相互转化.
例:写出计算
满足条件?否是循环体A循环体A否满足条件?是?i的算法及程序框图(分别用直到型循环和当
i?1100型循环)(全解P15)
解:第一步:设i的值为1; 第二步:设sum的值为0; 第三步:如果i≤100执行第四步, 否则转去执行第七步;
第四步:计算sum+i并将结果代替sum; 第五步:计算i+1并将结果代替i; 第六步:转去执行第三步;
第七步:输出sum的值并结束算法.
循环结构的应用:
确定循环变量和初始条件;
A确定算法中反复执行的部分,即循环体; 确定循环的条件; B注意不要出现“死循环”.
二、基本算法语句 1、输入语句
2、输出语句
3、赋值语句
4、条件语句 IF-THEN-ELSE格式 格式
5、循环语句 (1)WHILE语句 (2)UNTIL语句
IF-THEN
三、算法案例
1.任何一种程序设计语言都包含五种基本的算法语句,
它们是输入语句 , 输出语句, 赋值语句,条件语句,循环语句 2.输入语句的一般格式是INPUT\提示内容\变量; 输出语句的一般格式是PRINT\提示内容\表达式;
赋值语句的一般格式是变量?表达式;
IF条件 条件语句的一般格式是
THEN 或
IF条件ELSETHEN语句体ENDIF语句体1语句体2ENDIF;
DO 循环语句的一般格式是
WHILE循环体 和
条件.
LOOPUNTIL条件循环体WEND输入语句、 输出语句、 赋值语句基本对应于程序框图中的顺序结构;条件语句、循环语句分别用来表达程序框图中的条件结构和循环结构. 3.常用符号
运算符号:加_+_,减-__,乘*__,除/__,乘方a^b,整数取商\\,求余数MOD.
逻辑符号:且AND,或OR,大于>,等于=,小于<,大于等于>=,小于等于<=,不等于<>. 常用函数:绝对值ABS,平方根SQR,取整INT.
4.算法案例
(1)辗转相除法和更相减损术
辗转相除法和更相减损术都是求两个正整数的最大公约数的方法.
(1)辗转相除法就是对于给定的两个正整数,用大数除以小数,若余数不为0,则将小数和余数构成新的一对数,继续上面的除法,反复执行此步骤,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数.
(2)更相减损术就是对于给定的两个正整数,若它们都是偶数,则将它们反复除以2(假设进行了k次),直到它们至少有一个不是偶数后,将大数减小数,然后将差和较小的数构成一对新数,继续上面的减法,反复执行此步骤,直到差和较小的数相等,此时相等的数再乘以原来约简的2即为所求两数的最大公约数. (2)秦九韶算法
秦九韶算法是求多项式值的优秀算法.
nn?1设f(x)?anx?an?1x?L?a1x?a0,
k改写为如下形式:
f(x)?(L(anx?an?1)x?an?2)xL?a1)x?a0.
设v0?an,v1?v0x?an?1
算法与程序框图汇总



