再上一篇: 内 容 简 介
上一篇:《程序设计基础》前 言
主页
下一篇:1 .2 程序设计语言概述
再下一篇:1 .3 C程序的基本框架
文章列表

第 1 章 程序设计基本概念

《程序设计基础》(基于C语言讲解) 石光华 编著 —北京: 清华大学出版社

1 .1 程序与算法

程序(program)是用特定的计算机语言编写的,用以指挥计算机完成预定功能的一段文字。算法(algorithm)是程序处理问题的步骤和方法。

1 .程序

程序是指用特定的计算机语言编写的,用以指挥计算机完成预定功能的一段文字。程序可以用不同的程序设计语言来书写,正如人类交流可以用汉语、英语、法语等语言来表达思想一样,要与计算机进行交流,指挥计算机完成我们要求的工作,也要用特定的计算机语言,按一定的书写格式,写成计算机程序。

【例1-1】 一个计算机程序。

#include< stdio .h>

void main()

{

int ifirst=10,isecond=20;

int itotal=0;

itotal=ifirst+isecond;

printf(″ifirst+isecond= %d″,itotal);

}

上面的程序实现了把两个数相加并输出其和的功能。

2 .算法

当编写一个程序的时候, 要首先想好这个程序是干什么的, 应该如何实现这些目标;2 程序设计基础

应该先进行什么处理,后进行什么处理,所处理的数据的格式是什么。遇到一些复杂的问

题,可能还需要考虑采用何种数学方法。这一切都涉及一个专业名词———算法。所谓算

法,就是程序处理问题的步骤和方法。

很多时候,程序设计人员所面临的问题就是寻找一个合适的算法。例如,一个熟练的

程序员,要设计一个下国际象棋的游戏程序,核心问题是寻找一种可以模拟人类下棋的算

法。因此,算法在软件设计中占据重要的位置。正如著名的计算机科学家 Nikiklaus

Wirth所指出的如下公式:

程序=数据结构+算法

3 .程序开发步骤

程序开发过程可以看成开发特定问题的算法,通过运行一系列与计算机硬件相关的

指令,产生预定的结果。程序设计可以让程序设计人员充分发挥自身的创造才能,也就是

说,程序设计人员应该设计出正确、合理的算法。这一步至关重要,然而却经常被忽略。

如果程序设计人员事先没有设计好合理的算法,就直接进入编码阶段,会造成编写出的程

序包含大量的错误,不得不花费大量的时间来查找并纠正错误。经验丰富的程序设计人

员则会先设计出解决问题的算法,经严格审查后再进行编码。

程序开发的过程可以分为以下7个步骤。

(1) 问题的定义

问题定义阶段必须解决的关键问题是:需要解决的是什么问题。

为了便于分析,可以将整个问题划分为三个部分:

输入,输出,产生要求输出所需要的处理步骤。

(2) 归纳解决方案

在完成了问题的定义后,程序设计人员就要将问题分解为一系列的小任务,归纳并确

定初步的解决方案。即把问题分解为

主要的处理过程;

主要的子任务;

主要的控制结构;

主要的逻辑结构;

主要的变量和记录结构。

(3) 将解决方案提炼成算法

这一步骤将对解决方案进行详细描述,即准确描述出各项处理过程和子任务的执行

顺序。通常,采用算法描述工具进行描述,具体方法将在第6章讲解。

(4) 检验算法的正确性

在整个程序开发过程中,检验算法的正确性是最重要的一步,也是最容易被忽略的一 第1章 程序设计基本概念 3步。对算法进行检验的目的是尽可能早地发现并纠正主要的逻辑错误。错误发现得越早,纠正起来就越容易。这个过程通常通过测试来实现,程序设计人员需要设计测试所需要的数据来跟踪检查算法的每个步骤,以检验算法中的指令是否按规定正确执行。

(5) 编码

在完成前面4个步骤之后,就可以开始用程序设计语言进行编码(coding),即将算法转化为具体的程序代码。

(6) 调试运行程序

在这个阶段,程序设计人员采用程序编译器和事先设计好的测试数据,查找出程序代码中可能存在的语法错误和逻辑错误。语法错误主要在程序编译时进行检查,逻辑错误则在程序运行时进行检查。调试可能需要反复进行多次,直到运行结果满意为止。

(7) 编写程序文档和维护

为了便于使用程序和以后进行维护,应注意编写程序文档。程序文档包括外部文档和内部文档,外部文档包括程序的结构图、算法、测试数据和相应结果等,内部文档包含在程序代码中。

程序文档的编写应该从程序设计的开始就进行,特别是内部文档,应随时记下当时的想法,以便以后理解程序代码,不要最后才写。