在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,程序设计者不仅要考虑程序要“做什么”,还要解决“怎么做”的问题,根据程序要“做什么”的要求,写出一个个语句,安排好它们的执行顺序。怎样设计这些步骤,怎样保证它的正确性和具有较高的效率,这就是算法需要解决的问题。
3.1.1 算法的概念
一个面向过程的程序应包括以下两方面内容:
(1) 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
(2) 对操作的描述。即操作步骤,也就是算法(algorithm)。
对于面向过程的程序,可以用下面的公式表示:
程序=算法+数据结构
作为程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法)。
算法是处理问题的一系列的步骤。算法必须具体地指出在执行时每一步应当怎样做。
3.1.2 算法的表示
1. 自然语言
用中文或英文等自然语言描述算法。但容易产生歧义性,在程序设计中一般不用自然语言表示算法。
2. 流程图
可以用传统的流程图或结构化流程图。用图的形式表示算法,比较形象直观,但修改算法时显得不大方便。
3. 伪代码(pseudo code)
伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。如
if x is positive then
print x
else
print-x
用伪代码写算法并无固定的、严格的语法规则,只需把意思表达清楚,并且书写的格式要写成清晰易读的形式。它不用图形符号,因此书写方便、格式紧凑,容易修改,便于向计算机语言算法(即程序)过渡。
4. 用计算机语言表示算法
用一种计算机语言去描述算法,这就是计算机程序。
3.2 C++程序和语句
由第1章已知,一个程序包含一个或多个程序单位(每个程序单位构成一个程序文件)。每一个程序单位由以下几个部分组成:
(1) 预处理命令。如#include命令和#define命令。
(2) 声明部分。例如对数据类型和函数的声明,以及对变量的定义。
(3) 函数。包括函数首部和函数体,在函数体中可以包含若干声明语句和执行语句。
如下面是一个完整的C++程序:
#include <iostream> //预处理命令
using namespace std; //在函数之外的声明部分
int a=3; //在函数之外的声明部分
int main( ) //函数首部
{ float b; //函数内的声明部分
b=4.5; //执行语句
cout<<a<<b; //执行语句
return 0; //执行语句
}
如果一个变量在函数之外进行声明,此变量是全局变量,它的有效范围是从该行开始到本程序单位结束。如果一个变量在函数内声明,此变量是局部变量,它的有效范围是从该行开始到本函数结束。C++程序结构可以用图3.1表示。

评论