zl程序教程

您现在的位置是:首页 >  其他

当前栏目

C语言基础(算法——程序的灵魂)

2023-03-20 14:58:49 时间

程序=算法+数据结构

一个程序主要包括以下两方面信息: 1、对数据的描述。在程序中要指定用到那些数据,以及这些数据的类型和数据的组成形式。这就是数据类型。 2、对操作的描述。要求计算机进行操作的步骤,也就是算法。

算法+数据结构=程序 算法是解决“做什么”和“这么做”的问题。

什么是算法

广义的来说,为了解决一个问题而采取的方法和步骤,就称为“算法”。

计算机算法可分为两大类: 1、数值运算法 目的是求数值解,例如求方程的根、求一个函数的定积分等,都属于数值运算范围。 2、非数值运算法 它涉及的面十分广泛,最常见的是用于事务管理领域,例如按一批职工按姓名排序、图书检索、人事管理等

算法特性

为了能编写程序,必须学会涉及算法。一个有效的算法应该具有以下特点:(1)有穷性。一个算法应该包含有限的操作步骤,而不能是无限的。(2)确定性。算法中每一个步骤都应当是确定的,而不应当是含糊的,模棱两可的。(3)有零个或多个输入。(4)有一个或多个输出。(5)有效性。算法中的每一个步骤都应当能有效的执行,并得到确定的结果。

怎样表示一个算法

为了表示一个算法,可以用不同的方法。常用的方法有:自然语言、传统流程图、结构化流程图和伪代码。

除了一些很简单的问题外,一般不用自然语言

三种基本结构

(1)顺序结构。

(2)选择结构。

(3)循环结构。 分为当型(while)和直到型(until),见图2-17

 

以上三种结构有共同特点:

(1)只有一个入口。图2-17中a点为入口点。

(2)只有一个出口。图2-17中b点为出口点。注意:一个判断框有两个出口,一个选择程序只有一个出口。

(3),结构内每一个部分都有机会被执行到。

(4)结构内不存在“死循环”。

以上三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。

传统流程图

 

 判断2500年内的闰年

 N-S流程图

 

如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化算法。

伪代码表示算法

伪代码是介于自然语言与计算机语言之间的文字与符号来表示算法。 它如同一篇文字一样,从上而下的写下来。每一行(或几行)表是一个基本操作。它不用图形符号,因此书写方便,格式紧凑,修改方便,容易看懂,也便于向计算机语言算法(即程序)过渡。

用伪代码写算法并无固定的、严格的语法规范。可以用英文,也可以用中英文混用。只要把意思表达清楚,便于书写和阅读即可。

但是用伪代码写算法不如流程图直观,可能出现逻辑图上的错误(列如循环或选择结构的范围弄错等)。

要完成一项工作,包括设计算法和实现算法两个部分。

结构化程序设计方法

采取以下方法来保证得到结构化的程序:1、自顶向下。2、逐步细化。3、模块化设计(当程序复杂时,更有必要)。4、结构化编码。

有了正确·的·算法,用任何语言进行编码都不是什么困难的事。