教学课件:《C语言程序设计》_第1页
教学课件:《C语言程序设计》_第2页
教学课件:《C语言程序设计》_第3页
教学课件:《C语言程序设计》_第4页
教学课件:《C语言程序设计》_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 为什么学编程课程教学目标掌握用计算机求解问题的基本思维方法掌握高级语言程序设计的基本知识掌握计算机软件设计与实现的基本方法具备用计算机解决实际问题的能力和基本的程序调试能力How to Think Like a Computer ScientistHow to program Like a Computer Scientist2/37第1章 学习内容计算机和程序设计的基础知识C语言简介C语言集成开发环境3/37问题1:你了解计算机吗?为什么计算机也被俗称为“电脑”?期望计算机有朝一日能像人脑一样聪明让机器能像人一样思考,一直是人类的梦想很多科幻故事描绘了计算机真正成为电脑时的景象变形金

2、刚里的机器人大战AI(人工智能)里探讨的人类与机器的感情关系终结者里机器人企图消灭人类最有想象力的是Matrix(黑客帝国)4/37问题2:你了解计算机领域的哪些人?你了解计算机科学领域中的哪些著名的人物?阿兰图灵(Alan Turing)现代计算机科学之父和人工智能之父的英国数学家1950年发表题为“Computing Machinery and Intelligence” 的论文,首次提出“机器思维”的概念,并从“机器能否思考”这一问题出发,提出一个判断机器是否有智能的测试标准“图灵测试”(Turing Testing) 5/37问题3:什么是“图灵测试”?图灵提出的一种判断机器是否具有智

3、能的标准(方法) 测试人在不接触被测试者(一个人和一台机器)的情况下,通过一些终端设备(如键盘)向被测试者提问如何判断这台机器通过了测试,并具有与人类相当的智能呢?更换测试人或被测试者中的人?6/37问题4:什么是人工智能?人工智能(Artificial Intelligence,简称AI)用机器模拟人类的智能活动博弈(Game Playing)研究下棋程序1997年IBM公司研制的Deep Blue超级计算机在一场“人机大战”中打败国际象棋大师卡斯帕罗夫,被誉为“AI的一大胜利”世界排名第二的棋手印度人阿南德曾说:“这是一个像人一样的机器同一个像机器一样的人之间的战斗”。奥秘:高速的检索演算

4、能力及其海量的存储能力(200万棋谱)让计算机执行复杂的计算和推理任务不能看成是AI活动7/37问题4:什么是人工智能?2012年6月底,在英国著名的布莱切利庄园举行了一场国际人工智能机器测试竞赛由俄罗斯专家设计的“叶甫根尼”电脑程序脱颖而出其29.2%的回答均成功“骗过”了测试者,被视为目前世界上最接近人工智能的机器但距人类级人工智能(Human Level AI,HLAI)的目标仍然较远8/37问题4:什么是人工智能?AI的先驱者之一美国CMU的西蒙(Herbert Simon)最令他惊讶的是让计算机做“难”的事情是多么的容易,而做“容易”的事情是多么的“难”。图灵曾预言,在20世纪末,一

5、定会有电脑通过“图灵测试”。例如2011年,IBM公司研制的Watson软件系统能以每秒翻100万本书的速度从其存储的2亿页百科全书、字典、文学作品中搜索答案人类望尘莫及而理解一个儿童故事?9/37问题5:什么是计算机系统?一种能按照事先存储的程序自动、高效地对数据进行输入、处理、存储和输出的系统计算机系统(Computer System) = 硬件 + 软件执行程序10/37问题6:什么是硬件?硬件(Hardware) 计算机系统中所有实体部件和设备的统称由中央处理器(CPU)、存储器和输入/输出设备等核心部件组成在软件的配合下完成输入、处理、存储和输出等基本操作计算机是用来延伸人的能力的工

