1.1算法与程序框图 ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 广播操图解是广播操的算法; • 菜谱是做菜的算法; • 歌谱是一首歌曲的算法; • 空调说明书是空调使用的算法等
算法学的发展
• 随着科学技术的日新月异,算法学也得到 了前所未有的发展,现在已经发展到了各个 领域.有遗传算法,排序算法,加密算法,蚁群 算法等,与生物学,计算机科学等有着很广泛 的联系,尤其是在现在的航空航天中,更是有 着更广泛的应用. 很多复杂的运算都是借助计算机和算法 来完成的,在高端科学技术中有着很重要的 地位.
解决问题
2
×
第一步, 令 f ( x) x 2 .给定精确度d. 第二步, 给定区间[a,b],满足f(a) · f(b)<0. ab 第三步, 取中间点 m . 2 第四步, 若f(a) · f(m) < 0,则含零点的区间为 [a,m]; 否则,含零点的区间为[m, b]. 将新得到的含零点的仍然记为[a,b] . 第五步, 判断[a,b]的长度是否小于d或者 f(m)是否等于0. 若是,则m是方程的近似 解;否则,返回第三步.
思考4:通过上述算法的两种不同表达方式的比 较,你觉得用程序框图来表达算法有哪些特点?
用程序框图表示的算法更加简练,直观,流向清楚.
开始 输入n i=2
思考:5:用程序框图来表示 算法,有几种不同的基本逻 辑结构? 顺序结构
求n除以i的余数r
i=i+1 i≥n或r=0?
是 否 否
循环结构
r=0?
算法的概念:
广义地说:为了解决某一问题而采取的方 法和步骤,就称之为算法。 在数学中,按照一定规则解决某一类问 题的明确和有限的步骤,称为算法。 现在,算法通常可以编成计算机程序, 让计算机执行并解决问题。这些程序或步
骤必须是明确和有效的,而且能够在有限步之 内完成.
没有软件的支持,计算机只是一堆废铁而已; 软件的核心就是算法 !
第三步, 用4除7,得到余数3.因为余数不为0, 所以4不能整除7. 第四步, 用5除7,得到余数2.因为余数不为0, 所以5不能整除7. 第五步, 用6除7,得到余数1.因为余数不为0, 所以6不能整除7.因此,7是质数.
应用举例
例1.(2)设计一个算法判断35是否为质数.
第一步, 用2除35,得到余数1.因为余数不为0, 所以2不能整除35. 第二步, 用3除35,得到余数2.因为余数不为0, 所以3不能整除35.
第三步, 用4除35,得到余数3.因为余数不为0, 所以4不能整除7. 第四步, 用5除35,得到余数0.因为余数为0, 所以5能整除35.因此,35不是质数.
任意给定一个大于1的整数n,试设计一个程序或步骤 对n是否为质数做出判定.
第一步:判断n是否等于2.若n=2,则n是质数; 若n>2,则执行第二步. 第二步:依次从2~(n-1)检验是不是n的因 数,即整除n的数,若有这样的数,则n不是质 数;若没有这样的数,则n是质数. •这是判断一个大于1的整数n是否为质数的 最基本算法. •用语言描述一个算法,最便捷的方式就是按 解决问题的步骤进行描述.每一步做一件事 情.
解决问题
当d=0.05时
a b m 1 2 1.5 1 1.5 1.25 1.25 1.5 1.375 1.375 1.5 1.4375 1.375 1.4375 1.40625 1.40625 1.4375 1.421875 1.40625 1.421875 1.4140625 1.4140625 1.421875 1.41796875 1.4140625 1.417969 1.41601563 f(m) 0.25 -0.4375 -0.109375 0.06640625 -0.02246094 0.021728516 -0.00042725 0.010635376 0.00510025 d 1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625
开始 输入n
思考2 : 为了使算法 的程序或步 骤表达得更 为直观,我们 更经常地用 图形方式来 表示它.
i=2
求n除以i的余数r
i=i+1 i的值增加 1仍用i表示 i≥n或r=0?
是 否 否
r=0?
是
n不是质数
结束
n是质数
程序框图又称流程图,是一种用规定的图形、 指向线及文字说明来准确、直观地表示算法的 图形. 通常,程序框图由程序框和流程线组成. 一个或几个程序框的组合表示算法中的一个步骤; 流程线是方向箭头,按照算法进行的顺序将程序 框连接起来.
.
第三步,计算 S = p( p - a )( p - b)( p - c) . 第四步,输出S.
思考3:上述算法的程序框图如何表示?
开始
输入a,b,c
p=
a + b+ c 2
S = p( p - a )( p - b)( p - c)
输出S 结束
顺序结构------理论迁移 例1 一个笼子里装有鸡和兔共m只,且 鸡和兔共n只脚,设计一个计算鸡和兔各有多 少只的算法,并画出程序框图表示. 算法分析:
2.算法是由一系列明确和有限的计算步 骤组成的,我们可以用自然语言表述一 个算法,但往往过程复杂,缺乏简洁性, 因此,我们有必要探究使算法表达得更 加直观、准确的方法,这个想法可以通 过程序框图来实现.
知识探究(一):算法的程序框图 思考1:“判断整数n(n>2)是否为质数”的 算法步骤如何? 第一步,给定一个大于2的整数n; 第二步,令i=2; 第三步,用i除n,得到余数r; 第四步,判断“r=0”是否成立.若是,则n 不是质数,结束算法;否则,将i 的值增加1,仍用i表示; 第五步,判断“i>(n-1)”是否成立,若是, 则n是质数,结束算法;否则,返回 第三步.
第三步:输出应交纳的水费y.
计算机解决任何问题都要依 赖于算法.只有将解决问题的过程 分解为若干个明确的步骤,即算法, 并用计算机能够接受的“语言” 准确地描述出来,计算机才能够解 决问题.
1.1.2
程序框图
问题提出
1.算法的含义是什么?
在数学中,按照一定规则解决某一 类问题的明确和有限的步骤称为算法.
评析:实际上,上述步骤就是在求 2的近似值.
与一般的解决问题的过程比较,算法有以下特 征: ①设计一个具体问题的算法时,与过去熟悉地 解数学题的过程有直接的联系,但这个过程必 须被分解成若干个明确的步骤,而且这些步骤 必须是有效的.
②算法要“面面俱到”,不能省略任何一个细 小的步骤,只有这样,才能在人设计出算法后, 把具体的执行过程交给计算机完成.
思考2:若一个三角形的三条边长分别为a,b, a + b+ c p = c,令 2 ,则三角形的面积 S = p( p - a )( p - b)( p - c) .你能利用这个公式 设计一个计算三角形面积的算法步骤吗? 第一步,输入三角形三条边的边长 a,b,c. 第二步,计算
a + b+ c p= 2
算法的特征
• 一.确定性:每一步必须有确切的定义。 • 二.有效性:原则上必须能够精确的运行。 • 三.有穷性:一个算法必须保证执行有限步 后结束
算法的优缺点
• 一.缺点:算法一般是机械的,有时需要进行 大量重复的计算. • 二.优点:算法是一种通法,只要按照步骤去 做,总能得到结果.
我们身边的算法
课本5页 1
练习一:任意给定一个正实数,设计一个 算法求以这个数为半径的圆的面积. 算法分析: 第一步:输入任意一个正实数r; 第二步:计算以r为半径的圆的面积S=πr2; 第三步:输出圆的面积.
课本5页 2
练习二:任意给定一个大于1的正整数n, 设计一个算法求出n的所有因数. 算法分析:
第一步:依次以2~(n-1)为除数去除n,判断 余数是否为0,若是,则是n的因数;若不是, 则不是n的因数.
x y 35 解方程 2 x 4 y 94
(1) (2)
(3) (4)
第一步, (1) 2 (2)得: -2 y 24 第二步, 解(3)得: y 12 第三步, (1) 4 (2)得: 第四步, 解(4)得: x 23
2 x 46
x 23 第五步, 得到方程组的解得 y 12
连接程序框
连接程序框图的两部分
开始 一般用i=i+1 表示. 输入n i=2
设n是一个大 于2的整数.
求n除以i的余数r
说明:i表示从2~(n-1) i=i+1 i的值增加 1仍用i表示 的所有正整数,用以 判断例1步骤2是否终 否 i≥n或r=0? 止,i是一个计数变量, 是 有了这个变量,算法 否 r=0? 才能依次执行.逐步 是 考察从2~(n-1)的所 n是质数 n不是质数 有正整数中是否有n 的因数存在. 结束
是
条件结构
n是质数
n不是质数
结束
知识探究(二):算法的顺序结构 思考1:任何一个算法各步骤之间都有明确的 顺序性,在算法的程序框图中,由若干个依 次执行的步骤组成的逻辑结构,称为顺序结 构,用程序框图可以表示为:
步骤n
?
在顺序结构中可能 会用到哪几种程序 框和流程线?
步骤n+1
S=
p(p - a)(p - b)(p - c)
思考3:基本的程序框和它们各自表示的功能?
图形符号 名称 终端框 (起止框) 输入、输 出框 处理框 (执行框) 判断框 流程线 连接点 功能 表示一个算法的起始 和结束 表示一个算法输入和 输出的信息 赋值、计算
判断某一条件是否成立,成立 时在出口处标明“是”或 “Y”;不”成立时标明“否” 或“N”.
应用举例
例2.用二分法设计一个求方程
x 2 0 ( x 0)
2
的近似根的算法.
探究解决
对于区间[a,b ]上连续不断、且 f(a)f(b)<0的函数y=f(x),通过不断地 把函数f(x)的零点所在的区间一分 为二,使区间的两个端点逐步逼近 零点,进而得到零点近似值的方法 2 叫做二分法. y x 2 ( x 0)
问题的提出
有一个农夫带一条狼狗、一只羊和 一筐白菜过河。如果没有农夫看管,则 狼狗要吃羊,羊要吃白菜。但是船很小, 只够农夫带一样东西过河。问农夫该如 何解此难题? 方法和过程: 1、带羊到对岸,返回; 2、带菜到对岸,并把羊带回; 3、带狼狗到对岸,返回; 4、带羊到对岸。
[问题1]请你写出解二元一次方程组的详细求解 过程.
解:y与x之间的函数关系为: (当0≤x≤7时) 1.2 x,
y 1.9 x 4.9 (当x>7时)
解:y与x之间的函数关系为: (当0≤x≤7时) 1.2 x,
y ( 当 x>7 时 ) 1.9 x 4.9
求该函数值的算法分析: 第一步:输入每月用水量x;
第二步:判断x是否不超过7.若是,则y=1.2x; 若否,则y=1.9x-4.9.
第二步:在n的因数中加入1和n;
第三步:输出n的所有因数.
练习三:为了加强居民的节水意识,某市制订了 以下生活用水收费标准:每户每月用水未超过 7m3时,每立方米收费1.0元,并加收0.2元的城 市污水处理费;超过7m3的部分,每立方米收费 1.5元,并加收0.4元的城市污水处理费,请你写 出某户居民每月应交纳的水费y(元)与用水量 x(m3)之间的函数关系,然后设计一个求该函 数值的算法.
• 科学家王小云主导破解两 大密码算法获百万大奖
•
杨振宁教授 为获得“求 是杰出科学 家奖”的山 东大学特聘 教授王小云 颁发了获奖 证书和奖金 100万元人民 币,表彰其 密码学领域 的杰出成就。
应用举例
例1.(1)设计一个算法判断7是否为质数.
第一步, 用2除7,得到余数1.因为余数不为0, 所以2不能整除7. 第二步, 用3除7,得到余数1.因为余数不为0, 所以3不能整除7.
x y 35 2 x 4 y 94
Baidu Nhomakorabea
(1) (2)
x y 35 解方程 2 x 4 y 94
第一步,由(1)得 x 35 y 第二步, 将(3)代入(2)得
(1) (2)
(3)
2(35 y) 4 y 94 (4) y 12 (5) 第三步, 解(4)得 第四步, 将(5)代入(3)得 x 23 x 23 第五步, 得到方程组的解得 y 12