计算机导论课件-第5章-程序设计基础.ppt

上传人(卖家):晟晟文业 文档编号:4144680 上传时间:2022-11-14 格式:PPT 页数:55 大小:788.01KB
下载 相关 举报
计算机导论课件-第5章-程序设计基础.ppt_第1页
第1页 / 共55页
计算机导论课件-第5章-程序设计基础.ppt_第2页
第2页 / 共55页
计算机导论课件-第5章-程序设计基础.ppt_第3页
第3页 / 共55页
计算机导论课件-第5章-程序设计基础.ppt_第4页
第4页 / 共55页
计算机导论课件-第5章-程序设计基础.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、第第5 5章章 程序设计基础程序设计基础【学习目标学习目标】1.1.了解程序设计语言的演化过程了解程序设计语言的演化过程2.2.了解构建程序的各个阶段的特点了解构建程序的各个阶段的特点3.3.了解不同的编程模式的特点了解不同的编程模式的特点4.4.掌握高级程序设计语言的基本构成及相关语法知识掌握高级程序设计语言的基本构成及相关语法知识5.5.了解一些常用的高级程序设计语言了解一些常用的高级程序设计语言6.6.了解算法的相关概念与内容了解算法的相关概念与内容【学习内容学习内容】5.1 5.1 程序设计语言的演化程序设计语言的演化5.2 5.2 构建程序构建程序 5.35.3 编程模式编程模式5.

2、45.4 高级程序语言概述高级程序语言概述 5.55.5 常用高级语言常用高级语言 5.65.6 算法概述算法概述*第第5 5章章 程序设计基础程序设计基础5.1 程序设计语言的演化程序设计语言的演化 程序设计语言是人与计算机交互的工具,如果想要计算机完成程序设计语言是人与计算机交互的工具,如果想要计算机完成指定的工作,就需要使用程序设计语言编写程序让计算机去执行。指定的工作,就需要使用程序设计语言编写程序让计算机去执行。程序设计语言经历了程序设计语言经历了机器语言机器语言、汇编语言汇编语言和和高级程序设计语言高级程序设计语言几个阶段。几个阶段。5.1.1 机器语言机器语言 机器语言是由机器语

3、言是由“0”和和“1”的字符串组成,是一种的字符串组成,是一种“低级语言低级语言”,也是计算机能唯一能识别的语言。也是计算机能唯一能识别的语言。缺点:缺点:它依赖于计算机,不同类型的计算机具有不同的机器语言。它依赖于计算机,不同类型的计算机具有不同的机器语言。使用机器语言的指令系统使用机器语言的指令系统采用采用二进制二进制编码编码,编程和理解非常困难。,编程和理解非常困难。5.1.2 汇编语言汇编语言 使用使用符号或助记符符号或助记符的指令和地址代替二进制代码的语言就是汇的指令和地址代替二进制代码的语言就是汇编语言,也称之为符号语言。编语言,也称之为符号语言。(比如,比如,ADD代表加法,代表

4、加法,MOV代表代表数据传递等。数据传递等。)使用汇编语言编写的程序称为汇编语言程序,它需要经过汇编使用汇编语言编写的程序称为汇编语言程序,它需要经过汇编系统翻译成机器语言之后才能执行。系统翻译成机器语言之后才能执行。汇编语言比机器语言更容易理解和记忆,且能够直接描述计算汇编语言比机器语言更容易理解和记忆,且能够直接描述计算机硬件的操作,具有很强的灵活性,因此在实时控制、实时监测等机硬件的操作,具有很强的灵活性,因此在实时控制、实时监测等领域仍然使用汇编语言。领域仍然使用汇编语言。5.1 程序设计语言的演化程序设计语言的演化 高级语言有别于机器语言和汇编语言,它独立于计算机的类型,且高级语言有

5、别于机器语言和汇编语言,它独立于计算机的类型,且表达形式更接近于被描述的问题,更容易被人掌握、更便于程序的编表达形式更接近于被描述的问题,更容易被人掌握、更便于程序的编写。写。程序员只要使用简单的英文单词、熟悉的数学表达式及规定的语句程序员只要使用简单的英文单词、熟悉的数学表达式及规定的语句格式,就可方便地编写程序,而不必考虑计算机操作的具体细节。格式,就可方便地编写程序,而不必考虑计算机操作的具体细节。高级语言的设计目的就是使程序员摆脱汇编语言繁琐的细节,但其高级语言的设计目的就是使程序员摆脱汇编语言繁琐的细节,但其与汇编语言有一个共同点:编写的程序需要转化为机器语言才能被计与汇编语言有一个

