第6章 算法与程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

教案

讲稿

第六章算法与程序设计

[旧课复习]:

复习内容:

1.PowerPoint幻灯片的基本制作方法

2.PowerPoint 幻灯片的动画设计

复习目的:加强学生熟练掌握PowerPoint基本操作

复习时长:大约5分钟

[新课导入]:

导入方式:展示一个自制应用程序

导入目的:让学生初步了解程序设计的应用理念

导入时长:大约5分钟

[新课讲授]:

重点:掌握算法的基本特征;掌握结构化程序设计方法。

难点:掌握选择结构、循环结构的特点。

方法:运用多媒体辅助教学,采用案例教学和任务驱动等教学法。

6.1 计算机求解问题的方法

(1)界定问题。

(2)分析问题。

(3)建模。

(4)分析模型建立算法。

6.2 算法及算法的描述

6.2.1 算法的定义

算法(Algorithm)是指完成某一特定任务所需要的具体方法和步骤,是有穷规则的集合。

6.2.2 算法的基本特征

算法是程序设计的“灵魂”,算法+数据结构=程序。算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。

算法具有以下基本特征。

(1)输入:一个算法有0个或多个输入,用以表征算法开始之前运算对象的初始情况。(2)输出:一个算法必须有一个或多个输出,输出是算法计算的结果,没有任何输出的程序是没有意义的。

(3)确定性:算法对每一步骤的描述必须确切而无歧义,以保证算法的实际执行结果精确地符合要求或期望。

(4)有穷性:算法必须在有穷步骤内完成任务,并且每一步骤都可以在有穷时间内完成。(5)可行性:算法中描述的操作都是可以通过已经实现的基本运算,执行有限次数来实现。

6.2.3 算法的评价

对于算法的评价有两个基本标准:时间复杂度和空间复杂度。

所谓时间复杂度,即执行这个算法需要多少时间。

所谓空间复杂度,即执行这个算法需要占用多少资源(可以理解为占用了多少计算机存储单元)。

6.2.4 算法的描述

计算机算法无非是将人脑抽象出的模型程序化,而求解问题的关键还是在于人类本身的思维。算法的描述是基于一种形式地表达

6.2.5 算法的表示

常用的描述工具有:流程图、N-S图、PAD图、伪码等。

1.流程图

流程图是算法表达最常用的一种方法。流程图是一种用程序框、流程线及文字说明来表示算法的图形。在程序框图中,一个或几个程序框的组合表示算法中的一个步骤,带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序。流程图中常用的元件

起止框表示一个算法的起始和结束,是任何流程图不可少的

输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置处理框赋值、计算。算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。

判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”

流程线连接程序框,带有控制方向

连接点连接程序框的两部分

2.伪代码

伪代码(pseudo code)也叫虚拟代码,是一种由自然语言和没有限定的多种编程语言元素混合而成的。介于自然语言和计算机语言之间。

6.3 程序设计语言及程序设计

6.3.1 程序设计语言

程序设计语言是指一组由关键字和语法规则构成的,并且可以被计算机所处理和执行的指令规则。其基本成分主要包括以下4种。

(1)数据成分。用以描述程序中所涉及的数据,如常量、变量、各种数据类型等。

(2)运算成分。用以描述程序中所包含的运算,包含运算符号和运算规则,有算术运算、逻辑运算、关系运算等。

(3)控制成分。用以描述程序中的控制构造,如顺序结构、选择结构和循环结构。

(4)传输成分。用以描述程序中数据的传输。

在程序设计语言的发展中,经历了如下几个阶段。

1.机器语言

机器语言是直接用二进制代码指令表达的计算机语言。。

2.汇编语言

汇编语言比机器语言直观,它的每一条符号指令与相应的机器指令有对应关系,同时又增加了一些宏、符号地址等功能。

机器语言和汇编语言同属于低级语言。

3.高级语言

高级语言提供给程序员的指令更像人类自然语言,它为计算机应用的普及起到了重要作用。例如,高级语言中的关键字Print或Write代表的命令,能够代替数行的汇编语言操作码或者冗长的机器语言的0、1指令序列。

用高级程序设计语言编程直观、方便,但计算机最终执行的还是二进制表示的机器指令,这中间需要编译程序或解释程序来做翻译工作。高级程序设计语言不再与具体的计算机硬件相对应,同一高级程序设计语言,只要给出不同的编译程序或解释程序,就可以用在不同类型的计算机上。这就是高级程序设计语言的通用性。高级语言又分为过程性语言、面向对象语言和专用语言。

(1)过程性语言

过程性编程语言适合于那些结构化设计的算法。用过程性语言编写的程序有一个起点和一个终点,程序从起点到终点执行的流程是直线型的。BASIC、COBOL、FORTRAN、C、Pascal 都属于过程性语言。

(2)面向对象语言

面向对象语言是建立在用对象编程方法的基础上的。程序被看成是正在进行通信的若干对

象的集合,程序设计就是定义对象、建立对象间的通信关系。面向对象的程序设计语言提供了类库,类库中定义了包括窗口类在内的各种各样的类供程序使用,从而使大型软件的开发变得容易。面向对象的程序设计语言有Visual Basic、C++、Java、Delphi等。(3)专用语言

专用语言是为特殊应用而设计的语言。通常有特殊的语法形式,面对特定的问题,输入结构及词汇表与该问题的范围密切相关。

专用语言针对特殊用途设计,一般应用面窄,翻译过程简便、高效,但与通用语言相比,可移植性和可维护性差。

4.第四代编程语言—4GL(Fourth-Generation Language)

使用广泛的第四代语言是数据库查询语言,它支持用户以复杂的方式操作数据库。流行的结构化查询语言(Structured Query Language,SQL)支持数据库的定义和操作,功能强大,简单易学。

6.3.2 程序设计过程

程序设计过程。

1.编写源程序

用合适的编辑软件进行相应语言源程序的书写。

2.编译/解释

编译就是用相应的编译器对源程序进行编译,产生计算机能够识别的目标文件。

3.链接

经过编译产生的目标文件与程序执行所需要的相关函数库。

4.发布

使其可以脱离编程环境独立运行。

6.4 程序设计方法

在此我们将以Visual Basic(简称VB)开发工具作为示范用例及平台。

VB 6.0又分三个不同版本:

(1)普及版(Learning):适合初学者及教学使用。

(2)专业版(Professional):适合专业程序开发人员使用。

(3)企业版(Enterprise):适合企业用户开发大型客户服务器应用程序。

6.4.1 结构化程序设计方法

结构化程序设计的主要思想是采用自顶向下、逐步细化的程序设计

方法,同时严格使用3种基本控制结构来构造程序。3种基本控制结构

是指顺序结构、选择结构和循环结构。计算机科学家Bohm和Jacopini

证明了任何简单或复杂的算法都可以由这3种基本结构组合而成。

1.顺序结构图6-4 顺序结构

相关文档
最新文档