大学计算机基础PPT第6章节.pptx

上传人:牧羊曲112 文档编号:6563657 上传时间:2023-11-13 格式:PPTX 页数:69 大小:2.78MB
返回 下载 相关 举报
大学计算机基础PPT第6章节.pptx_第1页
第1页 / 共69页
大学计算机基础PPT第6章节.pptx_第2页
第2页 / 共69页
大学计算机基础PPT第6章节.pptx_第3页
第3页 / 共69页
大学计算机基础PPT第6章节.pptx_第4页
第4页 / 共69页
大学计算机基础PPT第6章节.pptx_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《大学计算机基础PPT第6章节.pptx》由会员分享,可在线阅读,更多相关《大学计算机基础PPT第6章节.pptx(69页珍藏版)》请在三一办公上搜索。

1、第六章 程序设计基础,主要内容,计算机程序与程序设计,计算机程序是指示计算机如何去解决某个问题或完成某项任务的一组指令。,【实例1】计算给定半径的圆面积。,其计算步骤可以如下编排:(1)说明在计算过程中要用到的常量和变量;(2)给定圆半径;(3)计算圆面积;(4)将结果输出到屏幕上。,概 念,#define PI 3.1415926/*定义符号常量*/void main()/*定义主函数*/*开始*/float r,circle_area;/*定义变量r和circle_area*/scanf(%f,/*输出圆面积*/*结束*/,用C语言编写的求圆面积的程序,计算机程序与程序设计,#define

