本书是一本能让大家真正学会编程的程序设计入门书。全书通过对难度逐渐递增的大量例题的深入讲解,介绍了计算机的编程思想、基本算法和基本技巧。本书通过引入一个理想的厨房系统进行类比,系统地讲解了计算机硬件和操作系统中一些极重要的核心知识,具体包括计算机硬件的基本结构、指令和程序执行的全过程、中断、进程、进程调度、输入/输出、虚拟内存等。通过对这些知识的学习,使读者对计算机运行的机制和奥秘有个清楚的了解。
本书内容丰富、独具特色,非常适合各高等院校计算机及其相关专业c语言程序设计入门课的教材或教学参考书,也适合作为各类程序设计辅导班的培训教材。
尽自己*大能力写一本比较轻,松颖,清晰,透彻,有价值的计算机科学入门是我的夙愿;把真正掌握计算奥秘和学会编程的难度,由五星。级降为三墨级,并尽量将枯燥乏味变得生动有趣。只因为计算机科学的核心思想——编程墨路和大局观(现代计瓤硬件与操作系统、编译程序是如何无缝连接,以运行多道程序的)——本身就是极美妙的。本书就是把这些极美妙的、过去初学者几乎不可能学到的但又很有价值的知识,以一种比较系统的、连贯的.深入浅出、简明扼要的方式.展现在大家的面前。
希望本书的出版将使大多数人的梦想成真!
现今,了解计算机工作原理的人何其多,但真正掌握的人却何等的少! 学习编程的人何其多,但真正会编程的人又何等的少! 从梦想到实现,你还需要多久的等待? 一书在手,奥秘尽有! 一册拥有,梦想放飞! 成功之路,就在手中!
序言
针对不少大学生编程能力很差以及对程序设计课感到非常厌烦和恐惧的现状,笔者在三年前下定决心,动手创作本书。本书的初稿从去年下半年就开始试用,深受大多数学生的喜爱。
对于大学生来说,学习程序设计这门课,能够得到的*大收益是什么呢?难道就是学会一门高级程序设计语言的大量语法知识,甚至包括很多容易过时的、枯燥乏味、令人厌烦的细节语法知识吗?笔者认为不是的。因为毕业以后,大多数大学生并不从事程序设计的工作。即使将来从事编程工作,使用C语言进行软件开发的可能性现在也变得较小了(虽然学的人很多)。由此可以得出重要结论,在C程序设计入门课中,c语言所特有的语法细节讲解应当大幅度缩减。 那么,对于大学生而言,程序设计这门课是否本来就不太重要呢?笔者认为不是不重要,而是至关重要!非常重要!极为重要! 究竟什么才是大学生*应该在本课程中学到的重要知识呢?笔者认为应当是c程序设计语言的基本语法要素(这是不容易过时的、各种常用的命令型高级语言的公共部分)、基本编程思想、基本编程技巧和基础算法知识,仅运用这部分知识就可以解决大多数常见的编程问题(虽然有时效率不高),而不是大量的语法细节。本书在后面常常把基本编程思想、基本编程技巧和基础算法知识简称为基本编程技术。 究竟什么是基本编程技术?笔者把需要学习《面向对象程序设计》、《数据结构》和《算法分析与设计》这些高级课程后,才能够掌握的那一部分(面向对象的)编程思想、(需要以链表勾基础的)中高级编程技巧和(需要以离散数学为基础的那一部分)算法排除在外。剩下的那部分就属于基本编程技术的范畴。
后记
在本书中汇集了笔者二十余年间在学习、备课、授课和编程实践中积累的各种编程思路和基本编程技术,以及对计算机科学整体把握的宏观认识。精心加工后,奉献给迫切想*大限度提高编程水平和真正了解计算机奥秘的读者。
当前程序设计类入门教材的写作模式大体上分为两大类。一类是以语法讲解为主线的(这类书很多,类似于文学中的语法书、字典);另一类是以案例讲解为主线的(这类的入门教科书目前还不多,类似于文学中的语文书或范文精选)。前一类书的优点是语法知识系统清晰,有利于读者将来编程时进行查找。但这一类书的主要缺点是学起来比较枯燥乏味,根本原因在于书中的例题一般都是作为讲解语法要点的附属品,题目的难度一般没有明显的阶梯性。而后一种案例类书的优点是学习例题比较生动有趣,但是,在读者学完后,将来要独立进行编程时,却比较难以在书中查找到相应的知识要点并加以应用,比较难作为一本价值很高的手册来使用。
不过,对于计算机高级程序设计语言来说,它的语法知识要比人们之间交流用的普通语言少得多,也重要得多。编程语句稍有一点小错误,计算机就会拒绝接受这个程序。这或许是当前案例类教材难以成为主流入门教材的重要原因之一(另一个重要原因可能是教师的教学习惯)。
那么,有没有一种写作方式既能够同时获得以上两种写作方式的优点,又能够避免两种写作方式存在的难以克服的缺点呢(但同时又顺应教师的传统教学习惯)?本书的写作方式给出了一种可供选择的方案(在这一点上,与本书*为接近的是郑启华先生早年所写的《Pascal程序设计》。可以说,本书在这方面完全传承于郑启华先生所开拓出的写作思路和理念。令人惋惜的是,随着Pascal语言近些年的沉寂,此书没有*新版了。等待了多年,盼望郑先生能用c语言来改写这本名著,但一直没等到。希望本书的出版,能替郑先生了却这一心愿。此外,甘玲等编著的C语言教材与本书大体上同属一类,虽然在取材、结构和表述上还有很大的不同,(参见.参考文献)。
第1章 从理想厨房到计算机的基本工作原理(初)
本章是全书的重要基础。通过本章的学习,可为读者建立起计算机究竟如何工作的整体概念,纠正读者以前对计算机的一些错误认识和看法,并为第2章、第9章、第10章的学习打下坚实的基础。
本章不需要任何预备知识,只要你认得字就行,还有一个比较高的要求:只要你有足够的耐心,这个耐心能确保你把本章认真读两遍。你就能够真正懂得神秘的、到目前为止人类有史以来*伟大、*奇妙而又*复杂的发明——电子数字计算机(当然这个伟大发明汇集了几代人中很多杰出人士的聪明才智和研究成果)是如何工作的基本原理。为达此目的,笔者付出了极大的努力,找到了一种比较好的比喻方法——理想厨房系统。由此开始真正理解计算机工作原理的、激动人心的探索旅程。将要探索的是一个看起来很不起眼的,在有些场合被称为计算机(或电脑)的电子设备,是如何具有如此神奇的魔力和智能的奥秘所在。这种神奇的魔力和智能正在彻底地、快速地、默默无闻或者令人吃惊地改变和丰富人们所生活的大千世界。
本章将从一个理想厨房系统的例子入手,讲解计算机工作的基本原理和特点。这一叙述比较长,但和厚厚的整本计算机原理教材比起来,这里的叙述为了突出重点、减少理解难度而做了极大的简化,也是值得读者认真学习和细心领会的。
但如果你是一个急性子,可以快速地浏览下面用小号字编排的几节,重点要仔细领会第1.2节和第1.3节的内容,即理想厨房的炒菜实例和理想厨房系统的特点。
翻开第l章,就深深地吸引了我,因为它如此巧妙地将计算机与实际生活联系起来,这使我顿觉豁然开朗一…?第2章之后的程序设计也相当精彩,从伪代码到编程易错点,让我们打开了编程的思路。不由得感叹:编程也不是想象中的那么难!编程最重要的就是算法、思路,这本书引领我从编程的无助到喜爱编程,确实是一个飞跃!
——贾层晨
书中好多范例简单易懂,讲解精炼,读了之后,感觉茅塞顿开。相比较看过的其他c语言方面的书,感觉何老师的这本以简单易懂的例子入门,语法与算法完美结合,内容更精简,算法更合理,思路更清晰。
——黄伟
以前,总是觉得编程很神秘。由于对计算机的不了解,对算法的迷惘,使我看到编程题不知如何入手,如何分析。读了本书后使我从害怕编程变为热爱编程。此书的理想厨房给了我一种全新的体验,使我从内部真正了解了计算机。
我相信,它将是我程序员生涯的开。始。
——宋小静
何勤,男,51岁,吉林大学物理硕士,高校计算机教师。从事软件开发20余年,计算机教学十四年。Borland公司Delphi培训核心师资。主持开发过多个商业软件,曾获省科技进步三等奖。
随着宽带业务需求的发展和潜在的巨额利润,宽带城域网正成为当前建设的热点。《宽带城域网实用手册》从内容的实用性和技术的先进
《历史的忧虑》内容简介:备受赞誉的历史学家哈鲁图尼恩研究了现代性的三个产物:“日常”“当下”和社会科学学科,如“区域研究”
本书从“路”的观点出发,较为系统地论述了微波技术与天线的基本理论与基础知识。在编写时力求去繁就简,深入浅出,这样既保持了
Y染色体由于其单倍体特性和群体特异性分布,成为分子人类学研究最有力的工具。利用Y染色体可以很好地解析种族的起源、民族的分化
吴伟定,网名Windear,首届中文搜索引擎优化(SEO)大赛三等奖得主,擅长于品牌操作以及各种网络营销手段。现任中赫技术投资控股有
Thistitleisabouthowourgreatestinventionmakesusricher,smarter,greener,healthieran...
《服装造型学(技术篇1)》主要内容有:上衣、裙子;连衣裙;上衣、裤子;花纹的名称;材料的名称;表面加工与特殊织物的名称;里料
《2013高技术发展报告》是中国科学院面向公众、面向决策人员的系列年度报告——《高技术发展报告》的第十四本。全书在综述2012年
本书对Photoshop中最重要的通道、混合模式、图层、蒙版做了深入剖析,并列举了大量相关实例,有助于读者更深入理解和把握Photosh
由鲍卫兵主编的《通信原理》由几所高校中长期从事教学实践的教师联合编写,内容全面、难度适中、分析由浅入深,论理清晰,逻辑性
《细说PHP》开发Web应用程序PHP是最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。《细说PHP》以
《App+软件+游戏+网站界面设计教程》内容简介:如今,人们对各种类型的UI界面的要求越来越高,为满足广大UI设计者的需求,本书向读
快学快用电脑上网技巧1088招附光盘 内容简介 本书全面介绍了电脑上网的操作技能和应用技巧,帮助读者全面、快速地掌握电脑上网的方法,提高工作效率,成为网上冲浪高...
《群体的思维:如何利用群体智慧解决工作、生活难题》无论我们是要做金融方面的决策、换个工作还是找到我们的另一半,众包都不失
计算机上网培训教程-零起点-(第3版) 本书特色 本书定位于具有一定计算机基础知识和windows vista操作基础却毫无计算机上网基础的初学者,以一个上网初...
ApracticalguidetounderstandingLLVMwiththehelpofsourcecodereferencesandsnippets,i...
计算机网络(第五版) 本书特色 《计算机网络》为普通高等教育“十一五”国家级规划教材。本书共分十章,主要介绍了计算机网络的发展和原理体系结构、物理层、数据链路层...
属性拓扑理论及其应用 本书特色 本书以属性拓扑理论及其应用为主线,系统地介绍了属性拓扑基本理论及其应用的*研究成果. 全书分为基础知识、概念计算、关联分析、记忆...
《商业模式案例与公案教学(第一季)》内容简介:本书以魏朱商业模式模型理论为基础,介绍了尚品宅配、挖财、陕鼓、彩生活、金百万
《JavaScript精粹》主要介绍JavaScript应用中一些常见的问题及其解决方法,从最基础的数字、字符串、数组到进阶的DOM、表单验证、