揭开编程的核心奥秘 何勤 2010.7.3

合集下载

小学生C语言编程入门书

小学生C语言编程入门书

又轮到计算机出马了,一共有 92 中不同的解决方案,牛吧!计算机 只需要 1 秒钟,就可以算出所有的解。 再来看一个很流行的益智游戏——数独。 在一个 9×9 格的大九宫格中有 9 个 3×3 的小九宫格。默认已经在其 中填写了一些数字,现在请在其它的空格上填入 1 到 9 的数字。每个数字 在每个小九宫格内只能出现一次,每个数字在每行每列也只能出现一次。 请看下面这个例子。
1 图 22-1
“啊哈 C”安装
(此处需双击图标)

“C 语言编译器”的作用把是把我们写的程序“变”成一个“exe”可以让计算机直接
运行的程序。这个“变”的过程的专业术语叫做“编译” 。当你的程序“变”成一个 “exe”后,你就可以脱离“C 语言编译器”直接运行你的程序了。此时你就可以把你 写的 exe 发给你的朋友和同学让他们一起来使用你编写的程序了。这里程序从某种意义 上来讲也可以叫做“软件” 。
hao"); 改为 printf("ni \n hao"); 这里的 \n 表示的就是“换
行” 。注意这里的
\ 是向右下角斜的,他在键盘上的位置,通常是在回
车键的上面。代码如下,好赶快尝试一下吧。运行结果如图 2-14。 #include <stdio.h> #include <stdlib.h> int main() { printf("ni\nhao"); system("pause"); return 0; }
15
14 分行后的运行结果 图 22-1
当然你也可以让“请按任意键继续...”在下一行显示,只需要将
\n ") ; 即可,去试 printf("ni hao"); 改为 printf("ni \n hao hao\n \n") ");

程序员的自我修养:编程经典书籍推荐

程序员的自我修养:编程经典书籍推荐

程序员的自我修养:编程经典书籍推荐作为一名程序员,不仅需要具备扎实的编程技术,还需要有广阔的知识储备和全面的视野。

阅读编程经典书籍可以帮助我们深入理解编程的本质和原理,提高编码能力,拓宽思维,培养更高的工程素养。

在下面的文章中,我将向大家推荐几本经典的编程书籍,希望能对广大程序员有所帮助。

1. 《程序员的自我修养——链接、装载与库》这本书是程序员自我修养系列的第一本,由俞甲子编写。

书中详细介绍了链接、装载和库的原理和实现方法,进一步深入阐述了操作系统、编译原理和计算机体系结构等知识。

对于想要了解程序背后的运行机制和优化方法的程序员来说,这本书是必不可少的。

2. 《代码大全(第2版)》《代码大全》是一本经典的软件工程书籍,由史蒂夫·迈克康奈尔(Steve McConnell)撰写。

这本书从项目规划、需求分析到软件设计、编码和测试等各个方面都做了详细的介绍,并给出了大量实用的编程建议和技巧。

无论是初学者还是有一定经验的程序员都可以从中获益良多。

3. 《深入理解计算机系统(第3版)》这是一本经典的计算机科学教材,也是一本影响深远的编程书籍,由Randal E. Bryant和David R. O'Hallaron合著。

这本书主要介绍计算机系统的组成和工作原理,包括处理器架构、内存管理、虚拟存储、I/O系统等方面的内容。

通过学习这本书,可以更好地理解计算机的底层原理,从而提高程序的性能和效率。

4. 《设计模式:可复用面向对象软件的基础》这是一本关于软件设计模式的经典著作,由埃里希·伽马(Erich Gamma)、理查德·赫尔姆(Richard Helm)、拉尔夫·约翰逊(Ralph Johnson)和约翰·威利斯迪(John Vlissides)合著。

书中介绍了23种常用的设计模式,包括单例模式、工厂模式、观察者模式等等。

通过学习和应用设计模式,可以提高代码的复用性、可读性和可维护性。

2024杨浦二模语文

2024杨浦二模语文

2024杨浦二模语文(满分150分,时间150分钟2024年4月)一积累运用(10分)1. 按要求填空。

(5分)(1) ,则无败事。

(《<老子>四章》)(2) 忳郁邑余侘傺兮,__________。

(屈原《__________》)(3) 苏洵在《六国论》中认为如果六国当年能“__________,__________”合力抗秦,将免于灭亡的命运。

