计算概论AB01感性认识C程序.ppt

上传人:hs****ma 文档编号:568397100 上传时间:2024-07-24 格式:PPT 页数:37 大小:1.09MB
返回 下载 相关 举报
计算概论AB01感性认识C程序.ppt_第1页
第1页 / 共37页
计算概论AB01感性认识C程序.ppt_第2页
第2页 / 共37页
计算概论AB01感性认识C程序.ppt_第3页
第3页 / 共37页
计算概论AB01感性认识C程序.ppt_第4页
第4页 / 共37页
计算概论AB01感性认识C程序.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《计算概论AB01感性认识C程序.ppt》由会员分享,可在线阅读,更多相关《计算概论AB01感性认识C程序.ppt(37页珍藏版)》请在金锄头文库上搜索。

1、计算概论计算概论A A课程课程 程序设计部分程序设计部分感性认识感性认识C+C+程序程序崔崔 斌斌2 / 38什么是程序?什么是程序?n计算机也是机器!算机也是机器!u 必须必须“设置设置”好才能运行;好才能运行; ENIAC采用采用“手工插手工插线”的方式的方式“编程程”;u“编程序编程序”= 给计算机设置好运行的步骤;给计算机设置好运行的步骤;n程序程序u 人们用来告诉计算机应该做什么的东西;人们用来告诉计算机应该做什么的东西;n怎么告怎么告诉它呢?(程序到底是什么它呢?(程序到底是什么样子?)子?)u 告诉计算机一些什么东西,它才能运行?告诉计算机一些什么东西,它才能运行?u 以什么形式

2、告诉它,它才能够明白?以什么形式告诉它,它才能够明白?3 / 38问题一问题一n告告诉计算机一些什么算机一些什么东西,它才能运行?西,它才能运行?n下面下面请把你自己的大把你自己的大脑当作一台当作一台计算机:算机:u 给你一个数列,求最大数:你一个数列,求最大数: 78, 56, 69, 31, 36, 67, 31, 47, 69, 34, 45, 74, 61, 82, 43, 41, 76, 79, 81, 66, 54, 50, 76, 51, 53, 28, 74, 39, 45, 61, 52, 41, 43, 75, 78, 84, 72, 51, 43, 64, 75, 81,

3、 69, 55, 744 / 38你怎么做的?你怎么做的?n哪个数字最大?哪个数字最大?u把上面的数字输入大脑里;把上面的数字输入大脑里; 在大在大脑里开辟了一个存里开辟了一个存储空空间存放存放输入的数字;入的数字;u把某一个数字取出来,当作一个临时的把某一个数字取出来,当作一个临时的“特别数字特别数字”记住,并假设这个数字最大;记住,并假设这个数字最大;u拿这个临时的拿这个临时的“特别数字特别数字”与其他数字相比较;与其他数字相比较;u如果有其他数字比临时的如果有其他数字比临时的“特别数字特别数字”更大,就把更大,就把“特别的数字特别的数字”换成这个更大的数字;换成这个更大的数字;u重复上述

4、过程直到把所有的数字都比较完毕;重复上述过程直到把所有的数字都比较完毕;u那么大脑中这个那么大脑中这个“特别数字特别数字”就记录了最大的数字;就记录了最大的数字;5 / 38把自己的大脑当作计算机把自己的大脑当作计算机n你做了些什么?你做了些什么?u在大脑中使用了一片存储空间存放输入的数字;在大脑中使用了一片存储空间存放输入的数字;u使用了另一个(片)存储空间存放使用了另一个(片)存储空间存放“特别数字特别数字”;u“反复反复”选定(按照某种规律)选定(按照某种规律)“存储空间中的数字存储空间中的数字”(与(与“特别数字特别数字”比较);比较);u(每次比较时)判断(每次比较时)判断“选定的数

