计算机基础课题组南京信息工程大学计算机科学与技术系_第1页
计算机基础课题组南京信息工程大学计算机科学与技术系_第2页
计算机基础课题组南京信息工程大学计算机科学与技术系_第3页
计算机基础课题组南京信息工程大学计算机科学与技术系_第4页
计算机基础课题组南京信息工程大学计算机科学与技术系_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、大学计算机基础计算机基础课题组南京信息工程大学计算机科学与技术系1第十一章2基本要求 了解程序设计语言的历史和分类 了解程序设计语言的功能 了解程序设计的基本思想和过程 3主要内容11.1 程序和程序设计语言11.2 算法11.3 程序设计步骤和程序设计方法11.4 常用程序设计语言411.1 程序和程序设计语言11.1.1 程序的一般概念程序 : 计算机为完成序某一个任务所必须 执行的一系列指令的集合。一个计算机程序主要描述两部分内容: 数据结构描述问题的每个对象之间的关系 算法对问题的处理规则经典公式: 程序=数据结构+算法5例1: 用VB来编写的显示教龄满30年的教职工 Sub Comm

2、and1_Click() Open d: zg.dat For Input As #1 Do While Not EOF(1) Input #1, 姓名, 部门, 教龄 If 教龄 = 30 Then Print 姓名, 部门 LoopClose #11.程序的一般概念62.计算机程序的共同性质 目的性 程序有明确的目的,运行时能完成赋予它的功能。 分步性 程序由一系列计算机可执行的步骤组成。 有序性 执行步骤是有序的,不可随意改变执行顺序。 有限性 程序是有限的指令序列,所包含的步骤是有限的。 操作性 有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能。711.1.2 程序设计语言

3、概述 按照程序设计语言发展的过程,大概分为三类:机器语言 机器语言是由0和1二进制代码按一定规则组成的、能被机器直接理解和执行的指令集合。机器语言中的每一条语句实际上是一条二进制形式的指令代码,指令格式如下:操作码 操作数 操作码 要完成的操作类型或性质操作数 操作的内容或所在的地址 8例如,计算A=15+10 的机器语言程序如下:10110000 00001111: 把15放入累加器A中00101100 00001010: 10与累加器A的值相加,结果仍放入A中11110100 : 结束,停机编程工作量大,难学、难记、难修改,只适合专业人员使用;由于不同的计算机,其指令系统不同,机器语言随机

4、而异,通用性差,是面向机器的语言。机器语言优点:程序代码不需要翻译,所占空间少,执行速度快。现在已经没有人用机器语言直接编程了。 92.汇编语言将机器指令的代码用英文助记符来表示,代替机器语言中的指令和数据。例如用ADD表示加、SUB表示减、JMP表示程序跳转等等,这种指令助记符的语言就是汇编语言。例如,计算 A=15+10 的汇编语言程序:MOVA,15:把15放入累加器A中ADDA,10:10与累加器A相加,结果存入A中HLT :结束,停机汇编语言克服了机器语言难读等缺点,保持了其编程质量高,占存储空间少,执行速度快的优点。常用于过程控制等编程。汇编语言面向机器,使用者需要专业知识。汇编语

5、言编写的程序,必须翻译成机器语言,才能被计算机执行。 103.高级语言高级语言是由表达各种意义的词和数学公式按照一定的语法规则来编写程序的语言。高级语言使程序员可以完全不用与计算机的硬件打交道,可以不必了解机器的指令系统,是面向过程的语言。这样,程序员就可以集中精力来解决问题本身而不必受机器制约,编程效率高;由于与具体机器无关,因此程序的通用性强。例如,计算 A=15+10 的BASIC语言程序如下:A=15+10 15与10相加的结果放入A中PRINT A 输出AEND 程序结束114.高级语言分类高级语言的发展分为3类:1)面向过程的语言如FORTRAN、BASIC、PASCAL、C等。面

6、向过程的语言致力于用计算机能够理解的逻辑来描述需要解决的问题和解决问题的具体方法、步骤。编程时,程序不仅要说明做什么,还要告诉计算机如何做,程序需要详细描述解题的过程和细节。122)面向问题的语言(非过程化的语言)面向问题的语言又称为第四代语言(4GLS)。解题时,不必关心问题的求解算法和求解的过程,只须指出要计算机做什么,数据的输入和输出形式,就能得到所需结果。例如,用非过程化的语言,只要用如下的一条语句就可实现:SELECT 姓名,部门,教龄 FROM d:zg.dbf WHERE 教龄 =3013面向问题的语言是采用快速原型法开发应用软件的强大工具,能够快速地构造应用系统,提高软件开发效

