当前位置:文档之家› 高二数学算法初步

高二数学算法初步


2、程序框图
解:
开始 输入a,b,c
p =(a+b+c)/2
S=[p(p-a)(p-b)(p-c)]1/2
ቤተ መጻሕፍቲ ባይዱ
输出S
结束
2、程序框图
(2)条件结构
例4:任意给定3个正实数,判断分别以这些实数为边长的三角 形是否存在。
思路:
1、条件:a+b>c且a+c>b且b+c>a
2、条件成立,存在该三角形,否则,不存在。
框图
1、算法的含义
例2、 用二分法求方程x2-2=0的近似根的算法。
总体思路:设定一个区间,包含方程的根,每次取区间的中点,改变 原区间的一个端点,以缩小区间,但始终保持该区间包含方程的根, 最后使区间缩小到非常小的程度,达到近似根的精度要求,则区间内 任意点都可以作为方程的根。 Step1:令f (x)=x2-2,取区间端点为x1=1,x2=2,则f (x1)<0, f (x2)>0; Step2:令m=(x1+x2)/2,判断f (m) =0 ? 若是,m即为所求,停止; Step3:否则,判断f (x1) · f (m) >0 ? 若成立,令x1= m ; 否则,令x2= m; Step4:判断| x1-x2 |<e (e=0.005;0.0005;0.00005等)? 若是, x1,x2之间的任意点均为满足条件的近似根; 否则,返回Step2重复进行。
1、算法初步
目标:了解算法的基本思想;培养使用算法 的思想进行思考与表达解决问题的能力。
内容:
1、算法的含义。
2、程序框图。 3、实现算法的程序。 4、典型的算法介绍。
1、算法的含义
算法:用计算机解决问题的某一类问题的程 序或步骤,且在有限步内完成。
理解:
1、算法是一种解决问题的过程和步骤。
2、算法是解决某一类问题的。 3、算法具有某种意义上的通用性和普适性。 4、算法是与计算机对话的一种思维方式。 5、算法必须有限步完成。
2、程序框图
框图:又称流程图,是表达算法的重要工具, 借助框图,人们可以清晰而条理地表达思想。
理解:
1、框图的表现形式:程序框和流程线的组合形式。
2、程序框和流程线是一种形式规范,好的形式规范,是交 流重要前提。 3、通过框图将解题思想表达为计算机的“思维”习惯。
例1的框图
开始
输入n 否 n>2? flag=1 d=2 d整除n? 否
Step2:令flag=1; Step3:1)d=2; 2)d整除n ? 21)是,flag=0; 22)否,d自增加1(d=d+1); 3)d<=n-1且flag=1 ? 31)是,重新判断第2)步(即转2)步); 32)否,下一步;
Step4:flag=1 ? 41)是, n是质数;
42)否, n不是质数。
Step3:依次从2~n-1循环检验是否为n的因数,在某一步,若是n的因数, 则令flag=0,中途直接停止即可,并作出判断,n不是质数;
Step4:如果循环检查完2~n-1中的每一个数,flag=1仍然成立,则可以 做出判断, n是质数。
1、算法的含义
例1、详细步骤:
Step1:输入n,如果n=2,则n是质数,结束;若n>2,执行第二步;
因式分解的方法行不行? 不具有通用性!

=b2-4ac; p=-b/2a;q= ||1/2/2a >=0 是 x1=p+q; x2=p-q;
x1=x2?
否 输出不等 实根x1,x2 无实根
两个相等 实根x1,x2
结束
1、算法的含义
例1 任意给定一个大于1的整数n,试设计一 个算法步骤对n是否为质数做出判断。
1、算法的含义
举例:求一元二次方程ax2+bx+c=0的实根。 用算法的思想怎样来求?(全解p7例三)
解:
Step1:确定a,b,c Step2:计算判别式 Step3:判别的符号 Step4:三种结果 1)无实根; 2)有两个相等实根; 3)有两个不等实根。 Step5:输出实根

开始
输入a,b,c

flag=0 是 d<n-1且flag=1? 否 flag=1? 是 n是质数 n不是质数 否 d=d+1
结束
返回
例2的框图
开始
f (x)=x2-2 输入初值x1,x2,误差e
m=(x1+x2)/2 f (m)=0? 否 是
f (x1) f (m)>0?
是 x1=m 否 | x1-x2 |<e? 是 输出m

x2=m
结束
返回
2、程序框图
通过框图,算法的逻辑结构表现得 非常清楚,通常有三种结构:
1.顺序结构; 2.条件(选择)结构; 3.循环结构。
2、程序框图
(1)顺序结构
例3:已知三角形的三边边长为2,3,4,计算面积。
思路: 1、秦九韶面积公式:S=[p(p-a)(p-b)(p-c)]1/2 2、其中,p=(a+b+c)/2 解决: 1、输入边长a,b,c,计算p的值。 2、按公式计算S,输出S。
1、算法的含义
例如:枚举法。 x1,x2,x3,x4,x5为0-999之间的整数,求满足 x1+x2+x3+x4+x5=2050的条件下,乘积 x1· x2· x3· x4· x5 达到最大。 解:计算机枚举出所有可能的组合 (1000)5=1015,现有计算机计算约为200多年。 而实际上,可以找到算法算出,当 x1=x2=x3=x4=x5=410时,x1· x2· x3· x4· x5 达到 最大。
解决:
1、输入边长a,b,c,判断思路1中的条件。 2、根据思路2中的结论,输出结论。
总体思路:如果n大于2,将n依次除以2~n-1,检查每一次是否整除, 若某一次整除,则n不是质数,否则,全部检查完,仍没有整除的情况, 则n是质数;n=2,直接判断是质数。 Step1:输入n,如果n=2,则n是质数;若n>2,执行第二步; Step2:令flag=1,标记flag区分是否存在整除的情况;
框图
1、算法的含义
f(x)=x2-2
x1=1
1.25 1.375 1.5 x2=2
1、算法的含义
小结:算法是“傻瓜式”的,即算法要 “面面俱到”,不能省略任何一个细小的 步骤,只有这样,才能在设计出算法后, 把具体的执行过程交给计算机完成。 但,算法有“好”与“不好” 之分,“好” 的算法可以节约计算机的执行时间,“不 好” 的算法占用大量的计算机时间。
相关主题