算法的概念

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

每个语句块本身也可以是一个顺序结构, 因此一个顺序结构可以由许多顺序执行 的语句组成。
a A
B b
⒉ 分支结构 它根据给定的条件在两条可供选择的 分支中选择其中的一条执行。当条件成 立时,执行语句块A,否则执行语句块B。 执行完语句块A或语句块B后,都从b点 出口。因此就整个分支结构来讲,它仍 然只有一个入口(a) 和一个出口 (b)。
SET TALK ON RETURN PROCEDURE DISPERR && 显示错误信息 WAIT"不能构成三角形!" WINDOW; NOWAIT RETURN FUNCTION SOLVEAREA * 计算三角形面积自定义函数 PARAMETERS X,Y,Z P=(X+Y+Z)/2
AREA=SQRT(P*(P-X)*(P-Y)*(P-Z)) RETURN AREA
⒊ 模块化设计方法 模块化设计方法是指将一个复杂的 问题,分解成许多功能单一、相对独立 的模块,各模块之间按照层次结构联系 起来构成模块结构图。在模块结构图中, 每个模块用一个矩形框表示,框内写上 每个模块的名称,模块之间的调用关系 用带箭头的方向线表示。模块化设计方 法的核心是如何划分模块,产生模块结 构图。
成立 A<B
不成立
输出A和B值
输出B和A值
A
A
结 束
3.用伪代码表示 所谓伪代码表示是指用介于自然语言和 计算机语言之间的一种代码来描述算法。 用伪代码表示例4.1 的算法。 INPUT A,B IF A<B PRINT A,B ELSE PRINT B,A ENDIF
利用计算机处理问题的过程
对于不带参数的程序,其第一条可执行的 命令应为程序的执行部分。对于带参数 程序,其第一条可执行的命令必须是参 数说明命令PARAMETERS。参数说明命 令的格式如下: PARAMETERS <形式参数表> 该命令说明程序、过程或用户自定义函 数中所使用的全部形式参数,以便接收 程序、过程或用户自定义函数传来的数 据,它必须是“被调用程序”中的第一 条可执行命令。
⒉ 用流程图表示 流程图一般可分为传统流程图和结 构化流程图(N-S图)。 所谓传统的流程图是指用几何框、箭 头、连线以及文字说明相结合的一种图 形。用流程图表示算法不仅直观、灵活, 而且易于理解。
起始或终止框
计算处理框(过程)
条件判断框(决策)
输入输出框(数据)
流向或路径
连接点
开 始
输入两个整数A和B
⒈ 三种基本结构的N-S图符号 ⑴顺序结构 顺序结构用矩形框表示,有时为了 简便, 也可以将一个顺序结构写在一个 矩形框内。
A B
⑵分支结构 分支结构用带三角形的框来表示,若 三角形中的条件成立,则执行语句块A, 否则执行语句块B。
条件 成立 A B 不成立
⑶循环结构 循环结构用一个包含L形的矩形表示, 分当型循环结构和直到型循环。循环条 件放在L形框(或倒立L形框)中,重 复执行部分放在矩形框中。
4.3.2 结构化流程图 在结构化程序设计中,经常采用结 构化流程图来表示算法。结构化流程图 是在去掉传统流程图中的流程线的基础 上形成的,由美国计算机科学家I.Nasi和 B.Schneiderman 1973 年提出,因此又称 为N-S图。看N-S图就好比是看一 页书,从上到下看下来就全明白了。
当条件成立时执行 A A 直到条件成立
所谓结构化程序设计方法是指采用顺 序、分支和循环三种基本结构来实现算 法。按照结构化程序设计方法设计出的 程序结构良好,具有易读、易维护等优 点。自顶向下、逐步求精和模块化是结 构化程序设计方法中最典型、最具有代 表性的方法。 ⒈ 自顶向下的设计方法 自顶向下设计方法是一种从顶层开始, 向下逐层分解、逐步细化,直到最底一 层达到最简单的功能模块为止的方法。 这种方法能够使编程者思路清楚、
4.4 Foxpro程序的建立、运行和调试 4.4.1 Foxpro程序的一般结构 *PROG4_6.PRG的功能是已知三角形三边,求 三角形面积 SET TALK OFF &&执行结果不在屏幕上显示 A=3 B=4 C=5 P=(A+B+C)/2 S=SQRT(P*(P-A)*(P-B)*(P-C)) ?"三角形面积为:",S
a
a
不成立