6、共同点:编写的程序需要转化为机器语言才能被计算机执行,这个转化过程称之为解释或编译。算机执行,这个转化过程称之为解释或编译。5.1.3 高级高级语言语言5.1 程序设计语言的演化程序设计语言的演化5.2 构建程序构建程序 程序的开发过程可分成四个主要步骤:编辑程序的开发过程可分成四个主要步骤:编辑编译编译链接链接执行。执行。现在的高级程序设计语言开发平台都将程序的编辑、编译、连接、运现在的高级程序设计语言开发平台都将程序的编辑、编译、连接、运行等功能进行了集成,极大方便用户的使用。行等功能进行了集成,极大方便用户的使用。5.2.1编辑源程序编辑源程序 编辑源程序是指用户按照一定的程序设计语言规

7、范书写程序代码,编辑源程序是指用户按照一定的程序设计语言规范书写程序代码,并将代码保存到计算机中的过程。并将代码保存到计算机中的过程。源程序源程序的的载体载体:书籍书籍、磁带磁带、文本文件文本文件(最常用)(最常用)。5.2.2 编译程序编译程序 编译是指把用高级程序设计语言书写的源程序,编译是指把用高级程序设计语言书写的源程序,翻译翻译成计算机能成计算机能识别的机器语言,源程序经过编译后成为识别的机器语言,源程序经过编译后成为目标程序目标程序。编译程序时一般先分析源程序,检查源程序词法、语法和语义的正编译程序时一般先分析源程序,检查源程序词法、语法和语义的正确性,并将它分解为若干基本成分;然

8、后再根据这些基本成分建立相确性,并将它分解为若干基本成分;然后再根据这些基本成分建立相等价的目标程序部分;最后将目标程序部分综合为目标程序。等价的目标程序部分;最后将目标程序部分综合为目标程序。5.2 构建程序构建程序 5.2.3 链接程序链接程序 链接程序就是将所有与程序有关的目标文件彼此链接程序就是将所有与程序有关的目标文件彼此相连相连,形成一个能,形成一个能为操作系统执行的统一整体。目标文件经过链接后得到为操作系统执行的统一整体。目标文件经过链接后得到可执行文件可执行文件,依据目标文件与库函数的链接方式,可将链接分为依据目标文件与库函数的链接方式,可将链接分为静态链接静态链接与与动动态链

9、接态链接两大类。两大类。5.2.4 程序的执行程序的执行 源程序经过编辑、编译和链接后生成可执行程序,运行可执行程源程序经过编辑、编译和链接后生成可执行程序,运行可执行程序就可获得编程处理的结果。与编译、链接不同,运行可执行程序可序就可获得编程处理的结果。与编译、链接不同,运行可执行程序可以脱离语言编译环境。以脱离语言编译环境。5.2 构建程序构建程序 5.3编程模式编程模式 编程模式是使用计算机程序设计语言编写程序来解决具体问题的编程模式是使用计算机程序设计语言编写程序来解决具体问题的方式,通常有方式,通常有4种编程模式:种编程模式:过程式过程式、面向对象式面向对象式、函数式函数式和和说明式

10、说明式。每种编程模式每种编程模式有着其有着其对应的高级程序设计语言对应的高级程序设计语言,如如下下图所示。图所示。5.3.1 过程式模式过程式模式 在过程式模式中存在在过程式模式中存在被动对象被动对象及被动对象的及被动对象的活动主体活动主体两个概念。其两个概念。其中,被动对象本身不能开始动作,但能通过活动主体接收动作。中,被动对象本身不能开始动作,但能通过活动主体接收动作。过程式过程式编程编程模式下,模式下,数据项数据项属于被动对象,存储在计算机内存中;属于被动对象,存储在计算机内存中;程序程序属于被动对象的活动主体,对被动对象进行操纵。为了操纵被动对属于被动对象的活动主体,对被动对象进行操纵

11、。为了操纵被动对象,活动主体发布动作,称之为象,活动主体发布动作,称之为过程过程。【例例】进行文件打印,先要将文件(被动对象)存储在内存中,然后进行文件打印,先要将文件(被动对象)存储在内存中,然后程序(活动主体)调用程序(活动主体)调用PrintPrint过程完成打印。在过程模式中,被动对象(过程完成打印。在过程模式中,被动对象(文件)和过程(文件)和过程(PrintPrint)是完全独立的实体。)是完全独立的实体。5.3编程模式编程模式5.3.2 面向对象模式面向对象模式 面向对象模式处理的是面向对象模式处理的是活动对象活动对象。通常在活动对象上能执行的所。通常在活动对象上能执行的所有动作

