




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务任务3 了解算法与程序设计语了解算法与程序设计语言言 3.3.1 算法算法 3.3.2 程序设计语言的发展程序设计语言的发展 3.3.3 几种程序设计语言介绍几种程序设计语言介绍 计算机求解问题的步骤计算机求解问题的步骤(1) 确定并理解问题;确定并理解问题;(2) 寻找解决问题的方法与步骤,并将其表示寻找解决问题的方法与步骤,并将其表示成算法成算法(Algorithm) ;(3) 使用某种程序设计语言描述该算法使用某种程序设计语言描述该算法(编程编程), 并编译成目标程序和进行调试;并编译成目标程序和进行调试;(4) 运行程序,获得问题的解答;运行程序,获得问题的解答;(5) 进行评估,
2、改进算法和程序进行评估,改进算法和程序算法的概念算法的概念 计算机算法是问题求解规则方法的一计算机算法是问题求解规则方法的一种过程描述,在执行有穷步的运算后结束。种过程描述,在执行有穷步的运算后结束。算法不仅在计算某一类问题时可以应用,算法不仅在计算某一类问题时可以应用,有时一些实际问题中也要应用算法。有时一些实际问题中也要应用算法。在用计算机求解一些问题时,必须根据问在用计算机求解一些问题时,必须根据问题的要求,设计出一种算法,以使计算机题的要求,设计出一种算法,以使计算机精确而有效地去求解该问题。精确而有效地去求解该问题。 算法是解决问题的方法与步骤算法是解决问题的方法与步骤例:有三个硬币
3、,其中一例:有三个硬币,其中一个是伪造的,另两个是真个是伪造的,另两个是真的,伪币与真币重量略有的,伪币与真币重量略有不同。现在提供一座天平,不同。现在提供一座天平,如何找出伪币呢?如何找出伪币呢?分析:分析:方法明确而有序方法明确而有序按提供的条件进行操作按提供的条件进行操作任何人均可仿照进行任何人均可仿照进行(共享共享智能智能)开场开场C是伪币是伪币B是伪币是伪币A是伪币是伪币AB?AC?是是否否否否是是A B C关于算法的三方面问题关于算法的三方面问题如何确定算法算法设计)?如何确定算法算法设计)?如何表示算法算法表示)?如何表示算法算法表示)?如何使算法更有效算法分析)?如何使算法更有
4、效算法分析)? 算法的特征算法的特征 (1)输入性。一个算法可以有多个输入,也可以输入性。一个算法可以有多个输入,也可以没有输入没有输入0个输入)。个输入)。(2)输出性。一个算法必须有一个或多个输出。输出性。一个算法必须有一个或多个输出。 (3)确定性。算法的每个步骤必须有确切的定义,确定性。算法的每个步骤必须有确切的定义,即每一步骤应该执行何种动作必须是相当清楚的、即每一步骤应该执行何种动作必须是相当清楚的、无二义性的。无二义性的。 (4)有穷性。一个算法总是在执行了有穷步的操有穷性。一个算法总是在执行了有穷步的操作后终止。作后终止。(5能行性。算法中有待执行的操作都是可执能行性。算法中有
5、待执行的操作都是可执行的,即在计算机的能力范围之内,且在有限的行的,即在计算机的能力范围之内,且在有限的时间内能够完成。时间内能够完成。算法的表示算法的表示 算法的表示可以多种形式。算法的表示可以多种形式。(1自然语言。自然语言像英语、汉语等来描自然语言。自然语言像英语、汉语等来描述算法的方法述算法的方法 。(2流程图。使用特定的图形符号来描述描述。流程图。使用特定的图形符号来描述描述。 (3伪代码。一种介于自然语言和程序设计语伪代码。一种介于自然语言和程序设计语言之间的文字和符号表达工具。言之间的文字和符号表达工具。 (4程序设计语言。使用某一种程序设计语言程序设计语言。使用某一种程序设计语
6、言所提供的语言成分,根据语言的特点,并利用语所提供的语言成分,根据语言的特点,并利用语言提供的各种工具和手段,遵照规定的语法规则,言提供的各种工具和手段,遵照规定的语法规则,去实现算法这就是所谓的程序编码。去实现算法这就是所谓的程序编码。 文字文字(自然语言自然语言)描绘描绘“比较与的重量,若,则是比较与的重量,若,则是伪造的;否则再比较与的重量,若伪造的;否则再比较与的重量,若,则是伪造的;否则是伪造的。,则是伪造的;否则是伪造的。”缺点:缺点:容易产生歧义,很难容易产生歧义,很难 “准确地进行表准确地进行表达达叙述冗长,很难清楚地表达算法的逻辑流叙述冗长,很难清楚地表达算法的逻辑流程程算法
7、的流程图表示算法的流程图表示流程图由结点和有向边构成,它描流程图由结点和有向边构成,它描述了算法所执行操作的顺序及执行述了算法所执行操作的顺序及执行操作的条件操作的条件流程图符号流程图符号 :比文字描述简明,但当算法比较复比文字描述简明,但当算法比较复杂时,理解困难,容易产生错误杂时,理解困难,容易产生错误 端点符端点符处置处置判断判断预定义功能预定义功能原始数据放在原始数据放在数组数组A中;令中;令 i=1确定确定Ai到到An中最中最小整数的位置小整数的位置,设为设为jAi 和和Aj交换位置交换位置i = i + 1i = n ?完毕完毕开场开场用流程图表示用流程图表示选择排序算法选择排序算
8、法流程图使用的图形符号流程图使用的图形符号 图形符号图形符号名称名称代表的操作代表的操作输入输入/ /输出输出数据的输入输出数据的输入输出处理处理各种形式的数据处理各种形式的数据处理判断判断判断选择,根据条件满足与否选择判断选择,根据条件满足与否选择不同的路径不同的路径起止起止流程的起点与终点流程的起点与终点流程线流程线连接各个框图,表示执行顺序连接各个框图,表示执行顺序连接点连接点表示与流程图其他部分相连接表示与流程图其他部分相连接将原始数据放在数组将原始数据放在数组A中;中;设置设置i的初值为的初值为1,循环执行下列操作,直到,循环执行下列操作,直到i = n : 确定确定Ai 到到An中
9、最小整数的位置,设为中最小整数的位置,设为j ; 交换交换Ai和和j ; i = i +1 使用伪代码描述使用伪代码描述“选择排序算法选择排序算法使用伪代码描述算法使用伪代码描述算法伪代码伪代码(Pseudo code)是用来描述算法的一种语是用来描述算法的一种语言,它既类似于自然语言,又使用与程序设计语言言,它既类似于自然语言,又使用与程序设计语言相似的方法描述算法相似的方法描述算法优点:结构清晰,代码简单,可读性好,可以容易地优点:结构清晰,代码简单,可读性好,可以容易地以任何一种编程语言以任何一种编程语言(Pascal, C, Java等等)实现实现每个整数是每个整数是A的一个元素:的一
10、个元素:A1, A2, , An算法的基本要素算法的基本要素(1算法对数据的运算和操作算法对数据的运算和操作在一般的计算机系统中,基本的运算和操作包括:在一般的计算机系统中,基本的运算和操作包括:自述运算、逻辑运算、关系运算、数据传输四类。自述运算、逻辑运算、关系运算、数据传输四类。(2算法的控制结构算法的控制结构算法的功能不仅取决于所选用的操作,还与算法算法的功能不仅取决于所选用的操作,还与算法的控制结构有很大关系。算法的控制结构指的是的控制结构有很大关系。算法的控制结构指的是算法中各操作之间的执行顺序。一般情况下,一算法中各操作之间的执行顺序。一般情况下,一个算法可以由顺序、选择和循环个算
11、法可以由顺序、选择和循环3种基本控制结种基本控制结构组合而成。构组合而成。 三种基本算法结构的图形表示三种基本算法结构的图形表示 (a是顺序结构,其中的每个处理是顺序结构,其中的每个处理A和和B顺序执行。顺序执行。(b是选择结构。其中是选择结构。其中e为判决条件,进入选择结构,首先为判决条件,进入选择结构,首先判断判断e成立与否,再根据判断结果,选择执行处理成立与否,再根据判断结果,选择执行处理A或处理或处理B后后退出。退出。循环结构分为两类。(循环结构分为两类。(c称为称为“当型循环当型循环”;(;(d称为称为“直到型循环直到型循环”。循环结构中的处理。循环结构中的处理A是要重复执行的操作,
12、是要重复执行的操作,叫做叫做“循环体循环体”;e是控制循环执行的条件。当型循环是当条是控制循环执行的条件。当型循环是当条件件e成立,就继续执行成立,就继续执行A,否则就结束循环;而直到型循环是,否则就结束循环;而直到型循环是重复执行重复执行A,直到条件,直到条件e成立,循环结束。成立,循环结束。ABABAETrueFalseBEETrueFalseTrueFalse(a)(b)(c)(d)图3-4 三种基本算法结构三种基本结构的共同特点三种基本结构的共同特点 (1只有单一的入口和单一的出口;只有单一的入口和单一的出口;(2结构中的每个都有执行到的可能;结构中的每个都有执行到的可能;(3结构内不
13、存在永不终止的死循环。结构内不存在永不终止的死循环。算法设计的目标算法设计的目标 (1) 正确性。算法应满足具体问题的需求,这是算法设正确性。算法应满足具体问题的需求,这是算法设计最起码的目标。计最起码的目标。 (2) 可读性。一个算法设计完成后,并非仅供算法设计可读性。一个算法设计完成后,并非仅供算法设计者个人使用,因此首先应让使用者能够理解、阅读与交流,者个人使用,因此首先应让使用者能够理解、阅读与交流,其次才是机器执行。其次才是机器执行。(3) 健壮性。当输入的数据非法时,算法应当能够做出健壮性。当输入的数据非法时,算法应当能够做出适当的反应或进行处理,从而避免产生不可预料的输出结适当的
14、反应或进行处理,从而避免产生不可预料的输出结果。果。 (4) 高效率。所谓效率,是指算法执行的时间。对于同高效率。所谓效率,是指算法执行的时间。对于同一个问题如果有多个可供选择的算法,应尽可能选择执行一个问题如果有多个可供选择的算法,应尽可能选择执行时间短的算法,这样的算法无疑效率是较高的。时间短的算法,这样的算法无疑效率是较高的。 (5) 低存储量需求。算法的存储量需求是指算法执行过低存储量需求。算法的存储量需求是指算法执行过程中所需的最大存储空间。对于同一个问题如果有多个算程中所需的最大存储空间。对于同一个问题如果有多个算法可供选择,应尽可能选择存储量需求低的算法。法可供选择,应尽可能选择
15、存储量需求低的算法。 什么是程序设计语言?什么是程序设计语言?什么是程序?什么是程序?程序是为了用计算机解决某个问题而采用程序设计语程序是为了用计算机解决某个问题而采用程序设计语言编写的一个指令序列言编写的一个指令序列什么是程序设计语言?什么是程序设计语言?语言的目的是用于通信语言的目的是用于通信程序设计语言用于人与计算机之间的通信程序设计语言用于人与计算机之间的通信程序设计语言是由人使用但计算机可以理解的一种语程序设计语言是由人使用但计算机可以理解的一种语言言程序设计语言用于编制程序,表达需要计算机完成什程序设计语言用于编制程序,表达需要计算机完成什么任务和怎样完成任务,然后交给计算机去完成
16、么任务和怎样完成任务,然后交给计算机去完成 程序设计语言填补了程序设计语言填补了 人与计算机交流的鸿沟人与计算机交流的鸿沟计算机硬件仅仅计算机硬件仅仅知道知道0和和1有 问 题 需 要有 问 题 需 要计 算 机 解 决计 算 机 解 决的人的人交流的鸿沟交流的鸿沟计算机硬件仅仅计算机硬件仅仅知道知道0和和1有 问 题 需 要有 问 题 需 要计 算 机 解 决计 算 机 解 决的人的人程序设计语言程序设计语言计算机中使用多种计算机中使用多种“语言语言”程序设计语言:主要用于描述算法程序设计语言:主要用于描述算法机器语言、汇编语言、高级语言机器语言、汇编语言、高级语言数据描述语言:主要用于描述
17、数据文档、音乐、图形、图像、视频等数据描述语言:主要用于描述数据文档、音乐、图形、图像、视频等的规范、结构和文件格式的规范、结构和文件格式HTML、XML、MIDI、MP3、OpenGL、JPEG、MPEG、脚本语言:用于编写嵌入在文档中的程序的程序设计语言脚本语言:用于编写嵌入在文档中的程序的程序设计语言VBA、VBScript、JavaScript 计算机通信语言通信协议):用于描述计算机计算机通信语言通信协议):用于描述计算机-计算机之间的会话计算机之间的会话恳求恳求-应答的语法和语义应答的语法和语义、POP3、SMTP、 FTP、 Telnet、TCP、IP、数据库语言:用于数据操作,
18、如数据库语言:用于数据操作,如SQL语言语言程序设计语言的发展程序设计语言的发展 要使计算机能够按人的意图工作,就必须要使计算机能够按人的意图工作,就必须使计算机懂得人的意图,接受人向它发出使计算机懂得人的意图,接受人向它发出的命令和信息。计算机不懂人类的语言,的命令和信息。计算机不懂人类的语言,人们要操纵计算机,就不得不使用特定的人们要操纵计算机,就不得不使用特定的语言与之打交道,这种特定的语言就是计语言与之打交道,这种特定的语言就是计算机语言,又称为程序设计语言。算机语言,又称为程序设计语言。计算机语言也有其自身的发展过程,其出计算机语言也有其自身的发展过程,其出现的顺序是:机器语言、汇编
19、语言、高级现的顺序是:机器语言、汇编语言、高级语言。语言。 机器语言机器语言 机器语言是计算机惟一能够直接识别和执行的一机器语言是计算机惟一能够直接识别和执行的一种计算机语言,它是以二进制代码的形式表示的种计算机语言,它是以二进制代码的形式表示的机器指令。机器指令。优点:计算机能直接识别、运行速度快、占用内优点:计算机能直接识别、运行速度快、占用内存空间小。存空间小。缺点:直观性差,难记、难写,非常容易出错;缺点:直观性差,难记、难写,非常容易出错;面向具体的机器,通用性差;需要人工分配内存,面向具体的机器,通用性差;需要人工分配内存,编程工作量大。编程工作量大。由于机器语言的缺点难以克服,给
20、计算机的推广由于机器语言的缺点难以克服,给计算机的推广使用造成了很大的障碍。为此,人们设计出了便使用造成了很大的障碍。为此,人们设计出了便于记忆的助记符式语言,即汇编语言。于记忆的助记符式语言,即汇编语言。B8 7F 01BB 21 0203 D8B8 1F 042B C3(计算(计算1055-(383+545)的的5条机器指令)条机器指令) 机器语言机器语言 用机器语言编程序用机器语言编程序, 也就是直接使用二进制代码编写也就是直接使用二进制代码编写程序程序操作码操作码操作数操作数(或操作数的地址或操作数的地址)1条机器指令条机器指令操作数地操作数地址址操作码操作码汇编语言汇编语言 汇编语言
21、是用一些便于人们记忆的符号来汇编语言是用一些便于人们记忆的符号来代替二进制数码,这些符号都是一些可以代替二进制数码,这些符号都是一些可以指明操作含义的英文单词指明操作含义的英文单词(或其缩写或其缩写),因,因此也叫助记符式语言。这种语言具有如下此也叫助记符式语言。这种语言具有如下优缺点。优缺点。优点:运行速度快,占用空间小;易学、优点:运行速度快,占用空间小;易学、易懂、易查错、易修改易懂、易查错、易修改缺点:机器不能直接识别;面向机器,通缺点:机器不能直接识别;面向机器,通用性差。用性差。 汇编语言汇编语言用助记符号来表示机器指令用助记符号来表示机器指令中的操作符与操作数中的操作符与操作数将
22、将383传送到传送到AX寄存器寄存器将将545传送到传送到BX寄存器寄存器将将BX内容加内容加AX内容,结果在内容,结果在BX中中将将1055传送到传送到AX寄存器寄存器将将AX内容减内容减BX内容,结果在内容,结果在AX寄寄存器中存器中B8 7F 01BB 21 0203 D8B8 1F 042B C3(计算(计算1055-(383+545)的的5条机器指令)条机器指令)机器语言程序机器语言程序对应的汇编语言程序对应的汇编语言程序MOV AX 383MOV BX 545ADD BX AXMOV AX 1055SUB AX BX汇编语言程序汇编语言程序高级语言高级语言 高级语言,克服了低级语言
23、的所有缺点。高级语言,克服了低级语言的所有缺点。优点:接近于自然语言;能精确地描述解决问题优点:接近于自然语言;能精确地描述解决问题的过程;不依赖于具体的计算机指令系统;不需的过程;不依赖于具体的计算机指令系统;不需人工分配内存;运行速度慢,片用内存空间大;人工分配内存;运行速度慢,片用内存空间大;计算机不能直接识别和运行计算机不能直接识别和运行尽管高级语言还有一定的缺点,但因为它的显著尽管高级语言还有一定的缺点,但因为它的显著优点,所以才使计算机的推可能。目前,常用的优点,所以才使计算机的推可能。目前,常用的高级语言有高级语言有C语言、语言、VC、VB、C#等。等。高级程序设计语言高级程序设
24、计语言MOV AX 383MOV BX 545ADD BX AXMOV AX 1055SUB AX BX汇编语言程序汇编语言程序S=1055-(383+545)语言处理语言处理(翻译翻译)程序程序 (1)汇编语言的翻译汇编语言的翻译用汇编语言编写的程序通常称为汇编语言用汇编语言编写的程序通常称为汇编语言源程序。这样的程序计算机是不能直接识源程序。这样的程序计算机是不能直接识别和执行的,必须用相应的翻译程序别和执行的,必须用相应的翻译程序(称称为汇编程序为汇编程序)将汇编语言源程序翻译成机将汇编语言源程序翻译成机器能够执行的机器语言程序器能够执行的机器语言程序(称为目标程称为目标程序序),这个翻
25、译过程叫做汇编。,这个翻译过程叫做汇编。汇编语言源程序目标程序可执行程序运行结果汇编程序汇编连接语言处理语言处理(翻译翻译)程序程序(2)高级语言的翻译高级语言的翻译编译方式:用相应语言的编译程序将源编译方式:用相应语言的编译程序将源程序翻译成目标程序,再用连接程序将目程序翻译成目标程序,再用连接程序将目标程序与函数库连接,最终生成可执行程标程序与函数库连接,最终生成可执行程序即可在计算机上运行。序即可在计算机上运行。 高级语言源程序目标程序可执行程序运行结果编译程序编译连接语言处理语言处理(翻译翻译)程序程序(2)高级语言的翻译高级语言的翻译解释方式:通过相应的解释程序将源程解释方式:通过相
26、应的解释程序将源程序逐句翻译成机器指令,并且是每翻译一序逐句翻译成机器指令,并且是每翻译一句就执行一句。解释程序不产生目标程序,句就执行一句。解释程序不产生目标程序,执行过程中某句有错误将立即显示出错误执行过程中某句有错误将立即显示出错误信息,以便用户修改后继续执行。信息,以便用户修改后继续执行。 高级语言源程序运行结果解释程序解释并执行程序设计语言程序设计语言 :Fortran Fortran是英文是英文“FORmula TRANslator的缩写,译为的缩写,译为“公式翻译公式翻译器器”,它是世界上最早出现的计算机高级,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计程序
27、设计语言,广泛应用于科学和工程计算领域。算领域。FORTRAN语言以其特有的功能在数值、语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。科学和工程计算领域发挥着重要作用。程序设计语言程序设计语言 :Pascal与与Delphi Pascal是一个有影响的面向过程编程语言,由是一个有影响的面向过程编程语言,由尼古拉斯尼古拉斯沃斯在沃斯在1968年年9月设计,在月设计,在1970年年发行,作为一个小型的和高效的语言,意图鼓励发行,作为一个小型的和高效的语言,意图鼓励使用结构化编程和数据结构进行良好的编程实践。使用结构化编程和数据结构进行良好的编程实践。Delphi是一个集成开发环境是一
28、个集成开发环境IDE),使用的),使用的核心是由传统核心是由传统Pascal语言发展而来的语言发展而来的Object Pascal,以图形用户界面,以图形用户界面Graphical User Interface,简称,简称GUI为开发环境,通过为开发环境,通过IDE、VCL工具与编译器,配合连结数据库的功工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用能,构成一个以面向对象程序设计为中心的应用程序开发工具。程序开发工具。程序设计语言程序设计语言 :Basic, Visual Basic和和VB BASIC是是Beginners All-purpose symbolic
29、 instruction Code初学者通用初学者通用符号指令代码的缩写,是国际上广泛使用的一符号指令代码的缩写,是国际上广泛使用的一种计算机高级语言,它的特点是简单、易学。种计算机高级语言,它的特点是简单、易学。1991年,年,Visual Basic 1.0问世,它允许程问世,它允许程序员在一个所见即所得的图形界面中迅速完成开序员在一个所见即所得的图形界面中迅速完成开发任务。发任务。2019年发布的年发布的Visual Basic 6.0是是传统传统Visual Basic中功能最全、应用最广的一中功能最全、应用最广的一个版本。个版本。微软后来开发了微软后来开发了VB的继任者的继任者Visual Basic .NET,同时也是,同时也是.NET平台的一部分。平台的一部分。程序设计语言程序设计语言 : Java Java是一种可以撰写跨平台应用软件的面向对象的程序是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由设计语言,是由Sun Microsystems公司于公司于2019年年5月推出的月推出的Java程序设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土建工程消防泵房施工方案
- 文化展示中心施工材料采购管理方案
- 水位监测管施工方案
- 解析2025年家电制造行业出口优势与海外市场拓展机遇报告
- 离婚后共同财产分配变更协议书修改要点与流程
- 智能化物业小区建筑施工与智能门禁系统合作合同
- 双方离婚房产分割及子女抚养、赡养协议书
- 甲乙丙三方跨境股权转让及税务筹划协议
- 排水泵站改进方案
- 农业机械租赁与租赁期限延长及租金调整协议
- 幼儿园孩子受伤赔偿协议书范文
- 合肥市肥东县大学生乡村医生专项计划招聘考试真题
- 林地恢复协议书(2篇)
- 2024年哈尔滨卫生系统考试真题
- 非结核分枝杆菌病诊断与治疗指南(2020年版)解读课件
- 内部控制手册
- 护理分层培训考核分析问题总结
- 脑梗死知识讲解模板
- 研学大赛理论模拟试题二附有答案
- 红火蚁监测和防控技术
- python程序设计-说课
评论
0/150
提交评论