2、 PI 3.1415926 void main()float r,circle_area;scanf(%f,程序的组成,程序由两部分组成:说明部分和执行部分。说明部分主要包括程序名、参数(常量、变量)及其参数类型的说明;执行部分是程序的主体,完成具体的计算和处理任务。,主要内容,低级语言,机器语言和汇编语言属于低级语言,是面向机器的语言。,机器语言机器语言被称为第一代程序设计语言。它是由二进制代码按照一定规则组成、能被计算机直接识别和执行的指令集合。每一条指令包括两部分:,操作码域中的数据表明要进行的操作;操作数域中的数据为特定的操作提供具体的数据或数据存放在内存中的地址。,低级语言,【实例2

3、】计算A=15+10 的机器语言程序,10110000 00001111:把15放入累加器A中00101100 00001010:10与累加器A的值相加,结果仍放入A中11110100:结束,停机,机器语言,低级语言,机器语言,缺 点,需要记住大量用二进制表示的指令代码和代码的含义,难记忆、难理解、难修改、易错。用机器语言编写程序是很繁琐的一件工作,只适合专业人员使用;依赖于机器,可移植性差,是面向机器的语言。,优 点,可以直接被计算机所识别,不需要翻译,因此占用计算机存储空间少,执行速度快。,低级语言,汇编语言,【实例3】计算A=15+10 的汇编语言程序,MOV A,15:把15放入累加器

4、A中ADD A,10:10与累加器A中的值相加,结果仍然放在A中HLT:结束,停机,汇编语言或符号语言被称为第二代程序设计语言。它是将机器语言符号化,即用英文助记符来代替机器语言中的指令和数据,比用机器语言编写的程序简单,容易理解和掌握。,低级语言,汇编语言,缺 点,仍然是面向机器的,可维护性和可移植性差;要求编程者熟悉计算机的硬件结构及其原理,这对大量的非计算机专业人员是很难做到的。,优 点,克服了机器语言难读、难理解等缺点,保持了机器语言占用存储空间少,执行速度快的优点。常用于过程控制等编程。,用汇编语言编写的程序必须通过“汇编程序”的加工和翻译,才能生存能够被计算机识别和处理的二进制代码

5、程序。,高级语言,高级语言被称为第三代程序设计语言,它与机器独立。1954年,世界上诞生了第一种高级语言,即用于科学计算的FORTRAN语言。,机器语言,汇编语言,高级语言,高级语言,高级语言,它是传统的程序设计语言,其目的在于高效地实现各种算法,需要详细描述“怎样做”。常见的面向过程语言有FORTRAN、BASIC、C、PASCAL等。用高级语言编程时的主要工作是围绕着设计解题过程来进行的,程序设计基本上还是从语句一级开始,需要详细描述解题的过程和细节。编程时,程序不仅要说明做什么,还要告诉计算机如何做,程序需要详细描述解题的过程和细节。,面向过程的语言,面向过程面向过程,高级语言,面向对象

6、语言是20世纪80年代推出的。它能够更好地描述客观事物及其相互联系,能够比较直接地反映客观世界的本来面目。面向对象语言将客观事物看作具有属性和行为的对象,通过抽象找出同类对象的共同属性和行为,形成类。通过类的继承与多态可以很方便地实现代码重用,从而大大提高了程序的复用能力和程序开发效率。面向对象的语言有C+、Java、Visual Basic等。,面向对象的程序设计语言,面向对象面向对象,编译与解释,用高级语言编写的程序称为源程序,计算机不能直接识别和执行源程序。在执行源程序前需要通过翻译成机器语言形式的目标程序,这种“翻译”通常有两种方式,即编译方式和解释方式。,编译方式是用“编译程序”将源

7、程序翻译成与之等价的用机器语言表示的目标程序。如果编译过程中发现程序有错,计算机系统会给出相应的提示,这时必须修改程序并重新编译,直到程序编译正确为止。当程序编译正确后,将产生一个目标程序。,编译与解释,编译与解释,解释方式的翻译工作由解释器来完成。当运行使用解释语言编写的程序时,解释器会读一条语句,然后对其进行分析,若没有错误,则将该语句翻译成一条或多条可执行的机器语言指令,执行完该指令后解释器再读入下一条语句并解释成机器指令;若解释时发现错误,便会立即停止,报错并提醒用户修改程序。如此继续,整个过程不产生目标程序。,编译与解释,编译把源程序的执行过程分为两个阶段:编译阶段和运行阶段,即先把

8、源程序全部翻译成目标代码,然后再运行此目标代码,得到执行结果。解释却把两个阶段合并成一个阶段,称为解释执行阶段,即按照源程序中语句的动态顺序,直接地逐句进行分析解释,并立即执行,直至源程序结束。经编译得到的目标程序,可以脱离编译程序独立运行;被解释的程序却不能脱离解释环境执行。,常用程序设计语言,FORTRAN语言 COBOL 语言 BASIC 语言 PASCAL 语言 C 语 言,C+语 言 LISP 语 言 PROLOG语言 JAVA 语言,高级程序设计语言的特征,高级语言的数据类型一般分为基本数据类型和构造数据类型两大类。基本数据类型:整数类型、实数类型、字符类型、逻辑类型、指针类型等。

9、构造数据类型:数组类型、枚举类型、记录类型(结构类型)、文件等。,高级程序设计语言的特征,把表示数值的名字称为标识符。常量:以不变的数值形式出现的量,仅标识一个固定数据值的名字称为常量标识符。变量:程序执行过程中可能发生变化的对象用一个名字给以标识,对该名字的处理,可以是对该名字标识的任何一个数据值进行处理,该名字称为变量。例如,计算的数据对象和计算结果对象在程序中可以用变量表示。变量具有作用域,它取决于该变量的实际使用范围。标识符的构成规则:第一个字符必须是字母,其他字符可以是字母、数字或下划线等。,高级程序设计语言的特征,程序中对数据进行处理是通过运算符实现的。不同的程序设计语言提供的运算

10、符种类不同,表示形式也可能不同,通常有如下几类运算:算术运算符:加、减、乘、除、乘方等。关系运算符:大于、大于等于、小于、小于等于、相等、不相等。逻辑运算符:与、或、非等。字符运算符:连接、比较、取子串等。赋值运算符:,高级程序设计语言的特征,表达式是程序中进行计算并取值的基本单位,它由常量、变量、函数调用和运算符组成。通常表达式由若干个运算符把一些运算对象连接在一起。例如,已知圆半径r,求圆面积的C语句如下:其中,PI*r*r就是一个表达式,r和s都是变量,PI是符号常量。是赋值运算符。,s=PI*r*r;,高级程序设计语言的特征,语句是程序中具有独立含义的基本单位,通常分为说明性语句和执行

11、性语句。说明性语句用来说明程序中被处理对象的标识符名及其类型,在某些语言(如C语言)中还用于说明对象的存储类型,即对象的作用域。执行性语句由程序设计语言所提供的语句组成,是可以执行的。,高级程序设计语言的特征,高级语言引入过程或函数的目的是把一个复杂程序分解为若干个功能单一的子程序(过程或函数)。当程序中要进行多次重复计算时,可以把重复部分定义成一个子程序(过程或函数),当程序中需要进行该计算时,就调用该子程序(过程或函数)。,实 例,高级程序设计语言的特征,有一个任务要将一个班的学生成绩按平均成绩降序输出。算法描述:输入一个班学生的各门课程成绩;计算每个学生的平均成绩;将平均成绩按降序排列;

12、输出排序结果。,按功能将该任务分解成4个子任务,即 输入子任务;计算平均成绩子任务;降序排序子任务;输出子任务。,高级程序设计语言的特征,按功能将该任务分解成4个子任务,即 输入子任务;计算平均成绩子任务;降序排序子任务;输出子任务。,一个子任务对应一个过程或函数。按这种方法编写程序,便于多人合作,降低了程序的复杂度,程序结构更加清晰。在高级语言系统的函数库中,通常为用户提供了大量的可直接调用标准函数。例如,数学函数,字符串处理函数,类型转换函数等。,高级程序设计语言的特征,对象的作用域是指变量使用的有效范围,它与定义对象的位置和过程的结构有关。,高级程序设计语言的特征,每一种高级语言都提供了

13、各自的输入/输出语句或输入/输出函数。通常,输入/输出都有两种方式。人机交互方式:例如从键盘上的输入,通常是少量的数据输入。文件方式:当数据量较大时,通常将数据事先存放到一个数据文件中,需要时在程序中打开该数据文件,从文件中读出数据。,处理,主要内容,程序设计过程及方法,程序设计基本过程,问题建模,编译调试,设计,编写代码,程序设计过程及方法,执行程序的一般过程,程序设计过程及方法,程序设计过程及方法,分类一,程序设计过程及方法,分类二,原则:在软件设计和实现过程中,采用自顶向下、逐步求精、模块化。程序设计模式:“数据结构算法”基本结构:顺序、选择、循环三种基本控制结构,避免使用GOTO语句。

14、,顺序结构,选择结构,程序设计过程及方法,循环结构,程序设计过程及方法,面向对象方法具有与人类习惯的思维方法一致,稳定性好,可重用性好,可维护性好,易于开发大型软件。面向对象方法和技术将问题分解为对象,以对象为核心。对象是由数据和容许的操作组成的封装体。对象之间通过传递消息互相联系。程序设计模式:“对象消息”,程序设计过程及方法,对 象(Object),程序设计过程及方法,系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。例如,一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号、载重量等)及其操作(如启动、刹车等)。,类(Cla

15、ss)和 实例(Instance),程序设计过程及方法,类是具有相同类型对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。人是一个类,而每一个具体的人则是这个类中的一个对象,一个名为李敏的人就是这个类中的一个具体的对象,即实例。,封 装,封装是一种信息隐蔽技术,它使数据和加工该数据的方法(函数)封装为一个整体。封装的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。,继 承 性(Inheritance),程序设计过程及方法,继承性是子类自动共享父类之间数据和方法的机制,它由类的派生功能体现,是一种联结