2. 按要求选择。

(5分)(1) 将下列编号的语句排序,语意连贯的一项是()。

(2分)①那么多本地人司空见惯的场景在游客的啧啧称奇中,展现在互联网的舞台中②随着大量游客到达哈尔滨,中央大街、冰雪大世界、伏尔加庄园人潮涌动③“三亿人上冰雪”的“尔滨现象”背后,是生活的熠熠生辉和社会的勃勃生机④红专早市、道里菜场、融歌舞表演与夜间餐饮于一体的斯卡拉也人山人海⑤游客和媒体将哈尔滨亲切地称为“尔滨”,已成为自发生长的文化现象⑥以至于有当地市民向游客请教攻略,生动诠释了什么叫“旅游者定义旅游业”A. ①①①①①①B. ①①①①①①C. ①①①①①①D. ①①①①①①(2) 学校戏曲社举办《红楼梦》汇演,校新闻社记者打算利用短暂的中场休息时间进行采访。

《宝玉挨打》刚结束,扮演宝玉的同学回到后台,记者赶紧走上去采访,一共问了3个问题,请选出提问不合适的一项,并简要说明原因。

(3分)①你现在感觉如何?②宝玉在挨打过程中没有/你怎么表现他的内心活动?③你为何选择《梦游太虚》《宝玉挨打》《宝黛读<西厢>》这三折戏汇演?不合适的一项是简要说明原因:二阅读(70分)(一)阅读下文,完成第3~7题。

(16分)某学术公众号刊发了学者王敏芝的论文,引发网友留言:【甲】算法之下:“透明社会”的技术与观念王敏岁①当前我们关注的算法,并非直接等同于9世纪波斯数学家花拉子密在研讨数学问题时提出的“算法”概念,而是以数字技术和计算机程序为核心的现代人工智能算法。

现代智能算法超越了数学领域,通过数据分析和程序运行对算法对象进行计算和判断,对社会生活中的应用问题作出决策:从路线优化到寻找伴侣、从消费指南到新闻推荐,许多现实难题都在算法的帮助下获得有效而快速的解决。

《经济法》经济法主体

《经济法》经济法主体

五、国家经济监督主体



按职能和法律地位划分,主要有: 权力监督主体:人大 行政监督主体: (一)一般行政监督主体: (二)专门行政监督主体:监察部、审计署
六、行为



宏观调控行为 微观规制行为 国有参与行为 涉外管制行为 市场监管行为
第三节 市场主业性与非行业性

根据是否有成员的行业或职业集体性
意义:明确其在中介组织体系中的特殊地 位;明晰与其他中介组织在性质和职能上 的区别;
3、评价性与非评价性

根据所提供的服务是否属于评价性服务
法律意义:明确社会责任和法律义务;确 定共同的行为准则
4、专业服务性与佣金服务性

根据提供服务时是否直接以专业技术服务 为标的

第二节 企业法
一、企业法的概念

企业法是调整企业在设立、存续和终止过 程中所发生的社会关系的法律规范的总称。
二、企业法的调整对象

企业以及企业与投资者之间的经济关系
企业在设立、存续和终止过程中所发生的 经济管理关系 企业内部的经营管理关系

三、企业法律体系


关于公司的规范性文件 关于合伙企业 关于独资企业的 关于国有企业的
第三节 专业服务中介组织
一、概念

专业服务中介组织,是指依法设立,由一 定专业资格的人员组成,并以提供专业技 术性中间服务为经营手段的中介组织。 特征:专业法定性、社会评价性、企业经 营性
种类:合格评定机构、资产评估机构与保 险公估机构、专业委托代理服务机构、公 证与仲裁服务机构


二、组织形式与法律地位
二、经济管理主体的职权

人工智能课后练习题

人工智能课后练习题

上海大学《人工智能》网络课课后习题答案育才新工科-人工智能简介1【判断题】《人工智能》课程为理工类通选课,本课程给予学生的主要是思想而不是知识。

对图灵是谁?1【单选题】图灵曾协助军方破解()的着名密码系统Enigma。

A、英国B、美国C、德国D、日本2【判断题】电影《模仿游戏》是纪念图灵诞生90周年而拍摄的电影。

X3【判断题】图灵使用博弈论的方法破解了Enigma。

