《程序设计abc》ppt课件

上传人:tian****1990 文档编号:74491135 上传时间:2019-01-28 格式:PPT 页数:42 大小:3.31MB
返回 下载 相关 举报
《程序设计abc》ppt课件_第1页
第1页 / 共42页
《程序设计abc》ppt课件_第2页
第2页 / 共42页
《程序设计abc》ppt课件_第3页
第3页 / 共42页
《程序设计abc》ppt课件_第4页
第4页 / 共42页
《程序设计abc》ppt课件_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《《程序设计abc》ppt课件》由会员分享,可在线阅读,更多相关《《程序设计abc》ppt课件(42页珍藏版)》请在金锄头文库上搜索。

1、第1章 程序设计ABC,C语言大学实用教程,What is a computer?,A Computer is a device capable of performing computations and make logical decisions at speeds millions (even billions) of times faster than human beings can. 目前,最快的supercomputers可每秒执行trillions of additions,What is a computer?,目前的PC机可每秒执行十亿次加法 人用计算器一生也完不成PC机

2、1秒钟完成的计算量,计算机行业的梦想,计算机行业的梦想 与人自然交流,像人一样地思考 人工智能(Artificial Intelligence) 图灵测试 1950年,英国数学家A.M.Turing在思想(mind)杂志上发表“计算机与人工智能”一文,提出判定机器是否具有智能的测试方法,计算机行业的梦想,博弈被认为是智能活动,AI之初主要研究下棋程序 1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫 被誉为“人工智能的一大胜利” 世界排名第二的棋手印度人阿南得说: 这是一个像人的机器和一个像机器的人之间的战斗 深蓝的主要研制者之一许峰雄博士: 胜利靠的

3、只是不知疲倦地高速运算,并不是什么智能 深蓝中输入了近200万棋谱,计算机行业的梦想,AI的先驱者之一Carnegie Mellon大学(CMU)的Herbert Simon回忆说: 最令他惊讶的是做“难”的事情是多么的容易,而做“容易”的事情是多么的“难” 至今仍无人造出可自动穿越拥挤的房间或理解儿童故事的机器来 Comput + er 计算的机器,What is a computer?,硬件(hardware) 键盘、鼠标、显示器、硬盘、DVDs、内存、CPU 硬件成本下降很快 摩尔定律 每过18个月微芯片的集成度翻一番,而芯片价格保持不变 软件(software) 运行于计算机之上的程序

4、(Program) 如何降低软件开发成本?,当前computer所面临的挑战,微芯片的集成度决定于微芯片上的刻线宽度。 当刻线宽度小于30纳米时,就会发生量子效应,古怪的量子定律开始起作用。 电子会越过原子粗细的导线和绝缘层,从一个地方跳到另一个地方,而不穿过这两个地方之间的空间,产生致命的短路。 预计刻线宽度达到50-70纳米时,硅电子芯片的集成电路将达到顶点,大概在2014年左右,未来的computer?,新的计算机正在研究 超导计算机 纳米计算机 光计算机 DNA计算机 量子计算机 但是,短期内,基于集成电路的计算机还不会退出历史舞台,很像厨师的菜谱,定义了执行某个任务所需的步骤 但不幸

5、和不同的是,你不能使用你自己的母语来写Code,What is programming language?,What is programming language?,计算机能读懂的语言 机器语言(Machine Language) 由一系列二进制0和1组成 机器语言编写的1+1程序 低级语言,10111000 00000001 00000000 00000101 00000001 00000000,像不像天书?,What is programming language?,PRINT 1+1,结果显示在屏幕上,#include main() printf(“%dn“, 1+1); ,程序设计语

6、言(programming language) BASIC语言编写的1+1程序 C语言编写的1+1程序 既不是英语,也非机器语言 但更像英语 高级语言 比写机器语言程序容易,但比使用英语难,What is programmer?,编写程序源代码(Source Code)的人 程序员(Programmer) 计算机、程序员、程序之间的关系 如果计算机是乐队,那么程序员就是指挥家,程序就是乐谱。 如果计算机是军队,那么程序员就是总司令,程序就是作战计划。,怎样让计算机读懂高级语言?,编译器(Compiler) 把源代码转换为可被计算机理解的机器代码 把机器代码以可执行文件(Executable F

7、ile)的形式保存在磁盘上 一种程序设计语言对应一种编译器,怎样让计算机读懂高级语言?,程序员按照该语言的语法编写程序源代码 把自己的意图写入源代码中 编译器读入源代码 把程序员的意图转换成可执行程序,供他人使用,C语言,可执行程序,编译器,怎样让计算机读懂高级语言?,程序设计语言是人与计算机进行交流的语言 有很多种,分别适合做不同的事情 现在人还只能主动学计算机的语言 做不到计算机学会人的语言 当计算机懂了人的自然语言,就几乎不再需要编程,想让计算机干什么,尽管对着它说好了,那时程序员可能也就失业了。,程序是如何运行的?,计算机把机器代码读入到内存(Memory) 由CPU运行这些代码 读取