12、都包含在活动对象自身之中,只需接收合适的外部刺激就可执有动作都包含在活动对象自身之中,只需接收合适的外部刺激就可执行其中相应的动作。行其中相应的动作。在面向对象模式中,将文件能执行的所有操作过程(打印、拷贝在面向对象模式中,将文件能执行的所有操作过程(打印、拷贝、删除等)打包在一起,称为、删除等)打包在一起,称为“方法方法”,此时程序仅仅只需向活动对,此时程序仅仅只需向活动对象发出相应请求(打印、拷贝、删除等),文件就会被打印、拷贝或象发出相应请求(打印、拷贝、删除等),文件就会被打印、拷贝或删除。删除。5.3编程模式编程模式5.3.3 函数式模式函数式模式 在函数式模式中,程序被当作一个在函

13、数式模式中,程序被当作一个函数函数。例如,求和可认为是具。例如,求和可认为是具有有n个输入个输入,1个输出的函数。个输出的函数。函数式语言具有以下主要功能。函数式语言具有以下主要功能。1.定义一系列可供任何程序员调用的原始函数。定义一系列可供任何程序员调用的原始函数。2.允许程序员将若干原始函数进行组合创建新的函数。允许程序员将若干原始函数进行组合创建新的函数。5.3编程模式编程模式【例例】定义函数定义函数first,功能是从一个数据列表中取出第一个元素;再,功能是从一个数据列表中取出第一个元素;再定义函数定义函数rest,功能是从一个数据列表中取出除第一个元素以外的所,功能是从一个数据列表中

14、取出除第一个元素以外的所有元素。通过函数有元素。通过函数rest和和first的组合,可以创建一个新函数的组合,可以创建一个新函数third,来,来完成对数据列表中第三个元素的抽取。完成对数据列表中第三个元素的抽取。5.3.4 说明式模式说明式模式 说明式模式是在规范的逻辑基础上发展而来,它依据说明式模式是在规范的逻辑基础上发展而来,它依据逻辑推理逻辑推理原原则响应查询,后来发展成为一阶谓词演算。则响应查询,后来发展成为一阶谓词演算。逻辑推理以推导为基础,根据已知正确的事实,运用逻辑推理的逻辑推理以推导为基础,根据已知正确的事实,运用逻辑推理的可靠准则推导出新的事实。可靠准则推导出新的事实。【

15、例例】逻辑学有以下著名的推导原则:逻辑学有以下著名的推导原则:If(A is B)and(B is C),then(A is C),将此原则应用于事实,将此原则应用于事实1和事实和事实2,可以推导出事实,可以推导出事实3。l 事实事实1:Socrates is a human A is Bl 事实事实2:A human is mortal B is Cl 事实事实3:Sccrates is mortal A is C5.3编程模式编程模式5.4 高级程序语言概述高级程序语言概述 1.变量变量 变量本质上是变量本质上是存储单元的名称存储单元的名称,用于引用计算机内存地址。对于程,用于引用计算机内

16、存地址。对于程序员来说,可将变量理解为是一种使用方便的占位符,只需通过变量名序员来说,可将变量理解为是一种使用方便的占位符,只需通过变量名就可以使用变量或者查看、修改变量的值,而不须了解变量在计算机内就可以使用变量或者查看、修改变量的值,而不须了解变量在计算机内存中的具体地址。存中的具体地址。5.4.1变量、运算符和表达式变量、运算符和表达式(1)变量声明)变量声明 大部分程序语言要求变量在大部分程序语言要求变量在使用前必须先要声明使用前必须先要声明,声明的主要作,声明的主要作用就是告诉计算机该变量及变量类型将在程序中使用,同时要求计算用就是告诉计算机该变量及变量类型将在程序中使用,同时要求计

17、算机预留出相应的存储区域。机预留出相应的存储区域。【例】char a;int b;double c;(2)变量初始化)变量初始化 变量初始化是为已声明过的变量赋初值,并为后续使用该变量做变量初始化是为已声明过的变量赋初值,并为后续使用该变量做准备,未初始化的变量其内存中的值是准备,未初始化的变量其内存中的值是随机随机的。变量初始化可以在变的。变量初始化可以在变量声明后进行,也可以在声明变量的同时进行。量声明后进行,也可以在声明变量的同时进行。【例】char a;a=z;int b=125;double c=123.45;5.4 高级程序语言概述高级程序语言概述 5.4.1变量、运算符和表达式变

18、量、运算符和表达式 1.变量变量 程序中用来表示各种运算的程序中用来表示各种运算的符号符号称为运算符;参与运算的数据称为称为运算符;参与运算的数据称为运算对象,或称为运算量、操作数运算对象,或称为运算量、操作数。使用运算符将运算对象连接起来的式子称为运算表达式。常见的表使用运算符将运算对象连接起来的式子称为运算表达式。常见的表达式有达式有算术表达式算术表达式、关系表达式关系表达式、逻辑表达式逻辑表达式等。等。(1)算术运算符和算术表达式算术运算符和算术表达式 算术运算符包括算术运算符包括基本算术运算符基本算术运算符(+,-,*,/,%)和)和自增运算符自增运算符(+)、自减运算符()、自减运算

