学习程序设计的目的不只是学习某一种特定的语言,而应当学习进行程序设计的一般方法。掌握了算法就是掌握了程序设计的灵魂,再学习有关的计算机语言的程序。脱离具体的语言去学习程序设计是困难的。但是,学习语言知识为了设计程序,它本身绝不是目的。
1、一个程序主要包括以下两个方面的知识
(1)对数据的描述:数据结构
(2)对操作的描述:算法
算法+数据结构=程序
2、算法、数据结构、程序设计方法和语言工具四个方面是一个程序设计人员所应具备的知识,在设计一个程序时要综合运用这几个方面的知识。
3、广义上说,为解决一个问题而采取的方法和步骤就称为“算法”。
4、计算机算法可以分为两大类别:数值运算算法和非数值运算算法。
数值运算算法的目的是求数值解。
非数值运算的目的,排序。。。
目前计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。
5、算法的特性:
(1)有穷性:一个算法应该包括有限的操作步骤,而不能是无限的。
(2)确定性:算法中的每个操作步骤都应当是确定的,而不是模糊的,模棱两可的。
(3)有零个或多个输入。所谓输入是指执行算法时需要从外界取得必要的信息。
(4)有一个或多个输出。算法的目的就是为了求解,解就是输出。
(5)有效性。算法中的每一步都应该能有效的执行,并得到确定的结果
6、怎样表示一个算法
(1)用自然语言表示算法
除了很简单的问题外,一般不用自然语言表示算法
(2)用流程图表示算法
一个流程图包括以下几个部分
1)表示相应操作的框
2)带箭头的流程图
3)框内外必要的文字说明
流程图法占用篇幅较多,尤其是算法比较复杂时,画i流程图既费时又不方便。
流程图有三种基本结构:顺序结构,选择结构,循环结构。以上三种结构,有以下共同特点:1、只有一个入口;2、只有一个出口;3、结构中的每一部分都有机会被执行到;4、结构内不存在死循环。
(3)用N-S流程图表示算法
N-S图如同一个多层的盒子,又称为盒图
(4)用伪代码表示算法
伪代码书写格式比较自由,容易表达出设计者的思想。同时用伪代码写的算法很容易修改。但是用伪代码写算法不如用流程图直观,可能会出现逻辑上的错误。
(5)用计算机语言表示算法
用计算机语言表示的算法是计算机能够执行的算法。
7、编写结构化的程序需要采用以下几种方法:
(1)自上而下
(2)逐步细化
(3)模块化设计
(4)结构化编码