本书是一本能让大家真正学会编程的程序设计入门书。全书通过对难度逐渐递增的大量例题的深入讲解,介绍了计算机的编程思想、基本算法和基本技巧。本书通过引入一个理想的厨房系统进行类比,系统地讲解了计算机硬件和操作系统中一些极重要的核心知识,具体包括计算机硬件的基本结构、指令和程序执行的全过程、中断、进程、进程调度、输入/输出、虚拟内存等。通过对这些知识的学习,使读者对计算机运行的机制和奥秘有个清楚的了解。
本书内容丰富、独具特色,非常适合各高等院校计算机及其相关专业c语言程序设计入门课的教材或教学参考书,也适合作为各类程序设计辅导班的培训教材。
尽自己*大能力写一本比较轻,松颖,清晰,透彻,有价值的计算机科学入门是我的夙愿;把真正掌握计算奥秘和学会编程的难度,由五星。级降为三墨级,并尽量将枯燥乏味变得生动有趣。只因为计算机科学的核心思想——编程墨路和大局观(现代计瓤硬件与操作系统、编译程序是如何无缝连接,以运行多道程序的)——本身就是极美妙的。本书就是把这些极美妙的、过去初学者几乎不可能学到的但又很有价值的知识,以一种比较系统的、连贯的.深入浅出、简明扼要的方式.展现在大家的面前。
希望本书的出版将使大多数人的梦想成真!
现今,了解计算机工作原理的人何其多,但真正掌握的人却何等的少! 学习编程的人何其多,但真正会编程的人又何等的少! 从梦想到实现,你还需要多久的等待? 一书在手,奥秘尽有! 一册拥有,梦想放飞! 成功之路,就在手中!
序言
针对不少大学生编程能力很差以及对程序设计课感到非常厌烦和恐惧的现状,笔者在三年前下定决心,动手创作本书。本书的初稿从去年下半年就开始试用,深受大多数学生的喜爱。
对于大学生来说,学习程序设计这门课,能够得到的*大收益是什么呢?难道就是学会一门高级程序设计语言的大量语法知识,甚至包括很多容易过时的、枯燥乏味、令人厌烦的细节语法知识吗?笔者认为不是的。因为毕业以后,大多数大学生并不从事程序设计的工作。即使将来从事编程工作,使用C语言进行软件开发的可能性现在也变得较小了(虽然学的人很多)。由此可以得出重要结论,在C程序设计入门课中,c语言所特有的语法细节讲解应当大幅度缩减。 那么,对于大学生而言,程序设计这门课是否本来就不太重要呢?笔者认为不是不重要,而是至关重要!非常重要!极为重要! 究竟什么才是大学生*应该在本课程中学到的重要知识呢?笔者认为应当是c程序设计语言的基本语法要素(这是不容易过时的、各种常用的命令型高级语言的公共部分)、基本编程思想、基本编程技巧和基础算法知识,仅运用这部分知识就可以解决大多数常见的编程问题(虽然有时效率不高),而不是大量的语法细节。本书在后面常常把基本编程思想、基本编程技巧和基础算法知识简称为基本编程技术。 究竟什么是基本编程技术?笔者把需要学习《面向对象程序设计》、《数据结构》和《算法分析与设计》这些高级课程后,才能够掌握的那一部分(面向对象的)编程思想、(需要以链表勾基础的)中高级编程技巧和(需要以离散数学为基础的那一部分)算法排除在外。剩下的那部分就属于基本编程技术的范畴。
后记
在本书中汇集了笔者二十余年间在学习、备课、授课和编程实践中积累的各种编程思路和基本编程技术,以及对计算机科学整体把握的宏观认识。精心加工后,奉献给迫切想*大限度提高编程水平和真正了解计算机奥秘的读者。
当前程序设计类入门教材的写作模式大体上分为两大类。一类是以语法讲解为主线的(这类书很多,类似于文学中的语法书、字典);另一类是以案例讲解为主线的(这类的入门教科书目前还不多,类似于文学中的语文书或范文精选)。前一类书的优点是语法知识系统清晰,有利于读者将来编程时进行查找。但这一类书的主要缺点是学起来比较枯燥乏味,根本原因在于书中的例题一般都是作为讲解语法要点的附属品,题目的难度一般没有明显的阶梯性。而后一种案例类书的优点是学习例题比较生动有趣,但是,在读者学完后,将来要独立进行编程时,却比较难以在书中查找到相应的知识要点并加以应用,比较难作为一本价值很高的手册来使用。
不过,对于计算机高级程序设计语言来说,它的语法知识要比人们之间交流用的普通语言少得多,也重要得多。编程语句稍有一点小错误,计算机就会拒绝接受这个程序。这或许是当前案例类教材难以成为主流入门教材的重要原因之一(另一个重要原因可能是教师的教学习惯)。
那么,有没有一种写作方式既能够同时获得以上两种写作方式的优点,又能够避免两种写作方式存在的难以克服的缺点呢(但同时又顺应教师的传统教学习惯)?本书的写作方式给出了一种可供选择的方案(在这一点上,与本书*为接近的是郑启华先生早年所写的《Pascal程序设计》。可以说,本书在这方面完全传承于郑启华先生所开拓出的写作思路和理念。令人惋惜的是,随着Pascal语言近些年的沉寂,此书没有*新版了。等待了多年,盼望郑先生能用c语言来改写这本名著,但一直没等到。希望本书的出版,能替郑先生了却这一心愿。此外,甘玲等编著的C语言教材与本书大体上同属一类,虽然在取材、结构和表述上还有很大的不同,(参见.参考文献)。
第1章 从理想厨房到计算机的基本工作原理(初)
本章是全书的重要基础。通过本章的学习,可为读者建立起计算机究竟如何工作的整体概念,纠正读者以前对计算机的一些错误认识和看法,并为第2章、第9章、第10章的学习打下坚实的基础。
本章不需要任何预备知识,只要你认得字就行,还有一个比较高的要求:只要你有足够的耐心,这个耐心能确保你把本章认真读两遍。你就能够真正懂得神秘的、到目前为止人类有史以来*伟大、*奇妙而又*复杂的发明——电子数字计算机(当然这个伟大发明汇集了几代人中很多杰出人士的聪明才智和研究成果)是如何工作的基本原理。为达此目的,笔者付出了极大的努力,找到了一种比较好的比喻方法——理想厨房系统。由此开始真正理解计算机工作原理的、激动人心的探索旅程。将要探索的是一个看起来很不起眼的,在有些场合被称为计算机(或电脑)的电子设备,是如何具有如此神奇的魔力和智能的奥秘所在。这种神奇的魔力和智能正在彻底地、快速地、默默无闻或者令人吃惊地改变和丰富人们所生活的大千世界。
本章将从一个理想厨房系统的例子入手,讲解计算机工作的基本原理和特点。这一叙述比较长,但和厚厚的整本计算机原理教材比起来,这里的叙述为了突出重点、减少理解难度而做了极大的简化,也是值得读者认真学习和细心领会的。
但如果你是一个急性子,可以快速地浏览下面用小号字编排的几节,重点要仔细领会第1.2节和第1.3节的内容,即理想厨房的炒菜实例和理想厨房系统的特点。
翻开第l章,就深深地吸引了我,因为它如此巧妙地将计算机与实际生活联系起来,这使我顿觉豁然开朗一…?第2章之后的程序设计也相当精彩,从伪代码到编程易错点,让我们打开了编程的思路。不由得感叹:编程也不是想象中的那么难!编程最重要的就是算法、思路,这本书引领我从编程的无助到喜爱编程,确实是一个飞跃!
——贾层晨
书中好多范例简单易懂,讲解精炼,读了之后,感觉茅塞顿开。相比较看过的其他c语言方面的书,感觉何老师的这本以简单易懂的例子入门,语法与算法完美结合,内容更精简,算法更合理,思路更清晰。
——黄伟
以前,总是觉得编程很神秘。由于对计算机的不了解,对算法的迷惘,使我看到编程题不知如何入手,如何分析。读了本书后使我从害怕编程变为热爱编程。此书的理想厨房给了我一种全新的体验,使我从内部真正了解了计算机。
我相信,它将是我程序员生涯的开。始。
——宋小静
何勤,男,51岁,吉林大学物理硕士,高校计算机教师。从事软件开发20余年,计算机教学十四年。Borland公司Delphi培训核心师资。主持开发过多个商业软件,曾获省科技进步三等奖。
《Prometheus监控实战》内容简介:本书由浅入深地对Prometheus进行了全方位的介绍,内容通俗易懂,理论与实践相结合。首先从监控体
在今天不可持续的商品社会,人们购买到渴望已久的商品,只是短暂的使用,就迅速地丢弃然后又去寻求新的,消耗和浪费疯长,进而失
《叶剑英风采(老一辈革命家风采)》内容简介:叶剑英(1897—1986),是坚定的马克思主义者,伟大的无产阶级革命家、政治家、军事
在线阅读本书World-renowneddesignandinnovationfirmIDEOusesfirst-handobservationstoinfor...
《马克笔手绘基础技法》内容简介:在玩具设计中,快速地表达与沟通是非常重要的。而手绘作为一种可用于视觉传达的艺术语言,因其方
算法设计,ISBN:9787302143352,作者:(美)克林伯格(Kleinberg,J.),()塔多斯(Tardos,E.)著,张立昂,屈婉玲译目录
《历史名镇:锦溪镇》内容简介:锦溪古镇,位于江苏省昆山市西南隅,因镇内一条彩若锦带的小溪而得名。锦溪素有“人文之乡”“生态
《经典之重写与重探:晚清民国词论集》内容简介:本书分为上下两编,各三篇文章。上编主要讨论晚清民国间词人在创作方面对唐宋词经
《粘土手办基础教程》内容简介:有没有想过把绘画书中的经典人物形象做成一个栩栩如生的人物模型收藏起来?其实一点也不难!翻开这
《经典电影如何讲故事》内容简介:好电影都讲了一个好故事,那些遭遇“滑铁卢”、不受市场待见的“烂片”,很大程度上是故事设计存
《信号与系统例题分析》共分7章,涵盖了信号及其基本运算、连续与离散时间系统的时域分析、傅里叶变换、离散时间傅里叶变换、傅里
《信息安全精要:从概念到安全性评估》内容简介:本书以现实世界的安全入侵事件为例,探讨了操作安全、网络设计、操作系统强化和修
《唐诗三百首译注》内容简介:《唐诗三百首》为流传最广、影响深远的唐诗选本。此版每首诗均由题解、原诗、题解、注释、译文五部分
《真实世界的经济学》内容简介:经济学大家、北大国发院教授周其仁代表作。经济学基于“理性人”假设,但它应当用来解释处处“不理
ProductDescriptionCoversofallaspectsofmultiplayergamedevelopmentandvirtualworldd...
《医者的人文情怀:临床小故事》内容简介:本书以住院医师自己亲身讲述在临床轮转过程中所接触的真实故事为基础,结合住院医师自己
《高可用MySQL(第2版)》内容简介:本书主要讲解真实环境下如何使用MySQL的复制、集群和监控特性,揭示MySQL可靠性和高可用性的方
本书通过案例分析、图片、插画,以一种独特的、吸引人的、出乎意料的方式诠释了成功的视觉营销活动。本书详细讲解了如何通过在线
《Web2.0动态网站开发:PHP技术与应用》以Web2.0网站开发的5种需求和28个重要元素为线索,从PHP开发Web2.0网站的三个理由出发,全
Cryptographyplaysakeyroleinensuringtheprivacyandintegrityofdataandthesecurityofc...