频道栏目
读书频道 > 软件开发 > c语言 > C/C++程序设计
2.流程图表示法
2014-05-05 14:51:44     我来说两句
收藏   我要投稿

本文所属图书 > C/C++程序设计

本书针对初学者的特点,采取提出问题-分析问题-解决问题-归纳提高的教学模式,突出对学习者计算思维、编程实践能力的培养与训练。全书共分为12章,全面系统地介绍了C C++语言的基本概念、语法及程序设计方法,详  立即去当当网订购

(1)流程图
流程图是一种用于表示算法或过程的图形。在流程图中,使用各种符号表示算法或过程的每一个步骤,并使用箭头符号将这些步骤按照顺序连接起来。使用流程图表示算法可以避免自然语言的模糊缺陷,且独立于任何一种特定的程序设计语言。美国国家标准化协会(American National Standard Institute,ANSI)规定了一些常用的符号,表1-2中分别列出了标准的流程图符号、名称和功能,这些符号已被世界各国的广大程序设计工作者普遍接受和采用。


 

【例1-3】有黑和蓝两个墨水瓶,但却错把黑墨水装在了蓝墨水瓶子里,而蓝墨水错装在了黑墨水瓶子里,请将其互换。

分析:这是一个非数值运算问题。因为两个瓶子的墨水不能直接交换,所以,解决这一问题的关键是需要引入第三个墨水瓶。设A代表装黑墨水的瓶子,B代表装蓝墨水的瓶子,C代表空瓶子,A→C代表把黑墨水瓶的墨水倒入空瓶子中,B→A代表把蓝墨水瓶的墨水倒入黑墨水瓶中,C→B代表把空瓶子中的墨水倒入蓝墨水瓶中,其算法的流程图如图1-1所示。

【例1-4】用流程图来描述“求A除以B的余数(A、B为整数)”的算法。

分析:本例中,为了使算法具有更好的适用性,A和B的值可以由键盘输入得到,为了增强算法的严密性,先判断输入的除数B是否为零,然后计算A除以B的余数,最后输出,算法的流程图如图1-2所示。
 


1966年,Bohra和Jacopini提出了算法的三种基本结构,并用这三种基本结构作为描述算法的基本单元。

1)顺序结构。顺序结构表示的是算法按照操作步骤描述的顺序依次执行的一种结构,用流程图来描述如图1-3所示。

2)选择结构。选择结构(又称分支结构)表示的是按照条件的成立与否决定程序执行不同的分支。如图1-4所示为选择结构的流程图。

在选择结构中,根据条件P的判断结果,决定执行A或执行B,不能既执行A又执行B。无论执行A或执行B,都要经过一个出口脱离选择结构。在许多情况下,B框允许是空的,即不执行任何操作。



3)循环结构。在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤称为循环体。循环结构又称重复结构,循环结构可细分为两类:

?当型循环结构,如图1-5a所示,它的功能是当给定的条件P1成立时,执行A框,A框执行完毕后,再判断条件P1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P1不成立为止,此时不再执行A框,离开循环结构。

?直到型循环结构,如图1-5b所示,它的功能是先执行A框,然后判断给定的条件P2是否成立,如果P2仍然成立,则继续执行A框,直到某一次给定的条件P2不成立为止,此时不再执行A框,离开循环结构。

 

(3)流程图算法举例

【例1-5】已知一个学生的平时和期末成绩,请画出计算一个学生的总评成绩并给出成绩评定结果的流程图。

分析:本例要求输入学生的平时成绩(sc1)及期末成绩(sc2),最后根据公式计算学生总评成绩(tol)。tol的计算公式为:tol=sc1×0.3+sc2×0.7,算法的流程图如图1-6所示。

【例1-6】使用流程图描述例1-2中n!的算法(如图1-7所示)。

 

N-S流程图是美国学者I.Nassi和B.Shneiderman在1973年提出的一种流程图形式,用两个学者名字的首字母命名。其根据是:既然任何算法都是由前面介绍的三种基本结构组成的,那么各基本结构之间的流程线就是多余的,因此去掉了所有的流程线,将全部的算法写在一个矩形框内,在该框内可以包含其他的从属于它的框。N-S流程图也是算法的一种结构化描述方法,同样也有三种基本结构,使用三种N-S流程图可以完成任何复杂算法的表示,下面分别进行介绍。

1)顺序结构:图1-8a表示顺序结构,用A和B两个框表示顺序结构,即先执行A,再执行B。

2)选择结构:图1-8b表示选择结构,当条件P成立时,执行A操作;不成立时,执行B操作。

3)循环结构:图1-8c表示当型循环结构,当条件P成立时,反复执行循环体,直到条件P不成立为止。图1-8d表示直到型循环,先执行循环体,再判断条件P是否成立,若条件P成立,继续执行循环体,直到条件P不成立则不再执行循环体。

 

下面,给出前面的算法的N-S流程图表示。

【例1-7】将例1-3中的算法用N-S流程图来表示(如图1-9所示)。

 

【例1-8】将例1-5中的算法用N-S流程图来表示(如图1-10所示)。

【例1-9】将例1-6中的算法用N-S流程图来表示(如图1-11所示)。

图1-10 例1-5N-S流程图  图1-11 例1-6N-S流程图除上述三种表示法,还可以用伪代码表示算法。作为初学者,重点掌握流程图表示法和N-S结构化流程图表示法。

 

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3.2 算法的表示方法
下一篇:1.4.1 C++语言的发展
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站