对为什么图灵很灵?1【单选题】1937年,图灵在发表的论文()中,首次提出图灵机的概念。

A、《左右周期性的等价》B、《论可计算数及其在判定问题中的应用》C、《可计算性与λ可定义性》D、《论高斯误差函数》2【单选题】1950年,图灵在他的论文()中,提出了关于机器思维的问题。

A、《论数字计算在决断难题中的应用》B、《论可计算数及其在判定问题中的应用》C、《可计算性与λ可定义性》D、《计算和智能》3【判断题】存在一种人类认为的可计算系统与图灵计算不等价。

X4【判断题】图灵测试是指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。

如果测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。

对为什么图灵不灵?1【单选题】以下叙述不正确的是()。

A、图灵测试混淆了智能和人类的关系B、机器智能的机制必须与人类智能相同C、机器智能可以完全在特定的领域中超越人类智能D、机器智能可以有人类智能的创造力2【单选题】在政府报告中,()的报告使用“机器智能”这个词汇。

A、中国B、英国C、德国D、美国3【多选题】机器智能可以有自己的“人格”体现主要表现在()。

A、模型间的对抗—智能进化的方式B、机器智能的协作—机器智能的社会组织C、机器智能是社会的实际生产者D、机器智能可以有人类智能的创造力4【判断题】图灵测试存在的潜台词是机器智能的极限可以超越人的智能,机器智能可以不与人的智能可比拟。

X人类智能与机器智能如何共融及未来1【单选题】以下关于未来人类智能与机器智能共融的二元世界叙述不正确的是()。

2015程序员推荐书单

2015程序员推荐书单
《编程的本质》
本书提供了有关编程的一种与众不同的理解。其主旨是,实际的编程也应像其他科学和工程领域一样基于坚实的数学基础。本书展示了在实际编程语言(如C++)中实现的算法如何在最一般的数学背景中操作。例如,如何定义快速求幂算法,使之能使用任何可交换运算。使用抽象算法将能得到更高效、可靠、安全和经济的软件。
《UNIX编程艺术》
本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S. Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。
分享源自:
企业管理者也可以读读,关于如何提高产品的水平,同时又能有效避免人力成本和时间成本的浪费,在KPI和ROI的结合下,实现最大的效益。通过行业上下游合作,提高自身产品的能力,又如何将企业资源整合,成为产业链中不可或缺的平台。
本书是企业成长的必备参考书,适合每一位致力于企业快速成长及提升自身综合实力的职场人士阅读,对初创企业、在互联网方面涉足不深,以及处在发展缓慢状态的公司都有极大的启示作用。
《编写可读代码的艺术》
细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。
本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编码不仅仅只是一种技术,也是一门艺术,编写可读性高的代码尤其如此。如果你要成为一位优秀的程序员,要想开发出高质量的软件系统,必须从细处着手,做到内外兼修,本书将为你提供有效的指导。

程序员进阶必读的5本经典书

程序员进阶必读的5本经典书技术的发展日新月异,作为程序员,仅仅停留在调用API组装代码是很快就会被淘汰掉。

那么如何能在竞争日益激烈的职场,保持自己的核心竞争力;我觉得就要埋下头、下功夫去钻研,去积累自己的技术底蕴。

当别人在调用API的时候,你能够想到网络请求;当别人想到网络请求的过程,你能够想到五层协议。

当别人想到五层协议时,你能够想到并发访问。

当别人想到并发访问的时候,你能知道线程池、连接池、异步io等。

这样你就越想越深,越走越远。

作者为大家推荐5本程序员进阶必读的书籍。

看完这5本书,你对编程的理解一定会有质的飞跃。

1 《程序员修炼之道》本书之所以在全球范围内广泛传播,被一代代开发者奉为圭臬,盖因它可以创造出真正的价值:或编写出更好的软件,或探究出编程的本质,而所有收获均不依赖于特定语言、框架和方法。

时隔20年的新版,经过全面的重新选材、组织和编写,覆盖哲学、方法、工具、设计、解耦、并发、重构、需求、团队等务实话题的最佳实践及重大陷阱,以及易于改造、复用的架构技术。

本书极具洞察力与趣味性,适合从初学者到架构师的各阶层读者潜心研读或增广见闻。

2《代码整洁之道》整洁之道三部曲是软件开发大师罗伯特·马丁(Bob大叔)的经典著作,汇集了他数十年的编程经验,是软件开发领域为数不多的畅销经典图书。

