大学计算机基础PPT第6章.pptx_第1页
大学计算机基础PPT第6章.pptx_第2页
大学计算机基础PPT第6章.pptx_第3页
大学计算机基础PPT第6章.pptx_第4页
大学计算机基础PPT第6章.pptx_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第六章 程序设计基础,主要内容,计算机程序与程序设计,计算机程序是指示计算机如何去解决某个问题或完成某项任务的一组指令。,【实例1】计算给定半径的圆面积。,其计算步骤可以如下编排: (1)说明在计算过程中要用到的常量和变量; (2)给定圆半径; (3)计算圆面积; (4)将结果输出到屏幕上。,概 念,#define PI 3.1415926 /* 定义符号常量 */ void main() /* 定义主函数 */ /* 开始 */ float r, circle_area; /* 定义变量r和circle_area */ scanf(“%f“, /* 输出圆面积 */ /* 结束 */,用C语言编写的求圆面积的程序,计算机程序与程序设计,#define PI 3.1415926 void main() float r, circle_area; scanf(“%f“, ,程序的组成,程序由两部分组成:说明部分和执行部分。 说明部分主要包括程序名、参数(常量、变量)及其参数类型的说明; 执行部分是程序的主体,完成具体的计算和处理任务。,主要内容,程序设计语言,低级语言,机器语言和汇编语言属于低级语言,是面向机器的语言。,机器语言 机器语言被称为第一代程序设计语言。它是由二进制代码按照一定规则组成、能被计算机直接识别和执行的指令集合。 每一条指令包括两部分:,操作码域中的数据表明要进行的操作;操作数域中的数据为特定的操作提供具体的数据或数据存放在内存中的地址。,低级语言,【实例2】计算A=15+10 的机器语言程序,10110000 00001111 : 把15放入累加器A中 00101100 00001010 : 10与累加器A的值相加, 结果仍放入A中 11110100 : 结束,停机,机器语言,低级语言,机器语言,缺 点,需要记住大量用二进制表示的指令代码和代码的含义,难记忆、难理解、难修改、易错。用机器语言编写程序是很繁琐的一件工作,只适合专业人员使用;依赖于机器,可移植性差,是面向机器的语言。,优 点,可以直接被计算机所识别,不需要翻译,因此占用计算机存储空间少,执行速度快。,低级语言,汇编语言,【实例3】计算A=15+10 的汇编语言程序,MOV A,15 :把15放入累加器A中 ADD A,10 :10与累加器A中的值相加, 结果仍然放在A中 HLT :结束,停机,汇编语言或符号语言被称为第二代程序设计语言。它是将机器语言符号化,即用英文助记符来代替机器语言中的指令和数据, 比用机器语言编写的程序简单,容易理解和掌握。,低级语言,汇编语言,缺 点,仍然是面向机器的,可维护性和可移植性差;要求编程者熟悉计算机的硬件结构及其原理,这对大量的非计算机专业人员是很难做到的。,优 点,克服了机器语言难读、难理解等缺点,保持了机器语言占用存储空间少,执行速度快的优点。常用于过程控制等编程。,用汇编语言编写的程序必须通过“汇编程序”的加工和翻译,才能生存能够被计算机识别和处理的二进制代码程序。,高级语言,高级语言被称为第三代程序设计语言,它与机器独立。 1954年,世界上诞生了第一种高级语言,即用于科学计算的FORTRAN语言。,机器语言,汇编语言,高级语言,高级语言,高级语言,它是传统的程序设计语言,其目的在于高效地实现各种算法,需要详细描述“怎样做”。常见的面向过程语言有FORTRAN、BASIC、C、 PASCAL等。 用高级语言编程时的主要工作是围绕着设计解题过程来进行的,程序设计基本上还是从语句一级开始,需要详细描述解题的过程和细节。编程时,程序不仅要说明做什么,还要告诉计算机如何做,程序需要详细描述解题的过程和细节。,面向过程的语言,面向过程面向过程,高级语言,面向对象语言是20世纪80年代推出的。它能够更好地描述客观事物及其相互联系,能够比较直接地反映客观世界的本来面目。 面向对象语言将客观事物看作具有属性和行为的对象,通过抽象找出同类对象的共同属性和行为,形成类。通过类的继承与多态可以很方便地实现代码重用,从而大大提高了程序的复用能力和程序开发效率。面向对象的语言有C+、Java、Visual Basic等。,面向对象的程序设计语言,面向对象面向对象,编译与解释,用高级语言编写的程序称为源程序,计算机不能直接识别和执行源程序。在执行源程序前需要通过翻译成机器语言形式的目标程序,这种“翻译”通常有两种方式,即编译方式和解释方式。,编译方式是用“编译程序”将源程序翻译成与之等价的用机器语言表示的目标程序。 如果编译过程中发现程序有错,计算机系统会给出相应的提示,这时必须修改程序并重新编译,直到程序编译正确为止。 当程序编译正确后,将产生一个目标程序。,编译与解释,编译与解释,解释方式的翻译工作由解释器来完成。 当运行使用解释语言编写的程序时,解释器会读一条语句,然后对其进行分析,若没有错误,则将该语句翻译成一条或多条可执行的机器语言指令,执行完该指令后解释器再读入下一条语句并解释成机器指令;若解释时发现错误,便会立即停止,报错并提醒用户修改程序。如此继续,整个过程不产生目标程序。,编译与解释,编译把源程序的执行过程分为两个阶段:编译阶段和运行阶段,即先把源程序全部翻译成目标代码,然后再运行此目标代码,得到执行结果。解释却把两个阶段合并成一个阶段,称为解释执行阶段,即按照源程序中语句的动态顺序,直接地逐句进行分析解释,并立即执行,直至源程序结束。 经编译得到的目标程序,可以脱离编译程序独立运行;被解释的程序却不能脱离解释环境执行。,常用程序设计语言,FORTRAN语言 COBOL 语言 BASIC 语言 PASCAL 语言 C 语 言,C+ 语 言 LISP 语 言 PROLOG语言 JAVA 语言,高级程序设计语言的特征,高级语言的数据类型一般分为基本数据类型和构造数据类型两大类。 基本数据类型:整数类型、实数类型、字符类型、逻辑类型、指针类型等。 构造数据类型:数组类型、枚举类型、记录类型(结构类型)、文件等。,高级程序设计语言的特征,把表示数值的名字称为标识符。 常量:以不变的数值形式出现的量,仅标识一个固定数据值的名字称为常量标识符。 变量:程序执行过程中可能发生变化的对象用一个名字给以标识,对该名字的处理,可以是对该名字标识的任何一个数据值进行处理,该名字称为变量。例如,计算的数据对象和计算结果对象在程序中可以用变量表示。变量具有作用域,它取决于该变量的实际使用范围。 标识符的构成规则:第一个字符必须是字母,其他字符可以是字母、数字或下划线等。,高级程序设计语言的特征,程序中对数据进行处理是通过运算符实现的。 不同的程序设计语言提供的运算符种类不同,表示形式也可能不同,通常有如下几类运算: 算术运算符:加、减、乘、除、乘方等。 关系运算符:大于、大于等于、小于、小于等于、相等、不相等。 逻辑运算符:与、或、非等。 字符运算符:连接、比较、取子串等。 赋值运算符 :,高级程序设计语言的特征,表达式是程序中进行计算并取值的基本单位,它由常量、变量、函数调用和运算符组成。通常表达式由若干个运算符把一些运算对象连接在一起。 例如,已知圆半径r,求圆面积的C语句如下: 其中,PI*r*r就是一个表达式,r和s都是变量,PI是符号常量。是赋值运算符。,s=PI*r*r;,高级程序设计语言的特征,语句是程序中具有独立含义的基本单位,通常分为说明性语句和执行性语句。 说明性语句用来说明程序中被处理对象的标识符名及其类型,在某些语言(如C语言)中还用于说明对象的存储类型,即对象的作用域。 执行性语句由程序设计语言所提供的语句组成,是可以执行的。,高级程序设计语言的特征,高级语言引入过程或函数的目的是把一个复杂程序分解为若干个功能单一的子程序(过程或函数)。 当程序中要进行多次重复计算时,可以把重复部分定义成一个子程序(过程或函数),当程序中需要进行该计算时,就调用该子程序(过程或函数)。,实 例,高级程序设计语言的特征,有一个任务要将一个班的学生成绩按平均成绩降序输出。算法描述: 输入一个班学生的各门课程成绩; 计算每个学生的平均成绩; 将平均成绩按降序排列; 输出排序结果。,按功能将该任务分解成4个子任务,即 输入子任务; 计算平均成绩子任务; 降序排序子任务; 输出子任务。,高级程序设计语言的特征,按功能将该任务分解成4个子任务,即 输入子任务; 计算平均成绩子任务; 降序排序子任务; 输出子任务。,一个子任务对应一个过程或函数。按这种方法编写程序,便于多人合作,降低了程序的复杂度,程序结构更加清晰。 在高级语言系统的函数库中,通常为用户提供了大量的可直接调用标准函数。例如,数学函数,字符串处理函数,类型转换函数等。,高级程序设计语言的特征,对象的作用域是指变量使用的有效范围,它与定义对象的位置和过程的结构有关。,高级程序设计语言的特征,每一种高级语言都提供了各自的输入/输出语句或输入/输出函数。通常,输入/输出都有两种方式。 人机交互方式:例如从键盘上的输入,通常是少量的数据输入。 文件方式:当数据量较大时,通常将数据事先存放到一个数据文件中,需要时在程序中打开该数据文件,从文件中读出数据。,处理,主要内容,程序设计过程及方法,程序设计基本过程,问题建模,编译调试,设计,编写代码,程序设计过程及方法,执行程序的一般过程,程序设计过程及方法,程序设计过程及方法,分类一,程序设计过程及方法,分类二,原则:在软件设计和实现过程中,采用自顶向下、逐步求精、模块化。 程序设计模式:“数据结构算法” 基本结构:顺序、选择、循环三种基本控制结构,避免使用GOTO语句。,顺序结构,选择结构,程序设计过程及方法,循环结构,程序设计过程及方法,面向对象方法具有与人类习惯的思维方法一致,稳定性好,可重用性好,可维护性好,易于开发大型软件。 面向对象方法和技术将问题分解为对象,以对象为核心。对象是由数据和容许的操作组成的封装体。对象之间通过传递消息互相联系。 程序设计模式:“对象消息”,程序设计过程及方法,对 象(Object),程序设计过程及方法,系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。 例如,一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号、载重量等)及其操作(如启动、刹车等)。,类(Class)和 实例(Instance),程序设计过程及方法,类是具有相同类型对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。 人是一个类,而每一个具体的人则是这个类中的一个对象,一个名为李敏的人就是这个类中的一个具体的对象,即实例。,封 装,封装是一种信息隐蔽技术,它使数据和加工该数据的方法(函数)封装为一个整体。 封装的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。,继 承 性(Inheritance),程序设计过程及方法,继承性是子类自动共享父类之间数据和方法的机制,它由类的派生功能体现,是一种联结类与类的层次模型。 一个新类可以从现有类中派生,这个过程称为类继承。新类继承了原来类的特性,称为原来类的派生类(子类),原来类称为新类的基类(父类)。 继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。 继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A。 继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。,多 态 性(Polymorphism),程序设计过程及方法,多态性是指对于不同数据类型的相似操作使用相同的命名。多态是指不同事物具有不同表现形式的能力。,消 息(Message),一个对象向另一个对象发出的请求被称为“消息”。当对象接收到发给它的消息时,就调用有关的方法,执行相应的操作。面向对象程序设计技术中必须提供一种机制允许一个对象与另一个对象的交互,这种机制叫消息传递。,主要内容,算法基础,算法与数据结构是计算机程序的两大基础。 数据结构是为了研究数据运算而存在的,它直接影响计算机进行数据处理的效率; 算法是为了实现数据运算,算法的好坏也直接影响计算机的效率。,算法+数据结构=程序,算法+数据结构=程序,算法+数据结构=程序,算法+数据结构=程序,算法+数据结构=程序,算法基础,算法特性,算法基础,算法要求,算法基础,算法基础,自然语言:用人们使用的语言描述算法。,【实例5】求任意三个正整数a、b、c中的最大者。,用自然语言描述的算法如下: 输入a,b,c; a和b比较,若ab则max=a,否则max=b; c和max比较,若cmax,则max=c; 输出max。,算法基础,流程图:用图形来表示算法。,算法基础,流程图:用图形来表示算法。,【实例5】求任意三个正整 数a、b、c中的最大者。,算法基础,N-S结构流程图:去掉了传统流程图中带箭头的线,全部算法以一个大的矩形框表示,框内还可以包含一些从属于它的小矩形框,适于结构化程序设计。,算法基础,N-S结构流程图:,【实例5】求任意三个正整数a、b、c中的最大者。,算法基础,伪代码:Pseudo-code又称PDL语言,是用介于自然语言和计算机语言之间的文字和符号来描述算法。伪代码不能被计算机所理解,但接近于某种语言编写的程序,便于转换成编程语言。,read a, b, c if ab a=max else b=max if cmax c=max print max,【实例5】求任意三个正整 数a、b、c中的最大者。,算法基础,依题目的部分条件确定答案的大致范围,在此范围内对所有可能的情况逐一验证,直到全部情况验证完。 若某个情况经验证符合题目的全部条件,则为本题的一个答案。 若全部情况经验证后都不符合题目的全部条件,则本题无答案。,列举法,算法基础,【实例6】百钱买百鸡。鸡翁一,值钱五;鸡母一,值钱三; 鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?,假设鸡翁、鸡母、鸡雏分别为a,b,c只,可得如下两方程: a+b+c=100 (1)(a的取值范围为020 ,b为033 ) 5a+3b+c/3=100 (2) 列举法依次对a,b,c取值范围内的各数一一试探,找出满足方程(1)和(2)的组合。,列举法,算法基础,通过列举少量特殊情况,经过分析,归纳出一般的关系。 它比列举法更能反映问题的本质,并且可以解决列举量为无限的问题。,归纳法,算法基础,从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。 递推的过程就是找出旧值和新值之间的关系,每次都从旧值推出新值,然后用新值代替旧值。,递推法,【实例7】猴子吃桃问题。,一只猴子第一天摘下若干个桃子,当即吃了一半

温馨提示

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

评论

0/150

提交评论