19、符(-)两大类。)两大类。使用算术运算符和括号将运算对象连接起来的符合某种语言语法规使用算术运算符和括号将运算对象连接起来的符合某种语言语法规则的式子成为算术表达式。则的式子成为算术表达式。5.4 高级程序语言概述高级程序语言概述 5.4.1变量、运算符和表达式变量、运算符和表达式 2.运算符和表达式运算符和表达式(1)算术运算符和算术表达式算术运算符和算术表达式5.4 高级程序语言概述高级程序语言概述 5.4.1变量、运算符和表达式变量、运算符和表达式 2.运算符和表达式运算符和表达式 关系运算符主要用于关系运算符主要用于比较比较两个数据量的大小关系,运算结果是两个数据量的大小关系,运算结果

20、是逻逻辑值辑值(true或或false)。常用的关系运算符有)。常用的关系运算符有6种,如种,如下下表所示。表所示。(2)关系)关系运算符和运算符和关系关系表达式表达式5.4 高级程序语言概述高级程序语言概述 5.4.1变量、运算符和表达式变量、运算符和表达式 2.运算符和表达式运算符和表达式 逻辑运算符主要用于逻辑运算符主要用于逻辑值逻辑值(true或或false)的运算,逻辑运算的结果)的运算,逻辑运算的结果仍然是逻辑值。逻辑运算符有仍然是逻辑值。逻辑运算符有3种,分别是种,分别是逻辑与逻辑与(&)、)、逻辑或逻辑或(|)、逻辑非逻辑非(!),如(!),如下下表所示。表所示。(3)逻辑)逻

21、辑运算符和运算符和逻辑逻辑表达式表达式5.4 高级程序语言概述高级程序语言概述 5.4.1变量、运算符和表达式变量、运算符和表达式 2.运算符和表达式运算符和表达式说明:说明:C语言中规定,当运算对象为语言中规定,当运算对象为0时,即判定其为假,当运算对象为非时,即判定其为假,当运算对象为非0的任的任何值(包括负值),即判定其为真。何值(包括负值),即判定其为真。(4)运算符的优先级和结合方向)运算符的优先级和结合方向 当一个表达式中存在多个运算符时,运算符被处理的先后次序称为运当一个表达式中存在多个运算符时,运算符被处理的先后次序称为运算符的优先级。算符的优先级。C语言中常见运算符的优先级和

