- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例3:设计一个计算1+2+3+……+100的值析:
各步骤有共同的结构:
第1步:0+1=1; 第(i-1)步的结果+i=第i步的结果
第2步:1+2=3; 第3步:3+3=6; 第4步:6+4=10
过程.
x 2y 1 ①
2x y 1 ②
第一步:②-①×2得: 5y=3
③
第二步: 解③得: y 3
第三步:
将
y
3 5
5 代入①,解得
x
1 5
.
对于一般的二元一次方程组
aa12xx
b1 y c1 b2 y c2
其中 a1b2 a2b1 0也可以按照上述步骤求解.
说明:
(1)事实上算法并没有精确化的定义.
(2)算法虽然没有一个明确的定义,但其特点 是鲜明的,不仅要注意算法的程序性、有限 性、构造性、精确性的特点,还应该充分 理解算法问题的指向性,即算法往往指向 解决某一类问题,泛泛地谈算法是没有意 义的。
算法学的发展
• 随着科学技术的日新月异,算法学也得 到了前所未有的发展,现在已经发展到了各 个领域.有遗传算法,排序算法,加密算法,蚁 群算法等,与生物学,计算机科学等有着很广 泛的联系,尤其是在现在的航空航天中,更是 有着更广泛的应用.
很多复杂的运算都是借助计算机和算 法来完成的,在高端科学技术中有着很重要 的地位.
• 科学家王小云主导破解两大 密码算法获百万大奖
• 杨振宁教授为获得“求是杰出科学家奖” 的山东大学特聘教授王小云颁发了获奖证书 和奖金100万元人民币,表彰其密码学领域 的杰出成就。
•
例1:任意给定一个大于1的整数n,试设计一个程 序或步骤对n是否为质数做出判定.
第三步:输出应交纳的水费y.
作业:
课本P6页T2 (只需用自然语言写出算法步骤)
1.1.2 程序框图
学习目标:(1)在具体问题的解决过程中,掌握基本 的程序框图的画法,理解程序框图的三种基本逻辑 结构---顺序结构、条件结构、循环结构。
(2)通过模仿、操作、探索,经历通过设计程序框 图表达解决问题的算法的过程。
分析:请回顾这个问题的解题过程.
算法分析:
第一步:判断n是否等于2. 若n=2,则n是质数;
若n>2,则执行第二步.
第二步:依次检验2~(n-1)这些整数是不是n的 因素,即是不是整除n的数.若有这样的数,则n不是 质数;若没有这样的数,则n是质数.
说明:用语言描述一个算法,最便捷的方式就是按 解决问题的步骤进行描述.每一步做一件事情.
第三步:若f(a) f (m)>0,则令a=m;否则,令b=m.
第四步:判断|a-b|<ε是否成立?若是,则a或b为满 足条件的近似根;若否,则返回第二步.
点评: (1)上述算法也是求 2 的近似值的算法.
(2)与一般的解决问题的过程比较,算法有以下 特征:
①设计一个具体问题的算法时,与过去熟悉地 解数学题的过程有直接的联系,但这个过程必 须被分解成若干个明确的步骤,而且这些步骤 必须是有效的.
解:y与x之间的函数关系为:
1.2x, (当0≤x≤7时) y 1.9x 4.9(当x>7时)
解:y与x之间的函数关系为:
1.2x, (当0≤x≤7时) y 1.9x 4.9(当x>7时)
求该函数值的算法分析:
第一步:输入每月用水量x;
第二步:判断x是否不超过7.若是,则y=1.2x; 若否,则y=1.9x-4.9.
②算法要“面面俱到”,不能省略任何一个细 小的步骤,只有这样,才能在人设计出算法后, 把具体的执行过程交给计算机完成.
计算机解决任何问题都要依 赖于算法.只有将解决问题的过程 分解为若干个明确的步骤,即算法, 并用计算机能够接受的“语言” 准确地描述出来,计算机才能够解 决问题.
练习一:任意给定一个正实数,设计一个 算法求以这个数为半径的圆的面积. 算法分析:
开始 输入n i=2
设n是一个大 于2的整数.
求n除以i的余数r
说明:i表示从2~(n-1) 的所有正整数,用以
i的值增加i=1i+仍1 用i表示
判断例1步骤2是否终 止,i是一个计数变量, 有了这个变量,算法 才能依次执行.逐步 考察从2~(n-1)的所 有正整数中是否有n
i≥n或r=0?
是
r=0?
例2:用二分法设计一个求方程x2-2=0的近似根
的算法.
算法分析:
设所求近似根与精确解的差的绝对 值不超过ε=0.005.
第一步:令f(x)=x2-2. 因为f(1)<0,f(2)>0,
所以设a=1,b=2.
第二步:令 m a b , 判断f(m)是否为0. 若是,则m
2
为所求; 若否,则继续判断f(a) f(m)大于0还是小于0.
或连“N接”.程序框
连接点 连接程序框图的两部分
开始 输入n i=2
用程序框图来表示算法,有 三种不同的基本逻辑结构:
顺序结构
求n除以i的余数r
i=i+1
i≥n或r=0?
是
r=0?
是
n不是质数
否 否
n是质数
循环结构 条件结构
结束
程序框图的三种基本的逻辑结构
顺序结构 条件结构 循环结构
(1)顺序结构-----是由若干个依次执行的处理 步骤组成的.这是任何一个算法都离不开的 基本结构.
输出S 结束
画出:已知三角形的三 边长a,b,c,求它的面积 的程序框图.
开始 输入a,b,c p abc
2
S p( p a)( p b)( p c)
输出S 结束
返回
已知三角形三边长分别为a,b,c,则三角 形的面积为
S p( p a)( p b)( p c)
其中
p
a
b 2
c
这个公式被称为海伦—秦九韶公式.
返回
(2)条件结构---在一个算法中,经常会遇到一 些条件的判断,算法的流向根据条件是否成 立有不同的流向.条件结构就是处理这种过 程的结构.
例2:任意给定3个正实数,设计一个算法,判断分 别以这3个数为三边边长的三角形是否存在.画 出这个算法的程序框图.
第三步:输出应交纳的水 费y.
程序框图
开始
输入x 否
0<x≤7?
是 y=1.2x
y=1.9x-4.9
输出y 结束
例4.画程序框图, 对于输入的x值, 输出相应的y值.
0(x 0) y 1(0 x 1)
x(x 1)
开始
程序框图
输入x
是 x<0?
否 是
0≤x<1? 否
y=x
第一步:输入任意一个正实数r; 第二步:计算以r为半径的圆的面积S=πr2; 第三步:输出圆的面积.
练习二:任意给定一个大于1的正整数n, 设计一个算法求出n的所有因数.
算法分析:
第一步:依次从2~(n-1)为除数去除n,判断 余数是否为0,若是,则是n的因数;若不是, 则不是n的因数.
第二步:在n的因数中加入1和n;
流程线是方向箭头,按照算法进行的顺序将程序
框连接起来.
基本的程序框和它们各自表示的功能如下:
图形符号
名称 终端框 (起止框) 输入、输 出框 处理框 (执行框)
判断框
流程线
功能 表示一个算法的起始 和结束 表示一个算法输入和 输出的信息
赋值、计算
判断某一条件是否成立,成立 时在出口处标明“是”或 “Y”;不”成立时标明“否”
解:y与x之间的函数关系为:
1.2x, (当0≤x≤7时) y 1.9x 4.9(当x>7时)
解:y与x之间的函数关系为:
y
1.2x, 1.9x
4.9
(当0≤x≤7时) (当x>7时)
算法分析:
第一步:输入每月用水量 x;
第二步:判断x是否不超 过7.若是,则y=1.2x;若 否,则y=1.9x-4.9.
作业:
课本P20页练习, P21页A组T1; (画出程序框图)
(3)循环结构---在一些算法中,也经常会出 现从某处开始,按照一定条件,反复执行某 一步骤的情况,这就是循环结构.
反复执行的步骤称为循环体.
注意:循环结构不能是永无终止的“死循 环”,一定要在某个条件下终止循环,这 就需要条件结构来作出判断,因此,循环 结构中一定包含条件结构.
算法分析:
第一步:判断n是否等于2. 若n=2,则n是质数;
若n>2,则执行第二步.
第二步:依次检验2~(n-1)这些整数是不是n的 因素,即是不是整除n的数.若有这样的数,则n不是 质数;若没有这样的数,则n是质数.
为了使算法的程序或步骤表达得更为直观,我 们更经常地用图形方式来表示它.
一般用i=i+1 表示.
算法分析:
第一步:输入3个正实数a,b,c;
第二步:判断a+b>c,a+c>b,b+c>a是否同时成立, 若是,则能组成三角形;若否,则组不成三角形.
程序框图: 开始
输入a,b,c
a+b>c,a+c>b,b+c>a是否
否
同时成立?
是
存在这样的 三角形
不存在这样的 三角形
结束
例3:为了加强居民的节水意识,某市制订了以 下生活用水收费标准:每户每月用水未超过 7m3时,每立方米收费1.0元,并加收0.2元的城 市污水处理费;超过7m3的部分,每立方米收费 1.5元,并加收0.4元的城市污水处理费,请你写 出某户居民每月应交纳的水费y(元)与用水量 x(m3)之间的函数关系,然后设计一个求该函 数值的算法,并画出程序框图.