3 《黑客与画家》在本书中,作者和我们谈论了与黑客有关的三个方面:1.黑客如何成长及看待世界;2.黑客如何工作及影响世界;3.黑客的工具和工作方法。

事实上,在全部15篇文章中,保罗所探讨的内容远远超出了黑客所关注的内容,并以幽默的笔触,在最广泛的可能性上展现了他对于人人关心且受其影响的重大议题的思考。

不管是创造财富,还是如何设计出好产品,抑或如何在充满了异见的世界里自洽地活着。

可以说,不管我们处在人生的什么阶段,都将从阅读本书的过程中得到启示。

4《计算机是怎么跑起来的》本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。

C语言程序设计课后答案(郑莉第4版)

第一章概述1-1 简述计算机程序设计语言的发展历程。

解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。

1-2 面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。

面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。

通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。

因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。

C++语言是目前应用最广的面向对象的编程语言。

1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。

结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。

当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。

由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。

1-4 什么是对象?什么是面向对象方法?这种方法有哪些特点?解:从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。

学习电脑编程的优秀书籍与教程推荐

学习电脑编程的优秀书籍与教程推荐对于想要学习电脑编程的朋友来说,选择一本好的书籍或跟随一套优秀的教程是非常重要的。

在这篇文章中,我将向大家推荐几本备受好评的电脑编程书籍和一些受欢迎的在线教程,希望能为大家提供一些帮助和指引。

一、经典书籍推荐1.《计算机程序的构造与解释》(SICP)–由哈罗德·阿贝尔森(Harold Abelson) 和杰拉德·李贝尔森 (Gerald Jay Sussman) 编写的经典之作。

这本书通过介绍计算机科学的核心概念和编程技术,帮助读者培养抽象思维和解决问题的能力。

2.《代码大全》(Code Complete)–斯蒂夫·迈克康奈尔 (Steve McConnell) 的经典力作。

这本书详细介绍了软件开发过程中的各个阶段,包括需求分析、设计、测试和维护等,是一本涵盖全面的编程指南。

3.《算法导论》(Introduction to Algorithms)–托马斯·科尔曼(Thomas H. Cormen) 等人合著的一本权威教材。

这本书系统地介绍了算法的设计和分析,适合对算法基础感兴趣的读者。

二、编程语言书籍推荐1.《Python编程快速上手-让繁琐工作自动化》–阮一峰 (Yifeng Ruan) 编写的一本介绍Python编程语言的入门书籍。

书中通过实际案例和示例代码,帮助读者快速入门Python,并掌握自动化处理任务的技巧。

2.《Java核心技术-卷一》(Core Java Volume I – Fundamentals)–凯·霍斯特曼 (Cay S. Horstmann) 和加里·科恩 (Gary Cornell) 联合编写的一本Java经典教材。

这本书深入浅出地介绍了Java编程的基础知识和核心技术。

3.《C++ Primer》–斯坦利·利普曼 (Stanley B. Lippman)、约瑟夫·拉乌 (Josée Lajoie) 和巴巴拉·穆比 (Barbara E. Moo) 合著的一本经典C++教材。

二进制知识入门书籍 -回复

二进制知识入门书籍-回复二进制知识入门书籍是学习计算机科学和相关领域的重要基础,它们帮助读者理解和运用二进制数系统,这是现代计算机中最基本的表示和处理数据的方式。

本文将介绍一些适合初学者的二进制知识入门书籍,帮助读者建立对二进制的基本了解并掌握它在计算机科学中的应用。

一、《编码:隐匿在计算机软硬件背后的语言》(作者:Charles Petzold)这本书是一本经典的计算机科学入门书籍,从二进制开始讲述计算机系统的工作原理。

它深入浅出地解释了0和1在计算机中的使用,以及如何将它们转化为可执行的指令和数据。

通过一系列生动有趣的例子和实验,读者能够深入了解计算机是如何理解和处理二进制数据的。