22、结合方向如表语言中常见运算符的优先级和结合方向如表5-4所示所示(见书(见书P87)。5.4 高级程序语言概述高级程序语言概述 5.4.1变量、运算符和表达式变量、运算符和表达式 2.运算符和表达式运算符和表达式 程序中使用的每个数据必须属于某种类型。高级程序设计语言提程序中使用的每个数据必须属于某种类型。高级程序设计语言提供了丰富的数据类型,归纳起来可分为两类:供了丰富的数据类型,归纳起来可分为两类:基本数据类型基本数据类型和和组合数组合数据类型据类型。C语言中的数据类型如语言中的数据类型如下下图所示。图所示。5.4 高级程序语言概述高级程序语言概述 5.4.2 数据类型数据类型1.基本数据

23、类型基本数据类型 基本数据类型也称为原子类型、标量类型或内建类型,是基本数据类型也称为原子类型、标量类型或内建类型,是不能分解不能分解为更小数据类型的数据类型。常用的基本数据类型主要包括以下几为更小数据类型的数据类型。常用的基本数据类型主要包括以下几种:种:整数类型:不带小数部分的数字。整数类型:不带小数部分的数字。实数类型:带小数部分的数字。实数类型:带小数部分的数字。字符类型:字符类型:Unicode字符集中的符号。字符集中的符号。布尔类型:只有两种取值(真或假)的数据类型。布尔类型:只有两种取值(真或假)的数据类型。5.4.2 数据类型数据类型5.4 高级程序语言概述高级程序语言概述 2

24、.构造数据类型构造数据类型 构造数据类型也称为组合数据类型,是由一组元素构造数据类型也称为组合数据类型,是由一组元素组合而成组合而成,其中每个元素都是基本数据类型或复合数据类型。大部分高级语言其中每个元素都是基本数据类型或复合数据类型。大部分高级语言都定义了以下几种构造数据类型:数组、结构体、共用体等。都定义了以下几种构造数据类型:数组、结构体、共用体等。5.4.2 数据类型数据类型5.4 高级程序语言概述高级程序语言概述 5.4.3 赋值语句赋值语句 赋值是指将一个具体的值赋给已经声明过的变量,大多数高赋值是指将一个具体的值赋给已经声明过的变量,大多数高级程序设计语言(如级程序设计语言(如C

25、、C+)使用)使用“=”来赋值。来赋值。【例例】int a,b,c;/声明声明3个整型变量;个整型变量;a=b=c=3;/通过赋值符号通过赋值符号“=”对变量对变量a,b,c同时赋值同时赋值3;5.4.4 输入输出输入输出 输入、输出数据是绝大多数程序所必需的,高级程序设计语言通常输入、输出数据是绝大多数程序所必需的,高级程序设计语言通常都具有都具有预定义好预定义好的输入、输出函数,用户只需直接调用即可完成输入、的输入、输出函数,用户只需直接调用即可完成输入、输出。输出。1.输入输入 输入就是将外部数据送入程序,供程序使用或处理。输入就是将外部数据送入程序,供程序使用或处理。C语言中预定语言中

26、预定义的输入函数有义的输入函数有scanf和和getchar等,等,scanf用于带格式输入,用于带格式输入,getchar用于输入单个字符,并把输入的数据存储到一个变量中。用于输入单个字符,并把输入的数据存储到一个变量中。【例例】scanf(“%d”,&a);/输入一个整数并赋给变量输入一个整数并赋给变量a,其中,其中%d用于用于 控制输入变量的类型控制输入变量的类型 b=getchar();/输入一个字符并赋给变量输入一个字符并赋给变量b5.4 高级程序语言概述高级程序语言概述 2.输出输出 输出就是将程序处理后的数据送出程序,供其它程序使用或显输出就是将程序处理后的数据送出程序,供其它程

27、序使用或显示、打印等。示、打印等。C语言中预定义的输出函数有语言中预定义的输出函数有printf和和putchar等,等,printf用于带格式输出,用于带格式输出,putchar用于输出单个字符。用于输出单个字符。【例例】printf(“The values is:%d”,b);putchar(“z”);5.4.4 输入输出输入输出 5.4 高级程序语言概述高级程序语言概述 5.4.5 控制结构控制结构 在程序运行过程中,多数时候是按先后顺序执行代码,但有时仅在程序运行过程中,多数时候是按先后顺序执行代码,但有时仅选择执行部分代码或者反复执行某一部分代码,这时可以通过不同的选择执行部分代码或

28、者反复执行某一部分代码,这时可以通过不同的程序控制结构来满足要求。程序控制结构来满足要求。基本的程序控制结构有三种:基本的程序控制结构有三种:顺序结构顺序结构,选择结构选择结构和和循环结构循环结构。1.顺序结构顺序结构 顺序结构是最基本的结构方式,程序执行时,按照顺序结构是最基本的结构方式,程序执行时,按照语句的顺序,从下而下,一条一条地执行。顺序结构的语句的顺序,从下而下,一条一条地执行。顺序结构的流程图如流程图如下下图所示。图所示。5.4 高级程序语言概述高级程序语言概述 2.选择结构选择结构 选择结构也称分支结构,是根据选择结构也称分支结构,是根据“条件条件”的真、假来选择执行的真、假来

29、选择执行哪一分支中的语句。选择结构通常可分三种形式:为哪一分支中的语句。选择结构通常可分三种形式:为单分支单分支、双分双分支支和和多分支多分支。(1)单分支()单分支(if)5.4.5 控制结构控制结构 5.4 高级程序语言概述高级程序语言概述 2.选择结构选择结构5.4.5 控制结构控制结构 5.4 高级程序语言概述高级程序语言概述(2)双分支()双分支(ifelse)5.4.5 控制结构控制结构 5.4 高级程序语言概述高级程序语言概述 2.选择结构选择结构(3)多多分支(分支(ifelseif)5.4.5 控制结构控制结构 5.4 高级程序语言概述高级程序语言概述 2.选择结构选择结构(

30、3)多多分支(分支(ifelseif)3.循环结构循环结构 循环结构可以看成是一个条件判断语句和一个向回转向语句的循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。当条件成立时,执行循环结构内的代码;当条件不成立时,组合。当条件成立时,执行循环结构内的代码;当条件不成立时,跳出循环,执行循环结构后的代码。跳出循环,执行循环结构后的代码。循环结构主要有以下两种:循环结构主要有以下两种:(1)当型循环当型循环:先判断条件,当条件为真:先判断条件,当条件为真(非(非0),执行循环体中的语句;当条件为),执行循环体中的语句;当条件为假(假(0),跳出循环体,执行循环体后面的),跳出循环体,执

31、行循环体后面的语句。因此,当型循环执行循环体的次数为语句。因此,当型循环执行循环体的次数为0。当型循环当型循环5.4.5 控制结构控制结构 5.4 高级程序语言概述高级程序语言概述 3.循环结构循环结构(2)直到型循环直到型循环:先执行循环体中的语句,再判断循环条件是否为:先执行循环体中的语句,再判断循环条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,直到型真,如果为真则继续循环;如果为假,则终止循环。因此,直到型循环执行循环体的次数为循环执行循环体的次数为1。直到型直到型循环循环5.4.5 控制结构控制结构 5.4 高级程序语言概述高级程序语言概述 5.4.6 注释语句注释语句

32、 在程序设计过程中,附加一些说明性信息有助于用户更好地阅在程序设计过程中,附加一些说明性信息有助于用户更好地阅读与理解程序。因此,程序设计语言提供了注释语句,即在程序中读与理解程序。因此,程序设计语言提供了注释语句,即在程序中插入解释性语句插入解释性语句。在编译程序时,编译系统对注释语句在编译程序时,编译系统对注释语句不作任何处理不作任何处理。对计算机而言,注释的存在与否不会影响程序的执行;但对用对计算机而言,注释的存在与否不会影响程序的执行;但对用户而言,注释是程序的重要组成部分,没有注释将极大影响程序的户而言,注释是程序的重要组成部分,没有注释将极大影响程序的阅读和理解。阅读和理解。5.4

33、 高级程序语言概述高级程序语言概述 程序中的注释语句一般有程序中的注释语句一般有2种形式:种形式:使用两个特殊的符号在注释开始与注释结尾位置括起来。使用两个特殊的符号在注释开始与注释结尾位置括起来。标示出注释的起始位置,标记符号右边的字符全部都属于注释标示出注释的起始位置,标记符号右边的字符全部都属于注释。在。在C、C+和和Java中,使用记号中,使用记号/*/把注释括起来,或者用记把注释括起来,或者用记号号/开始一个注释直至行末。开始一个注释直至行末。【例例】/*This is my first program.*/This is my first program.5.4.6 注释语句注释语

34、句5.4 高级程序语言概述高级程序语言概述 5.5 常用高级语言常用高级语言 高级语言是一类面向问题或面向对象的语言,它不面向机器高级语言是一类面向问题或面向对象的语言,它不面向机器也不依赖于具体的计算机,但在不同的平台上会被编译成不同的也不依赖于具体的计算机,但在不同的平台上会被编译成不同的机器语言。由于高级语言采用自然词汇,并使用与自然语言语法机器语言。由于高级语言采用自然词汇,并使用与自然语言语法相近的语法体系,所以它的程序设计方法比较接近于人类的思维相近的语法体系,所以它的程序设计方法比较接近于人类的思维习惯,编写出的程序更容易阅读和理解。常见的高级程序设计语习惯,编写出的程序更容易阅

35、读和理解。常见的高级程序设计语言可分为两大类:面向过程语言和面向对象语言。言可分为两大类:面向过程语言和面向对象语言。5.5.1 C语言语言 C语言是一种面向过程的计算机程序设计语言,它是目前众多语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中公认的优秀的结构程序设计语言之一,由美国贝尔实计算机语言中公认的优秀的结构程序设计语言之一,由美国贝尔实验室的验室的Dennis M.Ritchie于于1972年推出,年推出,1978年后年后C语言先后被移植语言先后被移植到大、中、小及微型机上。到大、中、小及微型机上。C语言的优点是:简介紧凑,灵活方便,运算符丰富,数据语言的优点是:简介

36、紧凑,灵活方便,运算符丰富,数据类型丰富,表达方式灵活使用,允许直接访问物理地址,对硬件类型丰富,表达方式灵活使用,允许直接访问物理地址,对硬件进行操作,生成目标代码质量高,程序执行效率高,可移植性好,进行操作,生成目标代码质量高,程序执行效率高,可移植性好,表达力强。表达力强。5.5 常用高级语言常用高级语言 5.5.2 C+语言语言 C+语言是一种优秀的面向对象程序设计的语言,它是在语言是一种优秀的面向对象程序设计的语言,它是在C语言语言的基础上发展而来,但比的基础上发展而来,但比C语言更容易学习和掌握。语言更容易学习和掌握。C+语言是由语言是由AT&T贝尔实验室的贝尔实验室的Bjarne

37、 Stroustrup 设计和实现,兼备设计和实现,兼备Simula语语言和言和C语言的特性,语言的特性,1983年支持面向对象程序设计,年支持面向对象程序设计,1985年第一次投年第一次投入商业市场,入商业市场,1987-1989年支持范型程序设计。年支持范型程序设计。5.5 常用高级语言常用高级语言 C+语言的主要特征如下:语言的主要特征如下:(1)C+是是C语言的超集,比语言的超集,比C语言更安全。语言更安全。(2)C+既支持面向过程的程序设计,又支持面向对象的程序设计。既支持面向过程的程序设计,又支持面向对象的程序设计。(3)C+程序在可重用性、可扩充性、可维护性和可靠性等方面都程序在

38、可重用性、可扩充性、可维护性和可靠性等方面都较较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。语言得到了提高,使其更适合开发大中型的系统软件和应用程序。(4)C+设计成静态类型,和设计成静态类型,和C同样高效且可移植性强,能给程序设同样高效且可移植性强,能给程序设计者更多的选择。计者更多的选择。(5)C+避免平台限定或没有普遍用途的特性,不带来额外开销,避免平台限定或没有普遍用途的特性,不带来额外开销,无需复杂的程序设计环境。无需复杂的程序设计环境。C+语言的主要特征:语言的主要特征:5.5.2 C+语言语言 5.5 常用高级语言常用高级语言 5.5.3 Java语言语言 Jav

39、a语言是一种简单的、跨平台的、面向对象的、分布式的、解语言是一种简单的、跨平台的、面向对象的、分布式的、解释的、健壮的、安全的、结构的、中立的、可移植的、性能优异的释的、健壮的、安全的、结构的、中立的、可移植的、性能优异的、多线程的、动态的语言。、多线程的、动态的语言。Java是由是由Sun Microsystems公司于公司于1995年年5月推出的面向对象程序设计语言。月推出的面向对象程序设计语言。Java语言的主要特征如下:语言的主要特征如下:(1)Java语言是简单的。语言是简单的。(2)Java语言是面向对象的。语言是面向对象的。(3)Java语言是分布式的。语言是分布式的。(4)Ja

40、va语言是健壮的。语言是健壮的。(5)Java语言是安全的。语言是安全的。(6)Java语言是体系结构中立的。语言是体系结构中立的。(7)Java语言是可移植的。语言是可移植的。(8)Java语言是多线程的。语言是多线程的。5.5 常用高级语言常用高级语言 5.6 算法概述算法概述*计算机系统中的软件都是由某种算法实现的程序模块组成,算法计算机系统中的软件都是由某种算法实现的程序模块组成,算法的好坏直接影响软件性能的优劣。的好坏直接影响软件性能的优劣。算法设计是软件设计的核心问题,设计时必须要解决以下问题:算法设计是软件设计的核心问题,设计时必须要解决以下问题:使用何种方法来设计算法,算法需要

41、哪些资源,算法时间复杂度与空使用何种方法来设计算法,算法需要哪些资源,算法时间复杂度与空间复杂度如何等等。间复杂度如何等等。5.6.1 算法的概念算法的概念 算法(算法(Algorithm)是对特定问题求解步骤准确而完整的描述,)是对特定问题求解步骤准确而完整的描述,它的表现形式是计算机指令的有序系列,执行这些指令就可解决特它的表现形式是计算机指令的有序系列,执行这些指令就可解决特定问题。定问题。一个好的算法应当具有以下一个好的算法应当具有以下5个重要特性。个重要特性。5个重要特性个重要特性:1.有限性有限性:算法在执行有限步之后必须终止,且每一步都应在有限的:算法在执行有限步之后必须终止,且

42、每一步都应在有限的时间内完成。时间内完成。2.确定性确定性:算法的每一步必须要有确切的含义,不能存在二义性。:算法的每一步必须要有确切的含义,不能存在二义性。3.可行性可行性:算法的每一步都是可执行的,可以通过有限次操作来完成:算法的每一步都是可执行的,可以通过有限次操作来完成其功能;其功能;4.输入输入:一个算法具有:一个算法具有0个或多个输入。个或多个输入。5.输出输出:一个算法具有:一个算法具有1个或多个输出,输出与个或多个输出,输出与 输入有着特定的对应输入有着特定的对应关系。关系。5.6.1 算法的概念算法的概念5.6 算法概述算法概述*【例【例5.1】给定两个整数】给定两个整数m和

43、和n(mn),求它们的最大公约数。),求它们的最大公约数。算法算法1:穷举法:穷举法(1)for i n to 1(i为循环控制变量);为循环控制变量);(2)r1m%i;r2n%i(r1,r2为余数);为余数);(3)若若r1=r2=0,则算法结束;否则,则算法结束;否则i=i-1,继续步骤(继续步骤(2););(4)输出结果输出结果i。5.6.1 算法的概念算法的概念5.6 算法概述算法概述*算法算法2:辗转相除法:辗转相除法(1)以以m除以除以n,并令所得余数为,并令所得余数为r(rn).(2)若若r=0,算法结束,输出结果,算法结束,输出结果n;否则继续步骤(;否则继续步骤(3)。)。