件 成立 A 不成立 条
A
件 成立
b
b


直到型
两种循环结构的区别: ⑴执行情况不一样。当型结构是先判断 循环条件,当条件成立时,才执行语句 块A, 若循环条件一开始就不成立,则 语句块A一次也不执行。而直到型结构是 先执行语句块A,后判断循环条件,且语 句块A至少要执行一次。 ⑵循环结束条件不一样。当型结构是条 件不成立时结束循环,而直到型结构是 条件成立时结束循环。
算法的基本特征
⑴有穷性。一个算法应包括有限的操作步 骤,能在执行有穷的操作步骤之后结束。 ⑵确定性。算法的计算规则及相应的计算 步骤必须是唯一确定的,既不能含糊其 词,也不能有二义性。 ⑶可行性。算法中的每一个步骤都是可以 在有限的时间内完成的基本操作,并能 得到确定的结果 。
⑷数据输入。每个算法都要求有原始数据 输入,即给定计算初值。算法不同,输 入的原始数据可能不同,但缺少原始数 据的算法则是一个不完善的算法。 ⑸信息输出。一个算法至少要有一个有效 的信息输出,这就是问题求解的结果。
衡量一个算法好坏的标准是:
算法应当正确,易于阅读和理解, 实现算法所占存储空间要少,运算时间 短,实现方法简单可行等。
算法的表示方法
⒈ 用文字叙述形式表示 可以用中文或英文叙述的形式来描 述算法采用文字叙述形式表示算法通俗 易懂,但文字冗长,而且容易产生“歧 义”(即对同一段文字,不同的人可能 会有不同的理解)。因此,除了一些非 常简单的问题外,一般不采用文字叙述 形式来表示算法。
有条不紊地一步一步深入地工作,用较 短的时间设计出结构良好、可读性强、 可靠性较高的程序,并容易验证程序的 正确性,便于维护。 ⒉ 逐步求精设计方法 逐步求精设计方法是将一个抽象的 问题分解成若干个相对独立的小问题, 并逐级进行由抽象到具体,由粗到细, 由表及里不断进行精细化的程序设计方 法。每一步求精过程都将问题的算法进 一步细化,直到算法精细化到可以用三 种基本结构实现为止。
4.3 结构化程序设计概述
4.3.1 结构化程序的三种基本结构 结构化程序规定了三种基本的结构, 即顺序结构、分支结构和循环结构。 ⒈ 顺序结构 顺序结构是一种最简单、最基本的结构, 其特点是各部分按照出现的先后顺序执 行。它由A和B两个语句块组成,且仅有 一个入口(a)和一个出口(b)。最 简单的情况是每一语句块中只含有一条 不产生控制转移的执行语句。
用计算机所能接受的形式把解题的算 法用程序设计语言描述出来的工作叫程 序设计,它包括了大量的工作和许多具 体的步骤。其中这些步骤包括以下内容: ⑴分析问题。即明确实际问题的要求,给 定的数据有哪些,需要输出什么样的数 据,需要进行哪种处理。 ⑵确定求解方案。
⑶算法分析。根据处理方案,具体列出让 计算机如何进行操作的步骤(算法), 并进行算法的准确性和有效性分析,找 出合理的算法。 ⑷编写程序。拟定算法的步骤和说明后, 使用某种程序设计语言,以书面形式将 算法描述出来,所得到的编程结果就是 源程序。 ⑸上机调试运行程序。将编写好的源程序 输入计算机并调试、运行,如果程序是 正确的,应能得到预期的结果,如果得
上述三种结构化程序设计方法各有其 特点。逐步求精设计方法主要指一个程 序的设计过程,它符合人们逻辑推理和 思维的习惯。模块化设计方法和自顶向 下设计方法主要指一个比较大的系统的 设计过程,采取的是化整为零,各个击 破的方法。将问题分割成若干个子问题, 对子问题再进行分割,这样可将问题分 割成一个模块层次结构。
【功能】该命令终止程序、过程或用户自 定义函数的执行。若RETURN后不带任 何选项,则返回到调用程序中调用处的 下一条命令继续执行,当在命令窗口下 执行程序时将返回到命令窗口。如果 RETURN后带TO MASTER,则返回到 最高层调用程序。如果RETURN后加入 TO< 程序名>,则返回到由<程序名>所 指定的程序。在用户自定义函数的最后 通常用RETURN 命令将一个<表达式>的 值返回给调用程序。
通过以上几个程序例子可以看到: ⒈一个Foxpro程序是由一个主程序或者 一个主程序和若干个过程或自定义函数 构成 ⒉主程序、过程或用户自定义函数通常 包括三个基本部分,即参数说明部分、 执行部分和结束部分。 ⑴参数说明部分 Foxpro规定其程序可以有两种,即不 带参数程序和带参数程序,两者的主要 区别在于有无参数说明部分。
不到正确结果,应该检查前几步是否有 误,改正后再上机运行。 ⑹编写文档。编写文档是程序设计的必 要组成部分。从问题的提出开始一直到 程序运行结束,都应该全面、完整地编 写文档资料,内容包括技术文档资料和 使用文档资料,这是后期使用和维护程 序所必需的资料。 ⑺维护。程序所处理的各种数据是非常 宝贵的信息资源,其宝贵价值就在于信 息的真实性、准确性和有效性。要保证 信息的真实性和准确性,就需要及时地 进行增、删和更新等维护工作。
< 形式参数表>中的参数可以是任何内存变 量名或数组名,当使用多个形参时,参 数之间以逗号“,”分隔。在Foxpro中, 一次最多能传送24个参数。 ⑵执行部分 一个程序、过程或用户自定义函数 的执行部分是由若干条有序的可执行命 令组成的,它完成该程序、过程或自定 义函数的所有功能。通常把过程的执行 部分称为过程体,用户自定义函数的执 行部分称为函数体。
a
成立 条 A 件 不成立
B
b
⒊ 循环结构 循环结构也叫重复结构,即重复执行某 些操作。根据其执行情况和循环结束条 件的不同可分为当型循环(也称WHILE 型结构)和直到型循环(也称UNTIL型 结构)。当型循环结构,它是当满足某 个指定的条件时,反复执行语句块A,否 则不执行。直到型循环结构,它是反复 执行语句块A,直到条件满足为止。 它 们也只有一个入口(a)和一个出口 (b)。
⑶结束部分 在Foxpro中,一个程序、过程或用户 自定义函数可以有结束部分,也可以没 有结束部分。如果有结束部分,一般都 是通过执行一条“结束程序执行的命令” 来结束该程序、过程或用户自定义函数 的执行。Foxpro提供了以下四条结束程 序执行的命令: ①返回命令──RETURN 【格式】RETURN [<表达式>|TO MASTER|TO <程序名>]
算法的概念
• 算法是指解决给定问题的有穷操作步骤 的描述。 • 算法是计算机科学中的重要概念之一, 它指明了问题的求解过程,是对给定问 题解题方案的准确而完整地描述。
百度文库
【例4.1】给定任意两个整数,按从小到大 顺序排列。 解决这一问题的算法可描述如下: ⑴输入两个整数A和B; ⑵比较A和B的大小,若A<B,则分别输 出A和B,且计算到此结束,否则(A≥B), 分别输出B和A,且计算到此结束。
PARAMETERS A,B,C &&形式参数 SET TALK OFF P=(A+B+C)/2 S=SQRT(P*(P-A)*(P-B)*(P-C)) ?"三角形面积为:",S SET TALK ON *带参数程序
*PROG4_8.PRG PARAMETERS A,B,C SET TALK OFF IF A+B<=C OR A+C<=B OR B+C<=A *判断能否构成三角形 DO DISPERR && 调用过程 DISPERR ELSE ?"三角形面积为:", SOLVEAREA(A,B,C) *调用函数SOLVEAREA计算三角形面积 ENDIF
由三种基本结构(可以是其中的一 种、二种或三种)构成的程序,称为结 构化程序。一个结构化程序以及三种基 本结构中的每一种都应当具有以下特点: ⑴程序执行的路径只有一个入口和一个 出口,在入口和出口之间是一种基本方 盒或逻辑结构。 ⑵该结构中的任一个部分都存在着从入 口到出口的路径,换句话说,结构中每 一部分都可以被执行,不存在执行不到 的死块(程序段)。 ⑶没有死循环(永无休止的循环)。
相关文档
最新文档