当前位置:文档之家› 第6章 算法与程序设计

第6章 算法与程序设计

教案讲稿第六章算法与程序设计[旧课复习]:复习内容: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 顺序结构顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。

其流程如图6-4所示。

2.选择结构选择结构也称为分支结构,根据所列条件的正确与否选择执行路径,如图6-5所示。

VB 中分支结构的使用形式:(1)单行结构条件语句If …Then …Else 语句。

语法格式:If <条件> Then [<语句序列1>][ Else <语句序列2>]说明:① 条件可以是关系表达式、布尔表达式或数值表达式。

如果以数值表达式作条件,则非0值为真,0为假。

② 如果没有Else 子句,则[<语句序列1>]为必要参数,在 <条件>为True 时执行。

【例6-1】 输入三个数,按照从大到小的顺序排序,程序运行结果如图6-6所示。

代码如下:Private Sub Command1_Click()Dim a As Double, b As Double, c As Double, p As Doublea = Val(Trim(Text1.Text))b = Val(Trim(Text2.Text))c = Val(Trim(Text3.Text))If a < b Then p = a: a = b: b = pIf a < c Then p = a: a = c: c = p If b < c Then p = b: b = c: c = p Label5.Caption = "从大到小是:" & a & "," & b & "," & cEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub(2)If 语句的嵌套:即大的分支结构中完整包含小的分支结构。

语法格式:If <条件1> Then图6-6 三个数从大到小排序[语句列1]ElseIf<条件2> Then[语句列2]Else[语句列3]…End IfEnd If说明:① 如果If 语句中[语句列1]或[语句列2]本身又是一个If 语句,则称为If 语句的嵌套。

② Else 与If 配套原则为,就近且未配对,不能出现交错结构。

【例6-2】 已知如下分段函数,请输入x 的值,输出y 值,程序运行结果如图6-7所示。

代码如下:Private Sub Command1_Click()Dim x As Single, y As Singlex = Val(Text1.Text)If x >= 0 ThenIf x = 0 Theny = 0Elsey = 1End IfElsey = -1End IfText2.Text = Str(y)End SubPrivate Sub Text1_Change() Text2.Text = ""End Sub(4)多分支条件选择语句Select Case 。

特点:与If 语句的嵌套格式ElseIf 执行方式相似,<测试条件>从上至下匹配到第1个正确的[Case <表达式i>,执行语句列i 后退出分支结构,否则执行Case Else 部分并退出,如果没有Case Else 部分,则不作任何操作就结束选择。

语法格式为:图6-7 分段函数Select Case <测试条件>[Case <表达式1>[<语句列1>][Case <表达式2>[<语句列2>]…[Case Else[<其他语句列>]]End Select说明:①测试条件为必要条件,可以是任何数值表达式或字符串表达式。

相关主题