6、具大脑眼睛和耳朵11/37问题7:什么是软件?人驾驭计算机的手段之一是编写软件(OS, Office, IE,)软件(Software)系统软件为使用计算机提供最基本的功能操作系统用户与计算机硬件系统之间的接口,管理计算机系统的各种软、硬件资源,使得它们可以协调工作,最内层支撑软件环境数据库、接口软件和工具软件应用软件直接面向特定应用的软件图像处理,文字处理,计算机动画,CAD12/37问题8:软件与硬件的关系是什么?硬件计算机的躯壳和肉体软件计算机的灵魂和思想软件促进了计算机从裸机到计算机系统的进化13/37问题9:程序和软件有区别吗?程序(Program)为了实现特定目标或解决具体问题而用

7、计算机语言编写的指令的有序集合程序就是软件的全部吗?程序、数据、文档之间的关系厨师软件开发人员烹饪方法软件中的程序菜谱软件的文档食材软件中的数据整个烹饪过程软件的实现过程14/37问题10:人与计算机交流用什么语言? “如果你想成为周游世界的旅行家,那么你大概需要学习用6912种语言说:你好,厕所在哪里?”Brian Hayes分号的战争人类之间沟通和交流的语言汉语、英语.让计算机像人一样地思考,与人自然交流,一直是计算机行业的梦想。如果计算机能读懂人的自然语言(Natural Language),那么。?15/37问题10:人与计算机交流用什么语言? 计算机学会人的语言,与人自然交流自然语言

8、理解(Natural Language Understanding)尽管自然语言理解技术得到了长足发展,但目前人机交互(Human-Computer Communication)几乎还只能使用严格限制的各种非自然语言,即计算机专用的语言人类只能主动学计算机的语言,做不到计算机学会人的语言16/37问题11:计算机能读懂什么语言? 计算机只能识别二进制指令机器语言(Machine Language)用机器语言编写的一组机器指令的集合,称为机器代码(Machine Code),简称机器码用一系列二进制0和1组成的二进制代码代表不同的机器指令机器语言编写的1+1程序犹如天书!101110000000

9、000100000000000001010000000100000000计算机的母语是什么?17/37问题12:如何让程序员远离二进制? Both learn a third-party language用助记符代表机器指令的操作码用一个汇编器(Assembler)将这些符号翻译成机器可识别、可执行的二进制指令汇编过程汇编语言(Assembly Language)低级语言,与计算机硬件的距离的级别较低,对硬件依赖性强MOV AX, 1101110000000000100000000ADD AX, 100000101000000010000000018/37问题13:如何实现更有效的人机交流?