二、《深入浅出理解计算机系统》(作者:Randal E. Bryant和David R.O'Hallaron)这本书以全新的视角来介绍计算机系统的知识,包括二进制编码、数字逻辑、机器级语言等。

它不仅仅是一个专注于二进制的入门教材,还探讨了计算机系统的其他方面,通过具体的例子和演示,让读者更加深入地理解计算机系统是如何工作的。

三、《计算机科学导论》(作者:Behrouz A. Forouzan和Firouz Mosharraf)这本书面向计算机科学和工程专业的学生,是一本综合性的导论教材。

它包含了计算机科学的各个方面,其中包括二进制和数字逻辑。

通过清晰的解释和例子,本书帮助读者理解计算机科学中的基础概念,并提供必要的背景知识,以便更深入地学习和应用二进制以及其他相关的计算机科学知识。

四、《代码:隐匿在计算机软硬件背后的威力》(作者:Charles Petzold)这本书是《编码:隐匿在计算机软硬件背后的语言》的续作,更加深入地讲述了计算机系统的工作原理和计算机编程的基础。

它介绍了二进制数、位操作、逻辑门以及计算机的指令集等内容。

通过一系列实际的编程例子和项目,读者能够更加深入地理解二进制在计算机编程中的应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

揭开编程的核心奥秘 何勤 1 详细讲解编程思想 衔接各门主干课程 揭开编程核心奥秘 提高编程基本素养

揭开编程的核心奥秘

何勤 著 揭开编程的核心奥秘 何勤

2 二十年编程经验、十六年教学经验 十年收集素材、五年精心写作 奉献给任何有耐心的真正想学会编程者

揭开编程的核心奥秘 何勤

3 序 目前,除了极少除天才外,其他任何人要真正学会编程,几乎都要花费五年以上的时间悬梁刺股、卧薪尝胆。真正原因何在?其实只需到真正会编程的人身上就能找到根本原因。 经过认真仔细分析,我发现:根本原因在于:每个真正会编程者,都必须具备计算机科学的大局观。也就是说,每个真正会编程者都必须懂得和掌握: 1、C语言的基本语法(主要是各种命令型语言的公共部分,还包括指针的基本概念); 2、计算机到底是如何工作的; 3、操作系统是如何在硬件的密切配合下,管理调度计算机的所有软硬件资源,为多道应用程序运行进行调度和提供服务的。 4、编译程序大体上是如何对源程序进行编译工作的。 5、大量的阅读和调试经典的、基本的、由易到难的各种类型的C程序(至少100题以上)。消化和积累各种基本问题的编程思路,并能用逐步求精的伪代码构造常见问题的算法; 以上五项是必须具备的大局观方面的基本素质。此外,如果想成为程序员,还应当学习和掌握:汇编语言程序设计、算法与数据结构、数据库原理及数据库编程、计算机网络及网络编程、面向对象编程技术等课程知识。 由此可见,这条成才之路确实非常谩长和艰苦!尤其是第2到第5项知识的掌握,更是一个极为痛苦的心路历程上的万里长征!因为读者不仅要认真学习这些知识,而且还要做大量的提炼精华、融会贯通的艰巨功课。这是由于各门课之间的内容衔接这项无比艰巨的工作,通常必须由学生亲自去做,目前没有任何一本书在这方面做得比较好。 为了大大减轻这个成才过程中的痛苦,笔者花费了十余年时间广泛收集、筛选素材,并且进行了长时间地、艰苦地探索,终于很幸运地找到了一个绝好的比喻——理想厨房系统,恰好可以把以上五大方面的知识在一个比较初级的层次上,比较完美地串联起来,构成一幅计算机科学中最重要的、最精华的基本知识的“联络图”。为初学者在短时间内把握计算机科学的大局观开辟了一条相对比较轻松的捷径。而且,这也为后续更高级编程技术课程的学习奠定了良好的知识基础。 本书虽然比较系统地讲解了C语言语法,但是,读者别指望从这本书中找到高深语法细节问题的讲解。因为笔者认为:过早学习太多高深语法,是很多学生学不会编程的罪魁祸首!这将导致很多学生觉得程序设计课相当枯燥乏味。浪费了读者本可以用来学习生动有趣的编程思路和技巧的宝贵时间和有限精力。编程语言的高级语法知识的掌握,比大量编程思路的领会和积累要容易得多!学生在学习过程中最需要得到的是编程思路上的引导和启发。 然而,本书中的全部例题却是值得你认真钻研的,因为其中蕴含了大量比较经典的基本编程思想和编程技巧。本书不可能系统讲解各种编程思路(这是算法、数据结构这两门课的任务),然而,本书却教给了读者一种极为有效的举一反三的编程方法,这种方法强调从特.

殊到一般....来探索问题的编程思路和编程技巧。在循环和数组这两章的很多例题中,展现了如

何利用这种方法来做各类编程题。本书也很重视培养读者用逐步求精的伪代码来构思算法的能力。 读者要注意,学习钻研本书一定要配套做100——200道各种类型的由易到难的编程题。这个亲自动手编写和调试程序的实践性修炼环节,是任何编程书籍和老师都无法替代的。 读者还要特别注意:千万不要被某些教科书误导,从而陷入钻研一门高级语言语法细节知识的痴迷和狂热之中(误以为学好一门语言的高深语法,就轻松步入了编程高手的行列)。这就象一位想学会写作文的学生热衷于冷僻汉字和高深语法,而置更为重要的学习写作思路和技巧(包括体验生活、了解历史、地理、风土人情)于不顾那么可笑!必须将编程思路的领会和积累放在编程学习中的首要位置。方向如果偏离了,做出再大努力也难以真正学会编程。 揭开编程的核心奥秘 何勤 4 在表达算法方面,本书宁愿舍弃更容易懂的流程图,而使用逐步求精的伪代码,这是由于真正的编程高手都是用逐步求精的伪代码来构思和表达算法的。一旦养成了用流程图来构造算法的坏习惯,就很难再转到用代码来表示算法。 以理想厨房为“纲”,以程序如何运行、如何构思编写为“目”,把计算机科学中为了真正学会编程必须掌握的、几乎所有的、基础的、精华的知识有机的串联起来。在本书中,笔者仅仅做了这样一件事。 读者不要以为真正学会编程只是计算机专业学生的事。任何一位当代社会的理工类大学生,都必须具备一定的编程能力,能够在未来的科技工作中把计算机做为自己的得力助手和亲密伙伴,否则你就不是当代社会的合格科技人材。 对本书有什么改进的意见和建议,或者有什么好的例题或习题要推荐放入本书中,可直接与笔者联系:heqin3785@yahoo.com.cn 凡是本书采纳了的习题或例题都会标出提供者的姓名等信息。并在本书正式出版后,每一例题赠送签名书两本。每一习题赠送签名书一本。 愿意为本书做精美插图、电子教案的,也可与笔者联系。 揭开编程的核心奥秘 何勤

5 目录 第一章 计算机的基本工作原理(初) 第二章 C语言的基本概念(基础篇) 第三章 C语言的基本概念(提高篇) 第四章 选择结构程序设计 第五章 循环结构程序设计 第六章 数值数组 第七章 函数 第八章 指针 第九章 字符串与字符数组 第十章 结构体与链表 第十一章 C语言其它内容简介 第十二章 计算机与操作系统基本工作原理 第十三章 命令型高级语言编译过程简介 附录 揭开编程的核心奥秘 何勤

6 第一章 计算机的基本工作原理(初) 学过计算机基础而又想马上学习编程的读者可以直接跳过本章,但最好还是看一下本章末的总结。

计算机从发明到现在,不过大约70年的时间。然而计算机的发明、改进和普及,却彻底地变革了人类社会。计算机本身也越来越变得复杂、快速、小巧、种类繁多。好在大多数计算机从基本工作原理上来看,都是非常类似的——大多数都是冯.诺伊曼型的。这是我们花费少量时间,就能真正理解绝大多数计算机基本工作原理的根本原因。 本节是全书的重要基础。通过本节,为你真正揭开计算机究竟如何工作的神秘面纱。(但是要直到9.4、9.5节,才能彻底揭开计算机硬件如何在操作系统这个系统软件的调度管理下,并行运行多道程序的内在奥秘。)纠正你对计算机的一些错误认识和看法。并为第2、9、10章的学习打下牢固的知识基础。 本节不需要任何的预备知识,只要你能把本节认真仔细地学习两遍,你就能够真正懂得看似极为神秘莫测、奥妙无穷,到目前为止人类有史以来最伟大、最神奇而又最为复杂的发明——计算机(又称为电脑。这个伟大发明,汇集了几代人中很多杰出人士的聪明才智和研究成果)是如何工作的基本原理。为达此目的,笔者付出了极大的努力,找到了一种比较好的比喻方法——理想厨房系统,由此开始我们的真正理解计算机工作原理的,激动人心的探索旅程。 我们将要探索的是:一个看起来很不起眼的,在一些场合被称为“电脑”的电器设备,是如何具有如此神奇的“魔力”和“智能”的奥秘所在。这种神奇的“魔力”和“智能”正在迅速地、彻底地、默默无闻或者令人震惊地改变和丰富我们所生活的大千世界。

1.1理想厨房系统: 理想..厨房系统,.....是一个通过顺序执行菜谱中的各个加工步骤,把原材料加工成菜肴的系统。 理想厨房系统由硬件(理想厨房、自动冰箱和三条传送带)................和软件(菜谱)组成。

1) 硬件:...理想厨房系统,主要由以下三个硬件..部件(即实物部件)构成——理想厨房、自......