16、类与类的层次模型。一个新类可以从现有类中派生,这个过程称为类继承。新类继承了原来类的特性,称为原来类的派生类(子类),原来类称为新类的基类(父类)。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。,多 态 性(Polymorphism),程序设计过程及方法,多态性是指对于不同数据类型的相似操作使用相同的命名。多态是指不同事物具有不同表现形式的能力。,消 息(Message),一个对象向另一个对象发出的请求被称为“消息”。当对象接收到发给它的消

17、息时,就调用有关的方法,执行相应的操作。面向对象程序设计技术中必须提供一种机制允许一个对象与另一个对象的交互,这种机制叫消息传递。,主要内容,算法基础,算法与数据结构是计算机程序的两大基础。数据结构是为了研究数据运算而存在的,它直接影响计算机进行数据处理的效率;算法是为了实现数据运算,算法的好坏也直接影响计算机的效率。,算法+数据结构=程序,算法+数据结构=程序,算法+数据结构=程序,算法+数据结构=程序,算法+数据结构=程序,算法基础,算法特性,算法基础,算法要求,算法基础,算法基础,自然语言:用人们使用的语言描述算法。,【实例5】求任意三个正整数a、b、c中的最大者。,用自然语言描述的算法

18、如下:输入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语言,是用介于自然语言和计算机语言之间的文字和符号来描述算法。伪代码

