内容正文:
第六章
数学与财经商贸
6.1
算法与程序框图
我们来看这样一个问题:
某同学在实习时加工了九个外观相同的零部件,其中有一个略重的次品,你能用天平(无砝码)将次品找出来吗?
算法与程序框图
6.1
观察
分析 把九个零部件按顺序排成一列,先将前两个放置在天平左右两边,若不平衡,则可找出次品;若平衡,则这两个都是合格的,再将剩下的零部件依次比较,就能找出次品.
根据以上思路,我们可以写出以下方法:
第一步:任取两个零部件放置在天平左右两边,若天平不平衡,则重的一边是次品;若天平平衡,则进行下一步.
第二步:拿下天平两边的零部件放在一边,在余下的零部件中取两个放在天平两边.
第三步:观察天平,若天平不平衡,则重的一边是次品;若天平平衡,则返回第二步继续操作.
算法与程序框图
6.1
抽象
一般地,在数学中,由有限多个步骤组成的求解某一类问题的通用的方法叫作算法,对于该类问题中的每个给定的具体问题,机械地执行这些步骤就可以得到问题的解答.
我们学过很多解题方法,从加、减、乘、除运算到解方程、画函数图像,碰到一个题目,如果能对号入座,归入学过的题型,便能依法炮制,顺利解决.这就是说,对于这类问题,我们已经掌握了它的算法.
实际上,计算机解决任何问题都要依赖于算法.只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能解决问题.同一个问题可能存在多种算法,一个好的算法,在转换成计算机程序后,能减少计算机运算次数,提高工作效率.
算法与程序框图
6.1
用上面找次品的算法称几次就可以找到次品零部件?你是否有更好的办法使得称量次数尽可能少一些?你还能举出一些算法的例子吗?与解决问题的一般过程相比,你认为算法具有哪些重要特征?
想一想
算法与程序框图
6.1
探索
明显地,算法步骤有明确的顺序性,某些步骤在一定的条件下才会执行,某些步骤也可能重复执行.为了清晰、直观地描述设计好的算法,我们可以采用画流程图的方法来表示.
下表列举了画流程图普遍采用的几个基本元件和它们表示的功能.
算法与程序框图
6.1
判断框(选择框)
流程线
连接点
根据给定条件判断,成立时在出口标 明“是”,不成立时标明“否”
连接程序框,表示流程方向
连接需分页的程序框图的两部分
名称
终端框(起止框)
图形
功能
输入、输出框
处理框(执行框)
表示一个算法的起始和结束
数据的输入或者输出
赋值、计算,传送结果
算法与程序框图
6.1
于是,对于上面找次品的问题,我们可以用图6.1-1表示一种优化的算法.
算法与程序框图
6.1
我们把像图6.1-1这样,用程序框、流程线以及文字符号说明等基本元件的组合来表示算法的图形称为程序框图.
用程序框图表示算法时,算法的逻辑结构呈现得非常清楚.
尽管算法千差万别,但都可以由顺序结构、条件结构、循环结构这三种基本逻辑结构通过组合和嵌套表达出来.
你能根据图6.1-1说出相应的算法步骤吗?
算法与程序框图
6.1
抽象
一个算法中,依次进行多个处理步骤的结构称为顺序结构,它是一种最简单、任何算法都不可缺的基本结构.
顺序结构的一般形式可以用程序框图6.1-2表示,其中是两个依次执行的步骤.
在一个算法中,先根据条件是否成立作出判断,再决定执行哪一种操作,从而使算法流程产生不同流向的结构称为条件结构.
算法与程序框图
6.1
条件结构的一般形式可以用程序框图表示为如下两种形式(图6.1-3和图6.1-4):
条件结构中都有一个判断框,框内注明判断的条件,条件成立时,执行步骤,条件不成立时,执行步骤或退出条件结构执行后面的步骤.
算法与程序框图
6.1
在算法中,从某处开始按照一定的条件重复执行某些步骤的结构称为循环结构,其中反复执行的步骤形成循环体.
循环结构的一般形式通常有两种,用程序框图分别表示如下(图6.1-5和图6.1-6):
算法与程序框图
6.1
图6.1-5所示的循环结构是先执行循环体,再判断条件是否成立,若条件户不成立,就继续执行循环体,直到条件成立时才终止循环,我们把这种循环结构称为直到型循环结构.
图6.1-6所示的循环结构是在每次执行循环体前都先判断条件户是否成立,若条件成立,就执行循环体,条件不成立时才终止循环,我们把这种循环结构称为当型循环结构.
算法与程序框图
6.1
循环结构中为什么都包含有条件结构?你能说出直到型循环结构和当 型循环结构的重要区别在哪里吗?
想一想
例
设计一个算法,计算,并用程序框图表示出来.
分析 按照加法法则,我们可以从左往右先计算,再把所得结果与相加,依次进行下去,直到99次加法计算后得出结果.显然这个过程包含重复操作的步骤,可以利用循环结构来实现.
算法与程序框图
6.1
解
算法为:
S1:赋初始值;
S2:若成立