从问题到程序

裘宗燕

出版时间

2011-05-01

ISBN

9787111337157

评分

★★★★★
书籍介绍
《从问题到程序:程序设计与C语言引论(第2版)》以C作为工具语言,讨论了基本程序设计的各方面内容,详细解释了与c语言和程序设计有关的问题。在新版中,特别加强了针对近年日益受到业界和学术界广泛重视的问题的讨论,并通过详细地分析和讨论大量符合C99标准的实例,给出了分析和分解问题、找出解决问题的主要步骤、确定函数抽象、找出循环、选择语言结构直至最后做出所需程序的完整过程。 《从问题到程序:程序设计与C语言引论(第2版)》适合作为高等院校计算机及相关专业第一门程序设计课程的教材,也可供其他学习C程序设计的读者自学使用。
AI导读
核心看点
  • 以C语言为工具,强调从问题分析到程序实现的完整过程
  • 深入讲解函数抽象、循环不变式及程序测试方法
  • 强化C99标准实例,培养严谨的程序设计思维
适合谁读
  • 高等院校计算机及相关专业程序设计课程学生
  • 希望系统学习C语言及程序设计思想的初学者
  • 寻求扎实编程基础、超越语法层面的自学者
读前提醒
  • 不要过度依赖调试器,应锻炼用头脑分析程序逻辑
  • 掌握函数抽象思想,避免陷入琐碎实现细节
  • 理解前条件与后条件,建立形式化验证意识
读者共识
  • 比传统教材更重思维培养,适合零基础入门
  • 深入浅出,能解决K&R等书中难以理解的问题
  • 内容扎实严谨,是构建C语言基础的优秀读物

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "许多程序开发环境里带有功能强大的动态调试和查错系统,利用它们可以方便地跟踪程序执行过程。但是我们发现,在初学程序设计时就养成依靠查错系统的习惯,往往会阻碍人对程序的良好感觉 ... 按照这种方式学习程序设计的人,以后编出的程序质量也比较差。 最后还应指出,测试程序、排除程序错误的最重要工具就是我们的眼睛和头脑,这是任何其他东西都不能代替的,也是别人不能代替的。"
  • "在函数之外不应该关心函数功能的实现问题。这种超脱很重要,不掌握这种思想方法,就无法摆脱琐碎细节的干扰,不能学会处理复杂问题。初学者常犯的一个毛病是事事都想弄清,这种考虑不但非常不必要,有时甚至不可能。例如,对于标准库函数,我们不知道它们是用什么语言采用什么算法写的,但这并不妨碍在程序中正确使用它们。"
  • "白箱测试的基础是考察程序的内部结构和由此产生的执行流程,设法选择一些数据,使程序在试验性运行中能通过“所有”可能出现的执行流程。这一做法的基本想法是:如果通过每种执行流程的计算都能给出正确结果,那么这个程序的正确性就比较有保证了。 在做黑箱测试时,我们考虑的不是程序的内部结构,在这里只是考虑程序所解决问题的各种情况。"
  • "什么样的程序片段应该定义为函数呢?这方面并没有万能的准则,写程序的人需要自己去分析问题,总结经验。... 1) 程序中可能有重复出现的相同或相似的计算片段。可以考虑从中抽取出共同的东西,定义为函数。 2) 程序中具有逻辑独立性的片段。... 这种做法的主要作用是分解程序的复杂性,使之更容易理解和把握。 ... 熟悉程序设计的人提出的一条经验准则是:如果一段计算可以定义为函数,那么就应该把它定义为函数。"
  • "getnum 是一个底层函数,为程序上层功能的实现提供某种服务。这种底层函数在工作有可能检查到某种错误状态。但是从原则上说,由于这种函数并不掌握全局情况,没有关于被调用处的上下文信息,这时,它们的实现就绝不能包含任何可能危害全局的行为。"
  • "1) 通过函数返回值报告工作情况,出现错误时返回特殊值,要求调用这个函数的位置去处理错误。必要时可以通过几个不同的值报告不用错误。这种方式的缺点是在设计函数时需要选择合适的“错误返回值”,有时会遇到困难。此外,在每个函数调用处都检查错误,也会使程序中的正常控制流变得不清晰,干扰人的阅读和理解。 2) 在发现错误时,把专门的错误变量设置为某个特定的值,供程序的其他部分检查。显然这种错误变量只能是全局变量。这种方式的缺点是使用者可能忘记检查,因而没有察觉计算中已经出错了。"
  • "人们把一段程序执行前对数据的要求称为它的前条件 (precondition),把一段程序执行结束后能够保证的性质称为它的后条件 (postcondition)。假设程序段 S 的前条件是 P,后条件是 Q,那么,如果 S 在条件 P 为真的情况下开始执行,S 结束后就可以保证 Q 为真。这里的 P 和 Q 都应该是对一些变量取值等情况的两个描述。"
  • "... 这个文件里定义: * 类型 size_t * 类型 ptrdiff_t * 类型 wchar_t * 符号常量 NULL * 宏 offsetor"
用户评论
比那个谭什么强好到不知道哪里去啊
当年教材, 适合零基础入门
南图
硬着头皮看完两遍k&r,又硬着头皮看完sicp前三章,可能是我笨,但是这本书深入浅出,让我c语言基础学的很扎实,弄懂了很多k&r中不明白的
比老谭那本讲的是好多,很多问题讲得挺深的
还不错,讲得还算清晰
先从问题到程序,然后再从程序到算法哈哈。
很棒的入门书
下载
收藏