动冰箱和三条传送带。..........

●自动冰箱:负责临时保存菜谱、原材料和菜肴。是不是很奇怪?菜谱竟然要和原材料一道,统一存放在冰箱中! ●三条传送带:负责理想厨房与自动冰箱之间的通信及物品(菜谱中的加工步骤、原料和菜肴)传送。 ●理想厨房:负责根据从菜谱中取到的加工步骤进行炒菜以及进行相关的控制工作。

2) 软件:...理想厨房系统中,还有一个无重量、无体积、不会损坏、可经常更换的,但又极为重要的软件..部件(即信息流部件)——菜谱。菜谱由一个个加工步骤顺序组成。

注意:术语“理想厨房系统”与“理想厨房”是有区别的,理想厨房只是理想厨房系统中的一个组成部分。

理想厨房系统的构成简图如图1.1所示: 揭开编程的核心奥秘 何勤 7 理想厨房 自动冰箱 碟名 碟中物品 格子编号 格子中存放加工步骤或原料 R0 R1 厨具 R2 厨师

PC 厨房管理员 IR

材料传送带 地址传送带 控制传送带

0 1 2 3 4 5 6 7

图1.1理想厨房系统的构成简图(但图中没给出具体的软件) ● 理想厨房执行菜谱的一个加工步骤,其流程完全是周期性的。 厨房管理员首先要根据PC碟中的值(这个值表示:将要执行的加工步骤,位于冰箱的哪一格中),通过三套传送带的协调工作,到自动冰箱的指定格中去取这个加工步骤。取到理想厨房并把它放到IR碟中后(PC碟中的值将会加上1,为取下一个加工步骤做好准备),管理员还要阅读并分析此加工步骤;然后根据此加工步骤的指示,去做以下七类工作中的一种: 1.通过三套传送带,命令..自动冰箱把指定地址格子中的(炒菜过程马上要用到的)原材料传到理想厨房中来——即取物品; 2.命令..厨师按照指令(即加工步骤)的要求,对原材料(做“炒”,“蒸”,“煮”等

基本操作步骤中的一个炒菜动作)作一个基本加工操作——即加工原材料。 3.通过向三套传送带向自动冰箱发命令..,把某个碟子中的成品(或半成品)送回到冰箱指定的格子中存放——即存物品; 4.根据某个状态碟中的具体条件(比如预定时间到了、温度到了),不按正常顺序取出并且执行下一条指令,而是根据此指令中给出的(冰箱格子的相对)地址,跳转到那一格中去取下一条指令——即进行跳转。 5.在厨房的各个碟子或炊具之间传送原料或半成品——在厨房内部进行物品传送 ; 6.命令传菜生端菜给顾客(在本章不讨论,见第9章); 7.命令配菜员为某菜配原材料(在本章不讨论,见第9章);

一个加工步骤执行完后,理想厨房立即自动进行下一个完全相同的、新的取加工步骤——执行加工步骤的周期。

下面我们通过一个实例来讲述理想厨房系统的工作机制。这是本章的重点内容。 1.2理想厨房系统的一个炒菜实例: 现在,我们通过编写一道香菇炒菜心的特殊菜谱,把它放在自动冰箱中,并把经过初加工的香菇和菜心放在自动冰箱合适的位置,然后启动理想厨房进行炒菜工作。来看看这个似乎很希奇古怪的理想厨房系统,是如何炒好这道“香菇菜心”的。 首先,把香菇放在冰箱地址为5的格子中,把菜心放在冰箱地址为6的格子中,冰箱地

相关文档
最新文档