19、不能被计算机所理解,但接近于某种语言编写的程序,便于转换成编程语言。,read a,b,cif ab a=maxelse b=maxif cmax c=maxprint max,【实例5】求任意三个正整 数a、b、c中的最大者。,算法基础,依题目的部分条件确定答案的大致范围,在此范围内对所有可能的情况逐一验证,直到全部情况验证完。若某个情况经验证符合题目的全部条件,则为本题的一个答案。若全部情况经验证后都不符合题目的全部条件,则本题无答案。,列举法,算法基础,【实例6】百钱买百鸡。鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?,假设鸡翁、鸡母、鸡雏分别为

20、a,b,c只,可得如下两方程:a+b+c=100(1)(a的取值范围为020,b为033)5a+3b+c/3=100(2)列举法依次对a,b,c取值范围内的各数一一试探,找出满足方程(1)和(2)的组合。,列举法,算法基础,通过列举少量特殊情况,经过分析,归纳出一般的关系。它比列举法更能反映问题的本质,并且可以解决列举量为无限的问题。,归纳法,算法基础,从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。递推的过程就是找出旧值和新值之间的关系,每次都从旧值推出新值,然后用新值代替旧值。,递推法,【实例7】猴子吃桃问题。,一只猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,

21、第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?,算法基础,递推法,假设dn为第n天的桃子数,则可得到递推公式:dn-1=(dn+1)2,【实例8】年龄问题。,有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人的岁数,他说比第3个人大2岁。问第3个人的岁数,他说比第2个人大2岁。问第2个人,他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大?,算法基础,递归法,递归是一个特殊的循环。,算法基础,有2个变量a和b,给2个变量输入数据后,要求交换两变量的值。

22、,变量值的交换,算法基础,A,B,C,怎么才能达到交换的目的呢?,要完成该游戏,必须借助B柱子,具体实现:,A,B,C,算法基础,A,B,C,A,B,C,A,B,C,算法基础,A,B,C,A,B,C,A,B,C,算法基础,根据前面的游戏可知,要实现交换,需要引入一个中间变量t,即借助另外一个内存单元。,算法基础,算法分析是对算法效率的分析,分析算法所要占用的计算机资源,即运行时间和占用空间。运行时间是指一个算法在计算机上运行所花费的时间,采用时间复杂度来度量;占用空间是指算法编制成程序后,在计算机中占用存储空间的大小,用空间复杂度来度量。,小 结,掌握计算机程序的概念。了解程序设计语言的发展。重点掌握程序设计的过程及方法。掌握算法的特性、种类和描述。重点掌握算法设计的基本方法。,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号