44、(3)将将m置换为置换为n,将,将n置换为置换为r,返回步骤(,返回步骤(1)继续进行。)继续进行。5.6.2 算法的表示算法的表示 为了让算法清晰易懂,通常需要一种描述方法来对算法进行表示。为了让算法清晰易懂,通常需要一种描述方法来对算法进行表示。算法的描述方法有很多,较为常用的有:算法的描述方法有很多,较为常用的有:自然语言法自然语言法、流程图法流程图法、N-S流程图法流程图法、伪代码法伪代码法等。等。1.自然语言自然语言 自然语言就是采用人们日常使用的语言,来描述解决问题的自然语言就是采用人们日常使用的语言,来描述解决问题的方法和步骤;这种描述方法通俗易懂,即使是不熟悉计算机语言方法和步

45、骤;这种描述方法通俗易懂,即使是不熟悉计算机语言的用户也很容易理解程序。的用户也很容易理解程序。5.6 算法概述算法概述*【例【例5.2】使用自然语言描述从】使用自然语言描述从1开始的连续开始的连续n个自然数求和算法,即个自然数求和算法,即sum=1+2+n。(1)确定确定n的值。的值。(2)设等号右边的算式项中的初始值设等号右边的算式项中的初始值i为为1。(3)设设sum的初始值为的初始值为0。(4)如果如果i=n时,执行(时,执行(5),否则转出执行(),否则转出执行(8)。)。(5)计算计算sum加上加上i的值后,重新赋值给的值后,重新赋值给sum。(6)计算计算i加加1,然后将值重新赋