7、率。面向过程的语言需要详细地描述“怎样做”;面向问题的语言仅需要说明“做什么”。它和与数据库的关系非常密切,能够对大型数据库进行高效处理。143)面向对象语言在20世纪80年代推出面向对象语言。它与以往各种语言的根本不同点在于:它设计的出发点就是为了能更直接地描述客观世界中存在的事物(即对象)以及它们之间的关系。面向对象语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性和行为,形成类。通过类的继承与多态可以很方便地实现代码重用,这大大提高了程序的复用能力和程序开发效率。面向对象语言已是程序语言的主要研究方向之一。面向对象的语言有C+、Java、Visual Basic等。

8、 1511.1.3 语言处理程序 在所有的程序设计语言中,除了用机器语言编制的程序能够被计算机直接理解和执行外,其他的程序设计语言编写的程序都必须经过一个翻译过程才能转换为计算机所能识别的机器语言程序,实现这个翻译过程的工具是语言处理程序,即翻译程序。用非机器语言写的程序称为源程序;通过翻译程序翻译后的程序称为目标程序。翻译程序也称为编译器。针对不同的程序设计语言编写出的程序,有各自的翻译程序,互相不通用。 161.汇编程序 汇编程序是将汇编语言编制的程序(源程序)翻译成机器语言程序(目标程序)的工具。 汇编语言源程序汇编程序机器语言程序汇编程序的具体翻译工作步骤: 用机器操作码代替符号化的操

9、作符。 用数值地址代替符号名称。 将常数翻译为机器的内部表示。 分配指令和数据的存储单元。 172.高级语言翻译程序 1)解释方式 解释方式的翻译工作由解释程序来完成。解释程序对源程序进行逐句分析,若没有错误,将该语句翻译成一个或多个机器语言指令,然后立即执行这些指令;若解释时发现错误,会立即停止,报错并提醒用户更正代码。解释方式不生成目标程序。 数据高级语言源程序解释程序计算结果182)编译方式 翻译工作由编译程序完成。如同笔译在纸上记录翻译后的结果。目标程序 源程序可执行程序编译程序连接程序数据计算结果19 编译程序对整个源程序经过编译处理,产生一个与源程序等价的目标程序; 目标程序还可能

10、要调用一些其他语言编写的程序和程序库中的标准子程序,通过连接程序将目标程序和有关的程序库组合成一个完整的可执行程序。执行速度快,修改源程序后都必须重新编译。 一般高级语言(C/C+、PASCAL、FORTRAN、COBOL等)都是采用编译方式。2011.2.2 算法的表示 自然语言用人们使用的语言描述算法 传统的流程图法用一些图框、线条以及文字说明来形象地、直观地描述算法。 N-S流程图法-去掉了传统流程图中带箭头的流向线,全部算法以一个大的矩形框表示,框内还可以包含一些从属于它的小矩形框,适于结构化程序设计。 ABAB条件TF当条件成立A直到条件成立AN-S图的三种基本结构21算法的表示 伪

11、代码法:是一种假的代码不能被计算机所理解,但接近于某种语言编写的程序,便于转换成编程语言。根据编程语言的不同,有对应的类Pascal、类C等类-xxx语言。在数据结构教材中,经常用类-xxx语言来描述算法。 计算机语言:计算机无法识别自然语言、流程图、伪代码。这些方法仅为了帮助人们描述、理解算法,要用计算机解题,就要将它们转换成计算机语言程序。用计算机语言描述算法,只有用计算机语言编写的程序才能被计算机执行。2211.2.3 常用算法 两个变量的值交换 XY Sub Swap(x,y) Dim t t=x x=y y=tEnd Sub 计数器和累加器 n+ 1sum+xN=N+1 计数器,N为

12、计数器变量 Sum=Sum+x 累加器,Sum为累加器变量231.枚举法枚举法(穷举法或试凑法) 根据条件确定答案的范围,在此范围内对所有可能的情况逐一验证。若某个情况符合条件,则为一个解;若全部情况均不符合条件,则问题无解。例 假定小鸡0.5元/只,公鸡2元/只,母鸡3元/只。百元买百鸡,列出所有可能的购鸡方案。根据题意列出方程: x+y+z=100 3x+2y+0.5z=10024Print 母鸡, 公鸡, 小鸡For x = 0 To 33 For y = 0 To 50 z =100-x-y If 3*x + 2*y + 0.5*z = 100 Then Print x, y, z N

13、ext yNext x252.递推法递推法(迭代法) 从初值出发,归纳出新值与旧值间直到最后值为止存在的关系,每次重复都从旧值的基础上递推出新值,并由新值代替旧值。例:猴子吃桃子问题。小猴有桃若干,每天吃掉现有数的一半多一个,到第7天要吃时只剩下一个了,问小猴原有桃子多少个?设第n天的桃子为xn,它是前一天的桃子数的一半少1个 递推公式 xn-1=(xn+1)2 1211-=-nnxx26例 猴子吃桃子问题。 x = 1 Print 第 7 天的桃子数为: 1只For i = 6 To 1 Step -1 x = (x + 1) * 2 Print 第; i; 天的桃子数为:; x; 只Nex