5、字选定的数字”是否大于是否大于“特别特别数字数字”;u(如果大于)重新(如果大于)重新“刷新刷新”“”“特别数字特别数字”;u(如果(如果“特别数字特别数字”与其他数字都进行了比较)说出与其他数字都进行了比较)说出“特别数字特别数字”;6 / 38把别人的大脑当作计算机把别人的大脑当作计算机n告告诉别人些什么?人些什么?u在你的大脑里开辟一片存储空间存放输入的数字;在你的大脑里开辟一片存储空间存放输入的数字;u开辟另一个存储空间存放开辟另一个存储空间存放“特别数字特别数字”;u从存储空间中的第一个数字开始,直到最后一个数,从存储空间中的第一个数字开始,直到最后一个数,重复以下操作:重复以下操作

6、:比比较“存存储空空间中的数字中的数字”与与“特特别数字数字”;如果如果“存存储空空间中的数字中的数字”大于大于“特特别数字数字”;那么,将那么,将“特特别数字数字”换成成“存存储空空间中的数字中的数字”;u说出说出“特别数字特别数字”;7 / 38你能看懂多少?你能看懂多少?#includeusing namespace std;int main( )int number45 = 78, 56, 69, 31, 36, 67, 31, 47, 69, 34, 45, 74, 61, 82, 43, 41, 76, 79, 81, 66, 54, 50, 76, 51, 53, 28, 74,

7、 39, 45, 61, 52, 41, 43, 75, 78, 84, 72, 51, 43, 64, 75, 81, 69, 55, 74;int max = 0;int i = 0;for(i = 0; i max)max = numberi;coutThe Maximal Number is:max;return 0;8 / 38问题来了!问题来了!n是不是是不是“无无论我我们在程序里写什么,在程序里写什么,计算机算机都能明白?都能明白?”u 计算机语言提供了一些具有特定含义的计算机语言提供了一些具有特定含义的“关键字关键字”、“运算符运算符”等;等;计算机计算机“只能明白只能明白”这

8、些元素的特定含义。(哪些关这些元素的特定含义。(哪些关键字?含义是什么?)键字?含义是什么?)n是不是是不是“无无论什么什么样的数字、符号都能的数字、符号都能够在在计算机算机中中进行存行存储”?u计算机计算机能够处理的数据的种类是有限制的。(哪些类型?类能够处理的数据的种类是有限制的。(哪些类型?类型的限制是什么?)型的限制是什么?)n用有限的几个关用有限的几个关键字,能表达字,能表达“各种各各种各样、纷繁复繁复杂”的的处理理逻辑吗?u 程序的控制结构有几种基本的逻辑结构。(哪几种?为什么只程序的控制结构有几种基本的逻辑结构。(哪几种?为什么只有这几种?怎么使用?)有这几种?怎么使用?)9 /

9、 38计算机认识哪些词?计算机认识哪些词?n计算机能算机能够明白的明白的“单词”u 这些关键词在程序中有特定含义这些关键词在程序中有特定含义10 / 38计算机能够处理哪种类型的数据计算机能够处理哪种类型的数据?11 / 38如何表达纷繁复杂的计算逻辑?如何表达纷繁复杂的计算逻辑?分支分支语句句循循环语句句顺序序语句句判断判断语句句12 / 38关于变量的定义和使用关于变量的定义和使用n变量的定量的定义u 变量类型变量类型 变量名称;变量名称;u int i;u float result;#include void main()int i;couti;cout您您输入的整数是:入的整数是:ie

10、ndl;13 / 38程序如何输入程序如何输入/输出?输出?n如何从程序中如何从程序中输出信息?出信息?ucout“Webcome to Beijing!”endl;cout是是输出流出流对象象(支持(支持输出的出的东西)西) “ x;ucin是输入流对象(支持输出的东西)是输入流对象(支持输出的东西)u“”(提取操作符)(提取操作符)14 / 38简单程序的组成简单程序的组成/*/* example.cpp */*#includeusing namespace std;int main( )int number45 = 78, 56, 69, 31, 36, 67, 31, 47, 69,

11、34, 45, 74, 61, 82, 43, 41, 76, 79, 81, 66, 54, 50, 76, 51, 53, 28, 74, 39, 45, 61, 52, 41, 43, 75, 78, 84, 72, 51, 43, 64, 75, 81, 69, 55, 74;int max = 0;int i = 0;for(i = 0; i max)max = numberi;coutThe Maximal Number is:max;return 0; /函数函数结束返回束返回注注释预编译:文件包含命令:文件包含命令声明名字空声明名字空间函数体函数体变量定量定义循循环控制控制语句