46、给,然后将值重新赋给i。(7)转去执行(转去执行(4)。)。(8)输出输出sum的值,算法结束。的值,算法结束。5.6.2 算法的表示算法的表示5.6 算法概述算法概述*2.流程图流程图 流程图是以特定的图形符号加上说明来表示算法,通常是用一些图流程图是以特定的图形符号加上说明来表示算法,通常是用一些图框来表示各种操作。用流程图表示算法,直观形象,易于理解,结构清框来表示各种操作。用流程图表示算法,直观形象,易于理解,结构清晰,同时不依赖任何具体的计算机和计算机程序设计语言,有利于不同晰,同时不依赖任何具体的计算机和计算机程序设计语言,有利于不同环境的程序设计。环境的程序设计。5.6.2 算法

47、的表示算法的表示5.6 算法概述算法概述*【例【例5.3】用流程图法描述】用流程图法描述sum=1+2+n,如,如下下图所示。图所示。5.6.2 算法的表示算法的表示5.6 算法概述算法概述*3.N-S流程图流程图 N-S流程图简称流程图简称N-S图,也称为盒图或图,也称为盒图或CHAPIN图图,1973年由美国学年由美国学者者I.Nassi和和B.Shneiderman提出,并以两人姓氏的首字母来命名。提出,并以两人姓氏的首字母来命名。N-S图是在流程图的基础上完全去掉流程线,并将全部算法写在一个图是在流程图的基础上完全去掉流程线,并将全部算法写在一个矩形框内,且框内还可以包含其他框的表示形

