一、程序
程序=算法+数据结构
1.对数据的描述 在程序中指定要用到哪些数据,以及这些数据的类型和数据的组织形式。 这就是数据结构
2.对操作的描述 要求计算机进行的操作步骤 也就是算法
数据是操作的对象,操作的目的是对数据进行加工处理 以得到期望的结果。
算法、数据结构、程序设计方法和语言工具是一个程序设计人员所应具备的知识 算法是灵魂 数据结构是加工对象 语言是工具 编程需要采用合适的方法。
二、算法
1.做任何事情都一定的步骤,为解决一个问题而采取的方法和步骤,就称为算法。
为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
计算机算法可分为两大类,数值运算算法和非数值运算算法,数值运算的目的是求数值解,非数值运算设计的面非常广泛,最常见的是事务管理领域。
2.算法的特性
1)有穷性 一各算法应包含有限的操作步骤,而不是无限的
2)确定性 算法中的每一个步骤都应当是确定的,而不是含糊的、模棱两可的。
3)有零个或多个输入 所谓输入是指在执行算法是需要从外界取得必要的信息。
4)有一个或多个输出 算法的目的是为了求解,“解”就是输出。
5)有效性 算法中的每一个步骤都应当能有效地执行,得到确定的结果。
三、算法的表示方法
算法的表示方法有:自然语言、传统流程图、结构化流程图 和伪代码等
1.用自然语言表示
用自然语言表示通俗易懂但冗长 容易出现歧义 ,除了哪些很简单的问题以外,一般不用自然语言表示算法。
2.用流程图表示算法
流程图是用一些图框来表示各种操作。用图形表示算法,直观形象,易于理解。
菱形图的作用是对一个给定的条件进行判断,根据给定的条件判断是否成立决定如何执行其后的操作。它有把一个入口两个出口。
连接点(小圆圈)是用于将画在不同地方的流程连接起来。
一个流程图包括以下几个部分:
1)表示相应操作的框
2)带箭头的流程线
3)框内外必要的文字说明
流程图不要忘记画箭头,因为它是反应流程的先后的,如不画出箭头就难以判定各框的执行次序了。
传统的流程图存在弊端,在结构化程序设计方法推广之后,好多书刊开始用N-S结构化流程图代替这种传统的流程图。
传统的流程图 流程线顺序无限制,人员不易看懂规范后产生结构化流程图
三种基本结构
1)顺序结构 图2.14
2)选择结构 图2.15
3)循环结构 图2.17 和 图2.18
以上3种基本结构。有以下共同特点:
1)只有一个入口
2)只有一个出口 注意判断框有两个出口,而选择结构只有一个出口
3)结构内的每一部分都有机会会被执行到
4)结构内不存在死循环
可以由以上者3种基本结构组成结构化程序。
用N-S流程图表示算法
在流程图中,完全去掉带箭头的流程线。全部算法写在一矩形框内,该框内还可以包含其他从属于它的框,这种流程图又称N-S结构化流程图。
3.用伪代码表示算法
在设计算法时,可能需要反复修改,而修改流程图比较麻烦。故而出现了一种更方便的表示方法伪代码。
伪代码书写格式比较自由,容易表达出设计者的思想。
4.用机器语言表示算法
四、结构化程序设计方法
一个结构化程序就是用计算机语言表示的结构化算法,用3种基本结构组成的程序必然是结构化的程序。
采取以下方法得到结构化的程序:
1)自顶向下
2)逐步细化
3)模块设计
4) 结构化编码