10、设计更贴近人类自然语言和数学语言的计算机语言高级语言( High-level Languages )“高级”在哪里?可以在一个更高的级别上进行编程不像低级语言那样依赖于硬件更远离机器语言更易学易用,具有可移植性19/37问题14:如何将高级语言翻译成机器语言?编译型语言通过编译器(Compiler)把源程序全部翻译成逻辑上与之等价的机器语言表示的目标代码(Object Code),才能被计算机识别和执行解释型语言解释程序(Interpreter)边扫描边解释,语句被逐条地解释成可执行的机器指令,不产生目标程序“同声传译”有些解释语言(如Java和C#)采用了“先编译、后解释”的方法来提速20/

11、37PRINT 1+1BASIC语言编写的1+1程序高级语言的特点 C语言编写的1+1程序#include int main()printf(%dn, 1+1); return 0;既非英语,也非机器语言,但更像英语高级语言程序必须通过编译器或解释器翻译成机器语言形式的目标代码,才能被计算机识别和执行易学、易用、易读、易懂、强大、可移植21/37高级语言的发展历程1954年约翰.巴克斯发明第一个高级语言FORTRAN百家争鸣,据不完全统计2500种/nkinners/LangList/Extras/langlist.htm可看到其列表和简介 影响最大、寿命最长的非C语言莫属百花齐放开宗立派内外

12、兼修互联网 时代初露锋芒22/37编程语言受欢迎程度排行/tpci.htm 23/37高级语言的分类 语言典型代表特点过程式语言(Procedural)C命令驱动,面向动作(语句),即将计算看作是动作(语句)的序列,程序由一系列的语句组成函数式语言(Functional)LISP注重程序实现的功能,程序的编写过程是从已有函数出发构造出更复杂的函数,应用这些函数直至计算求得最终结果面向对象语言(Object-Oriented)SmallTalk、C+、Java程序的编写过程是直接从问题本身出发分析问题,并把数据和操作封装在一起构成对象,用数据描述对象属性,用对数据的操作描述对象行为逻辑式语言(L

13、ogical)PROLOG基于规则的具有推理功能的语言24/37C语言的设计者Ken Thompson江湖人称 kenDennis M. Ritchie江湖人称 dmr两个骨灰级游戏玩家Ritchie漫画像25/37C语言的诞生始末1969年,ken梦想能遨游宇宙,设计了一款模拟在太阳系航行的电子游戏“Space Travel”,1971年dmr加入游戏在PDP-7小型机上开发,因为这台机器免费,但免费的机器没有操作系统玩游戏前,先给PDP-7做个操作系统,命名为UNIX20世纪60年代,Ritchie 和Thompson 在贝尔实验室开发UNIX操作系统26/37C语言的诞生始末汇编编写UN

14、IX太慢,而一般的高级语言难以实现汇编语言的某些功能,怎么办?dmr改造B语言,设计了一种新的高级语言,命名为“C语言”,把UNIX的90%以上代码用C改写1983年,因为UNIX和C语言的巨大成功, ken和dmr共同获得当年度的计算机界最高奖图灵奖1999年接受美国国家技术勋章27/37C语言标准1978年,Dennis M.Richie和Brian W.Kernighan合著影响深远的名著The C Programming Language1982年,美国国家标准化协会( American National Standards Institute,ANSI)成立C标准委员会1989年,发

15、布第一个完整的C语言标准,简称C89习惯上也称为ANSI C(标准C)1990年被国际标准化组织ISO采纳,也称为C901999年修正和完善之后,ISO发布了C9928/37问题15:为什么要学C语言?是一种高级语言并不“高级”,只是相对低级语言在一个高的级别上进行编程实际上是一种介于高级语言和低级语言之间的语言,运行效率高透过现象看本质,透过C语言窥探计算机底层的工作原理很多流行语言、新生语言都借鉴了它的思想、语法从C+,到Java,再到C#学好C是学习这些流行语言的基础,了解程序设计的基本思想交流、笔试、面试时最常见的语言29/37问题15:为什么要学C语言?历史悠久,战勋卓著诞生于20世

16、纪70年代初成熟于80年代很多重量级软件都是用C语言写的,维护已有的C代码上天入地,无所不能几乎没有不能用C语言实现的软件没有不支持C语言的系统30/37问题16:C语言适合做什么?硬件(Hardware)Operation System操作系统(OS) Application(应用程序)应用平台基于平台的应用程序Domain of Low level languageDomain of High level languageDomain of C31/37问题17:选择语言的标准是什么?适合的才是最好的C语言最适合哪些应用?编写系统软件(例如OS)和工具软件运行效率要求较高的系统设备驱动程序

17、,嵌入式系统(Embedded systems)(工业机器人、家用机器人、智能手机和智能家电等 )高性能、实时系统(Real-time systems)32/37问题18:计算机、程序员、程序之间的关系?程序员(Programmer)编写程序源代码(Source Code)的人计算机、程序员、程序之间的关系计算机程序员程序乐队指挥家乐谱军队总司令作战计划33/37程序的开发步骤What is to be done?How is it to be done?分析设计编码编译连接运行测试调试维护修改一种语言对应一种编译器(Compiler)把源程序翻译成逻辑上与之等价的机器语言表示的目标程序把程序调用的库函数链接到目标程序中,生成可被OS执行的程序34/37

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论