12、句赋值语句句运算表达式运算表达式输入入输出出语句句函数名函数名15 / 38很简单的程序(很简单的程序(1)/*/*exam1.cpp */* #include using namespace std; int main() cout I am a student. endl; return 0; 16 / 38很简单的程序(很简单的程序(2)#include using namespace std; int main()int a,b,result;cout a b;result = 3*a2*b+1;cout “result is” result endl;return 0;17 / 38

13、很简单的程序(很简单的程序(3)#includeusing namespace std;int main()int x, y;cinxy;if(xy)coutMax number is: xendl;elsecoutMax number is: yendl;return 0;18 / 38最简单的程序最简单的程序#includeusing namespace std;int main()return 0;#includevoid main() 19 / 38#include void main()int score;char grade;coutscore;if(score100)cout出出

14、错!输入成入成绩超出超出(0-100)边界!界!=90)grade=A;else if(score=80)grade=B;else if(score=70)grade=C;else if(score=60)grade=D;cout输入的成入的成绩是是grade级!endl;20 / 38关于关于C+程序的几点说明程序的几点说明n关于关于C+程序本身程序本身u每个每个C+程序都由很多个程序都由很多个“函数函数”组成组成 每个程序都以每个程序都以main( )函数开始(程序入口)函数开始(程序入口) 每个函数的形式都有每个函数的形式都有“输入入”和和“输出出”t如如 int main( ); 如如

15、 double pow(double x, double y)u语句分号结尾,一行可以写多个语句,一个语句语句分号结尾,一行可以写多个语句,一个语句可以写多行;格式变化不会影响程序运行;可以写多行;格式变化不会影响程序运行;u程序中的注释可以放在程序中的注释可以放在/*.*/之间,或之间,或 / 之后;之后;21 / 38#include using namespace std;void swap(int x, int y);/这是函数的声明;是函数的声明;int main( )int a=30,b=40;couta=a,b=bendl;swap(a,b);/这是函数的是函数的调用;用;cou

16、ta=a,b=bendl;return 0;void swap(int x,int y)/这是一个函数的定是一个函数的定义;int z=x;x=y;y=z;22 / 38关于关于C+程序的几点说明程序的几点说明n关于关于C+程序的运行程序的运行环境境u C+程序均保存在程序均保存在 xxx.cpp 的文件之中;的文件之中; u 不同的文件之间可以互相不同的文件之间可以互相“引用引用”; 通通过“include”实现u xxx.cpp 文件不能直接执行,必须用一个软件文件不能直接执行,必须用一个软件进行进行“编译编译”,然后运行,然后运行 Visual C+ 6.0 Visual Studio

17、.NET Eclipse + CDT23 / 38C+程序的加工和执行程序的加工和执行n源程序,不能直接源程序,不能直接执行,必行,必须先把它先把它转换为可可执行程序。行程序。n加工通常分两步:加工通常分两步:u编译编译编译程序程序处理源程序,生成机器理源程序,生成机器语言言目目标文件。目文件。目标文件不能文件不能执行,缺少行,缺少必要的必要的C+程序运行系程序运行系统和和库功能。功能。u连接连接把目把目标模模块与运行系与运行系统、库模模块组合合起来,构成完整的可起来,构成完整的可执行程序。行程序。24 / 38关于关于C+程序的书写程序的书写n注意事注意事项:u 每行程序的书写必须按照逻辑进

18、行缩进;每行程序的书写必须按照逻辑进行缩进;u 编写如下程序行时,应该提供注释:编写如下程序行时,应该提供注释: 变量的定量的定义;/说明明变量代表的意量代表的意义或作用;或作用; 函数的定函数的定义;/说明明该函数的主要作用;函数的主要作用; 复复杂逻辑出出现时;/解解释一段一段语句的作用;句的作用;u 变量的命名应该尽可能体现变量的含义;变量的命名应该尽可能体现变量的含义;关于高级程序设计语言关于高级程序设计语言C+26 / 38程序释义程序释义n程序程序u计算任务的处理对象和处理规则的描述。计算任务的处理对象和处理规则的描述。计算任算任务:任何以:任何以计算机算机为处理工具的任理工具的任

19、务都都是是计算任算任务。处理理对象是数据(如数字、文字、象是数据(如数字、文字、图形、形、图像、像、声音等,它声音等,它们只是表示,而无含只是表示,而无含义)或信息)或信息(数据及有关的含(数据及有关的含义)。)。处理理规则一般指一般指处理理动作和步作和步骤。计算机科学技算机科学技术百科全百科全书27 / 38程序设计语言的产生程序设计语言的产生n通通过何种何种语言与机器言与机器进行沟通行沟通u 机器语言机器语言u 汇编语言汇编语言u 高级语言高级语言28 / 38程序设计语言的分类程序设计语言的分类n低低级语言言 之一之一u 机器语言机器语言机器机器语言是机器指令形成的言是机器指令形成的语言

20、;言;形式形式为二二进制制编码,机器可直接,机器可直接执行;行;t00000001000000001000数据装入寄存器数据装入寄存器0t00000001000100001010数据装入寄存器数据装入寄存器1t00000101000000000001寄存器寄存器0与与1的数的数据乘据乘t00000001000100001100数据装入寄存器数据装入寄存器1t00000100000000000001寄存器寄存器0与与1的数的数据加据加t00000010000000001110保存寄存器保存寄存器0里的里的数据数据难写写难读,人使用不便,程序开,人使用不便,程序开发效率极低效率极低29 / 38程

21、序设计语言的分类程序设计语言的分类n低低级语言言之二之二u汇编语言汇编语言汇编语言采用助言采用助记符号形式,有利于人符号形式,有利于人阅读和使用。和使用。汇编指令与机器指令指令与机器指令对应。tload 0 a数据装入寄存器数据装入寄存器0 tload 1 b 数据装入寄存器数据装入寄存器1 tmult 0 1 寄存器寄存器0与与1的数据乘(结果存在寄存的数据乘(结果存在寄存器器0)tload 1 c 数据装入寄存器数据装入寄存器1 tadd 0 1 寄存器寄存器0与与1的数据加的数据加tsave 0 d 保存寄存器保存寄存器0里的数据里的数据比机器比机器语言好多了,但言好多了,但还不不够好用

22、!好用!30 / 38程序设计语言的分类程序设计语言的分类n汇编语言的特点:言的特点:u每条指令的意义容易理解。每条指令的意义容易理解。u程序粒度太小,细节太多。程序粒度太小,细节太多。u程序无结构,缺乏组织手段。程序无结构,缺乏组织手段。u写大程序仍然很困难。写大程序仍然很困难。u最早时通过手工翻译为机器指令。最早时通过手工翻译为机器指令。后来人后来人们开开发出出“汇编系系统”,让计算机去完成程序算机去完成程序翻翻译工作工作n计算机无法直接算机无法直接执行行汇编语言程序,言程序,执行前需要翻行前需要翻译为机器指令程序。机器指令程序。31 / 38程序设计语言的分类程序设计语言的分类n高高级语

23、言言u用变量等概念取代低级的存储概念,人摆脱了繁琐的用变量等概念取代低级的存储概念,人摆脱了繁琐的存储安排工作;存储安排工作;u用类似数学的表达式形式描述基本计算;用类似数学的表达式形式描述基本计算;u具有类似文字的表现形式;具有类似文字的表现形式;u提供高级操作流程控制手段和程序组织手段。提供高级操作流程控制手段和程序组织手段。00000001000000001000load 0 a00000001000100001010load 1 b00000101000000000001mult 0 100000001000100001100load 1 c00000100000000000001ad

24、d 0 1 00000010000000001110save 0 dnC语言写同言写同样的程序:的程序:u d = a * b + c;32 / 38我们学的是什么高级语言我们学的是什么高级语言? C+ C+ 语语言言言言 (面向(面向(面向(面向对对象部分)象部分)象部分)象部分)C C 语语言部分言部分言部分言部分33 / 38高级语言的发展历程高级语言的发展历程1954 -1956年年 IBM 的的John Backus 和他的和他的研究小研究小组研研发了了FORTRAN ( FORmula TRANslation) 34 / 38C程序设计语言程序设计语言n简单历史史uAlgol 60

25、:1960年年1月,图灵奖获得者月,图灵奖获得者Alan J.Perlis在巴黎举行在巴黎举行的由全世界一流软件专家参加的讨论会上,发表了的由全世界一流软件专家参加的讨论会上,发表了“算法语言算法语言Algol 60报告报告”,确定了程序设计语言,确定了程序设计语言Algol 60。(。(A 语言语言)u1963年,剑桥大学在年,剑桥大学在ALGOL 60的基础上推出了的基础上推出了CPL(Combined Programming Language)语言,但规模比)语言,但规模比较大,难以实现。较大,难以实现。1967年,剑桥大学的年,剑桥大学的Matin Richards对对CPL语言作了简

26、化,推出了语言作了简化,推出了BCPL(Basic Combined Programming Language)语言。)语言。1970年贝尔实验室的年贝尔实验室的Ken Thompson进一步简化,设计出了进一步简化,设计出了B语言,并用语言,并用B语言写第一个语言写第一个UNIX操作系统,在操作系统,在PDP-7上实现。上实现。uC语言是在语言是在1972-1973年间由年间由UNIX的研制者的研制者Dennis Ritchie和和Ken Thompson在在B语言的基础上发展和完善起来的。语言的基础上发展和完善起来的。35 / 38C 语言的版本语言的版本nK&R Cu在在1978年,年,

27、Kernighan和和Ritchie的的The C Programming Language第一版出版。在以后的几年里,第一版出版。在以后的几年里,The C Programming Language一直被广泛作为一直被广泛作为C语言事实上的规范。在这本书中,语言事实上的规范。在这本书中,C语言语言通常被表述成通常被表述成“K&R C”。nANSI C和和ISO C(1989年)年) u1989年,年,C语言被语言被ANSI标准化,对标准化,对 K&R C进行了扩展,包括了一些新进行了扩展,包括了一些新的特性,也规定了一套标准函数库。的特性,也规定了一套标准函数库。uISO成立成立 ISO/I