8、输入(Input) 产生输出(Output) 完成程序员预定的功能 计算机专业后续课程 计算机原理 编译原理 操作系统,程序开发步骤,What is to be done?,可执行文件 扩展名为.exe的文件,How is it to be done?,扩展名为.c的文件(对C而言),扩展名为.obj的文件,计算机为什么用二进制呢?,为什么不用我们日常熟悉的十进制呢? 二进制在在电器元件中容易实现 计算机进行二进制运算比进行十进制运算简单 1946年,冯.诺伊曼在计算机中引入二进制,提出著名的冯.诺伊曼结构,至今仍被采用,被誉为“计算机之父”,“冯诺依曼机”结构,大脑,记忆装置,眼睛和耳朵,高

9、级语言的魅力,易学、易用、易读、易懂、强大、可移植 百家争鸣,据不完全统计2500种,绝大多数是高级语言 http:/people.ku.edu/nkinners/LangList/Extras/langlist.htm可看到其列表和简介 影响最大、寿命最长的是C语言 程序设计语言数以千计,能广为流传的不过几十种,能够风光20年的更是屈指可数,流行的高级语言,应用编程语言 机器语言 汇编语言 Basic Pascal C C+ Java C# 专项编程语言 Lotus Notes Power Builder,Web编程语言 HTML XML PHP ASP JSP JavaScript VBS

10、cript 其他 perl python VBA,http:/ 搜集了大约50种极具代表性的语言的故事和资料,有最好的编程语言吗?,Pascal的学院气息 Java的效率问题 C#的中庸之道,个性不鲜明 Visual Basic的稚嫩面孔 Smalltalk的实验风格 Ada的集大成,但又琐碎和繁冗 C+的难学易用,有最好的编程语言吗?,能很好的解决问题的语言就是好语言。 Fortran已问世50年,仍然是科学计算首选 C语言辉煌30年,至今老当益壮 C+已度过其20岁生日,相信属于它的日子还很长很长 在最恰当的地方,最恰当的时候,选择最恰当的语言,同时防止跌入语言自身的陷阱。,C程序设计语言

11、,20世纪60年代,贝尔实验室,Ken Thompson开始开发一个叫做UNIX的操作系统 70年代, 将BCPL语言改造成更适合开发UNIX的B语言 1971年,Dennis M. Ritchie开始和Thompson合作开发UNIX,将B语言改造成C语言,C语言的设计者 Dennis M. Ritchie,Ritchie漫画像,和Unix的设计者Ken Thompson 接受美国国家技术勋章,C程序设计语言,是一种高级语言 高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程 历史悠久,战勋卓著 诞生于上世纪70年代初,成熟于80年代 “ANSI C”标准的发布是C语言成熟的

12、标志 很多重量级软件都是用C写的 上天入地,无所不能 几乎没有不能用C写出来的软件,没有不支持C的系统,C程序设计语言,C语言被分类为高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。 很多流行语言、新生语言都借鉴了它的思想、语法 从C+,到Java,再到C# 正确地学好C语言,是学习这些流行语言的基础。,C程序设计语言的地盘,硬件(Hardware),操作系统(OS),应用程序 (Application),应用 平台,基于 平台的 应用 程序,低级语言的地盘,高级语言的地盘,C语言的地盘,C程序设计语言的地盘,以往的擅长: 与操作系统和基础工具有关的编程任务 操作系统核心,设备驱动

13、程序,系统工具,网络应用,编辑器,字处理工具,编译器,某些图形和GUI应用,以及数据库应用 未来的发展: 高性能、实时中间件,嵌入式领域,并发程序设计等,怎样学好编程?,学习编程最好的方法之一就是阅读源代码 多读书,积累编程技巧 擅于利用身边的工具与环境 学习编程的秘诀是:编程,编程,再编程 !,优秀程序员的基本素质,扎实的基础 数据结构、离散数学、编译原理 程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。 不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。,优秀程序员的基本素质,丰富的想象力 不要拘泥于

14、固定的思维方式,遇到问题的时候要多想几种解决问题的方案。,优秀程序员的基本素质,不滥用技巧 技巧的优点: 能另辟蹊径的解决问题 缺点: 不为人所熟知,可读性差,容易留下隐患 滥用技巧不是锦上添花,而是画蛇添足 失败的技巧常被讽刺为“伎俩” 卖油翁的故事,优秀程序员的基本素质,不钻牛角尖 当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。 让负责编程的那部分大脑细胞得到充分的休息。 当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。,优秀程序员的基本素质,韧性和毅力 这也许是“高手“和一般程序员最大的区别。 高手们并不是天才,他们是在无数个日日夜夜中磨练出

15、来的。 成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。 你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。,优秀程序员的基本素质,严谨的思维,优秀程序员的基本素质,良好的编程风格,规范化编程 养成良好的习惯,代码的缩进,变量的命名规则要始终保持一致。 不要忽视对注释的排错。 注释是程序的一个重要组成部分,它可以使你的代码更容易理解 而如果代码已经清楚地表达了你的思想,就不必再加注释了 如果注释和代码不一致,那就更加糟糕,治学三境界,昨夜西风凋碧树,独上高楼,望断天涯路 衣带渐宽终不悔,为伊消得人憔悴 众里寻她千百度,募然回首,那人却在灯火阑珊处 清代学者王国维,作业,习题1 1.1,1.4,1.5,Question?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号