14、t i273.求最值 求最值 在n个数中先假设第1个数为最大(小)值初值,依次同第2、3、n个数据逐一比较,一旦某个数大(小) ,马上替换;所有数比较完,最大(小)值也就获得。28例 对输入的若干个学生成绩,求最高分。 TotalSalary = 0 n =Input Box( 输入学生人数) Max= InputBox( “输入第1个学生的成绩”) For i = 2 To n mark =Input Box( 输入第 & i & 个学生的成绩) If mark Max Then Max = mark Next i Print Max 2911.3 程序设计步骤和程序设计方法 编制程序的工作

15、称为程序设计,为了有效地进行程序设计,必须掌握两方面知识:一门程序设计语言解题的算法一个好的程序有可靠性、易读性、高效性、可维护性等良好特性。为达到这些目标,应采用好的程序设计方法,以便从方法上更有助于设计出具有上述特性的程序。 3011.3.1 程序设计步骤 分析问题 设计程序(总体设计和详细设计) 程序编码以及编辑、编译和连接 测试程序 编写程序文档 黑盒测试白盒测试找出程序中的错误3111.3.2 程序设计方法 1. 结构化程序设计结构化程序的结构简单清晰,可读性强,模块化强,描述方式符合人们解决复杂问题的普遍规律,在软件重用性、软件维护等方面有所进步,可以显著提高软件开发的效率。程序设

16、计模式:“数据结构算法” 在软件设计和实现过程中,采用自顶向下、逐步细化的模块化程序设计原则。 在代码编写时,采用顺序、选择、循环三种基本控制结构,避免使用GOTO语句。322.面向对象程序设计 将问题分解为对象,对象的数据属性,作用于数据的操作方法,将属性和方法封装成一个整体,供程序设计者使用。对象之间的相互作用通过消息传递来实现。程序设计模式:“对象消息”。面向对象的分解突出:做什么?大量的工作由相应的对象来完成,程序员在应用程序中只需说明要求对象完成的任务。 结构化程序设计的分解突出:如何做?强调代码的功能是如何得以完成。面向对象的程序设计语言有: C+、Java、Visual Basi

17、c等 。3311.4 常用程序设计语言1. FORTRAN语言世界上最早出现的高级程序设计语言,用于科学计算。从1954年推出的FORTRAN起,版本不断更新,功能不断增强,结构化程度提高,使古老的语言保持旺盛的生命力,最流行的版本是FORTRAN 77,目前使用FORTRAN 90。FOTRAN90具有Pascal语言的特征,引入了类型、递归、指针、动态数组等概念。 342. COBOL语言1959年开发出来,主要用于商业数据处理。80年代后随着数据库的广泛应用,该语言使用面减少,目前银行系统还较多采用COBOL语言开发。COBOL程序很象写英文文章,要完成同样功能的程序是其他语言的两倍长。

18、再简单的程序都由4个部组成:标识部(IDENTIFICATION)描述程序环境部(ENVIRONMENT)描述运行程序的计算机系统数据部(DATA)描述程序中所有数据的格式程序部(PROCEDURE)是程序的主体353. Pascal语言1968年开发出来,Pascal语言是一种通用的编程语言,最大的优点是语法严谨、丰富的数据类型、结构化编程概念,成为在C语言问世前,风靡全球、最受欢迎的语言之一,尤其适合于教学和应用软件的开发。80年代,随着C语言的流行, Pascal语言走向了衰落。目前,在商业上仅有Inprise公司(即原Borland)仍在开发Pascal语言系统Delphi,它用了面向

19、对象与软件组件的概念,用于开发商用软件。364. BASIC语言1964年在FOTRAN语言的基础上开发的,是最容易学习的语言之一。常用的BASIC语言版本有:BASIC、GWBASIC、Turbo BASIC、Quick BASIC、QBASIC、Visual BASIC。1991年微软公司推出了基于Windows环境的Visual Basic1.0版,目前最流行的是6.0版,网络功能更强的是VB.net。Visual Basic在语法结构上同C、Pascal相似,采用可视化界面设计、事件驱动的编程机制和基于对象的程序设计方法,有利于软件的开发和维护,极其易于被非计算机专业人员掌握使用。375. C与C+语言1972年贝尔实验室设计、开发了C语言,当时主要用于编写Unix操作系统的。C语言功能丰富、使用灵活、简洁明了、编译产生的代码短、执行速度快、可移植性强;C语言具有与机器硬件打交道的底层处理能力。可以用来开发系统软件,和应用软件。1980年贝尔实验室对C语言进行了扩充,加入了面向对象的概念,并于1983年改名为C+。目前主要的C+语言开发工具有Inprise公司的C+ Builder、Borland C+,微软公司的Visual C+、C#和Unix系统的GNU C+。 386. Jav

温馨提示

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

评论

0/150

提交评论