48、式。矩形框内,且框内还可以包含其他框的表示形式。N-S图包括顺序、选择图包括顺序、选择和循环和循环3种基本结构,表示形式分别如种基本结构,表示形式分别如下下所示。所示。顺序结构顺序结构 分支结构分支结构 循环结构循环结构5.6.2 算法的表示算法的表示5.6 算法概述算法概述*【例【例5.4】用】用N-S流程图法描述流程图法描述sum=1+2+n,如,如下下图所示。图所示。5.6.2 算法的表示算法的表示5.6 算法概述算法概述*4.伪代码伪代码 伪代码是介于自然语言和计算机语言之间的文字和符号,它与一伪代码是介于自然语言和计算机语言之间的文字和符号,它与一些高级程序设计语言(如些高级程序设计

49、语言(如Visual Basic和和Visual C+)类似,但没有)类似,但没有高级程序设计语言所要遵循的严格规则。伪代码通常采用自然语言、高级程序设计语言所要遵循的严格规则。伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言的数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言的控制结构来描述算法步骤的执行顺序。控制结构来描述算法步骤的执行顺序。在程序开发期间,伪代码经常用于在程序开发期间,伪代码经常用于“规划规划”一个程序,然后再转一个程序,然后再转换成某种高级语言程序。换成某种高级语言程序。5.6.2 算法的表示算法的表示5.6 算法概述算法概述*

50、(1)算法开始;)算法开始;输入输入n的值的值 i 1;sum 0;do while i=n;sum sum+i;i i+1;(2)输出)输出sum的值;的值;(3)算法结束。)算法结束。【例【例5.5】用伪代码法来描述】用伪代码法来描述sum=1+2+n。5.6.2 算法的表示算法的表示5.6 算法概述算法概述*计算机技术所涉及的算法比较多,常用的算法有枚举法、递推法、计算机技术所涉及的算法比较多,常用的算法有枚举法、递推法、递归法、贪心算法、分治法、回溯法等,下面对它们作一简单介绍。递归法、贪心算法、分治法、回溯法等,下面对它们作一简单介绍。5.6.3 常用算法简介常用算法简介1.枚举法(

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(计算机导论课件-第5章-程序设计基础.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|