《从问题到程序》简介

在撰写本书时我心中有几个努力追求的目标,列在这里供读者和同行参考:

1. 假定读者(学生)没有程序设计经验,或只有很少经验。因此书中对在学习程序设计可能遇到的各种基本问题,各种概念和观点都应该尽量给出清楚的解释。这一考虑的目的是希望本书适合作为第一门程序设计和C语言程序设计的教材。

2. 以讲授程序设计为基本线索,同时对C语言做深入的介绍和解释。本书希望强调如何认识程序、写程序,如何用C语言写程序。因此对从问题出发,经过分析逐步写出程序的过程有许多深入讨论。书中实例强调的是问题分析和分解,设计求解过程,找出主要步骤,确定函数抽象,找出循环,选择语言结构,最后写出程序的过程。书中不少实例给出了在不同考虑下可能形成的多种解法,以帮助读者理解程序设计的真谛。

3. 强调好的程序设计风格,强调通过函数抽象建立起清晰的程序结构的重要性。书中很早就介绍了函数概念,从库函数使用到简单函数的书写,再到函数的确切定义。书中特别强调程序的结构性、可读性、易修改性,程序实例也努力遵循这些原则,使其简洁清楚易读。书中还根据进展和遇到的问题分析了一些不良程序设计习惯及其危害。

4. 注意强调"好的"C程序设计及C语言描述方式。由于历史原因C语言成为一个不太严格的语言。如不注意,用C写的程序常会隐含不易发现的错误,这是把C作为第一个语言时需要解决的问题*。在ANSI C标准的基础上,存在着一套写"好的"C程序的方式。本书力图坚持ANSI C所倡导的正确程序写法,强调如何写更可靠、不易包藏隐含错误的C程序的各方面问题,并通过实例说明了应该如何写和不应该如何写等等。在坚持了上面这些原则的基础上,书中也介绍了C语言的许多实用程序设计技术。总之,本书希望强调的是如何写出正确、清晰、简洁、高效的C程序。

5. 对C语言的各种结构和机制都有较细致介绍,因为其中不少问题反应了相关领域的普遍性知识和情况。本书力图对许多问题给出细致解释,不仅讲它们是怎样的,还提供了背景理由,以帮助读者理解问题实质。书中对程序设计和C语言中反映出的程序语言和程序设计的一般性问题,及计算机科学中的一般性问题也做了适度介绍和解释。

————(摘自本书前言)

程序设计就像游泳或者写文章,只有在不断实践的过程中总结提高,才能真正学好它。本书的内容组织也反映这一认识。本书以基于C语言的程序设计为主要线索,希望在读者学习和实践程序设计的过程中逐步理解程序问题和通过程序设计解决问题的方法。并在此过程中逐步介绍这一学习中所用的工具——C语言。