28、EC JTC1/SC22/WG14工作组来规定国际标准的工作组来规定国际标准的C语言。语言。u通过对通过对ANSI标准的少量修改,最终通过了标准的少量修改,最终通过了ISO 9899:1990。随后。随后ISO标标准被准被ANSI采纳。采纳。 nANSI C和和ISO C(1995年)年) u作为对标准的维护与更新,作为对标准的维护与更新,WG14工作小组在工作小组在1995年对年对1985年颁布的年颁布的标准做了两处技术修订(缺陷修复)和一个补充(扩展)。标准做了两处技术修订(缺陷修复)和一个补充(扩展)。nC99 u在在ANSI标准化后,标准化后,WG14小组继续致力于改进小组继续致力于改

29、进C语言。新的标准很快推语言。新的标准很快推出,就是出,就是ISO9899:1999(1999年出版)。这个版本就是通常提及的年出版)。这个版本就是通常提及的C99。它被。它被ANSI于于2000年三月采用。年三月采用。 36 / 38From C to C+n美国美国AT&T贝尔实验室的本室的本贾尼尼(Bjarne Stroustrup)在)在20世世纪80年代初期年代初期发明并明并实现了了C+(最(最初被称作初被称作“C with Classes”)。)。n1985年年10月,月,Bjarne博士完成了博士完成了经典巨著典巨著The C+ Programming Language第一版第一版 ;n1998年年11月月ISO颁布了布了C+程序程序设计语言的国言的国际标准准ISO/IEC 14882-1998。n2003年年发布一个布一个C+标准的修正版准的修正版本;每本;每5年年视实际需要更新一次需要更新一次标准。准。谢 谢 !

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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