(共3张PPT)
例10 斐波那挈数列表示这样一列数:0,1,1,2,3,5,…后一项等于前两项的和,请你设计一个算法流程,输出这个数列的前50项。
分析:设置50个变量:A1,A2,A3,…,A50,表示菲波契数列的前50项。
这相邻的三项为Ai-2,Ai-1,Ai,则它们之间存在关系:
Ai= Ai-2+Ai-1
只要已知数列的前两项,通过反复计算,
就能所有的都输出来,因此可能循环结
构来描述这个算法,循环体如下:
Ai= Ai-2+Ai-1
输出Ai
1.循环条件:利用下标i做变量,
利来i控制循环,初始条件为3
2.循环体:反复利用Ai =Ai-2+Ai-1
输出Ai
3终止条件:i>50
还有其他的算法吗?
输出A1,A2
开始
A1=0,A2=1
i=3
输出Ai
Ai=Ai-1+Ai-2
结束
i>50
i=i+1
否
是
在上述算法中,一共设置50个变量A1,
A2, …,A50,这些变量在完成输出操作后,
不再进行任何操作,因此没有保留的必要.可以采用除了i之外,只设3个变量:A1,A2,A3,完成变量输出操作后,及时调整变量的值,节约空间
A1=0,A2=1;输出A1,A2;
A3=A1+A2,输出A3
前三项已经输出,可以释放这3个变量代表的变量
赋予变量新的数值
A1=A2;
(用A1表示数列的第2项)
A2=A3;
(用A2表示数列的第3项)
A3=A1+A2;输出A3
(此时输出的是数列的第4项)
输出A1,A2
开始
A1=0,A2=1
i=3
输出A3
A3=A1+A2
结束
i>50
i=i+1
否
是
A1=A2,A2=A3(共17张PPT)
i) 顺序结构
ii) 选择结构
A
B
p
Y
N
A
B
流 程 图
北京取得2008奥运会主办权。国际奥委会对遴选出的五个城市进行投票表决的操作程序:首先进行第一轮投票,如果有一个城市得票超过一半,那么这个城市取得主办权;如果没有一个城市得票超过一半,那么将其中得票最少的城市淘汰;然后重复上述过程,直到选出一个城市为止。你能利用算法语言叙述上述过程吗?
情景问题
奥运会主办权投票过程的算法结构:
S1 投票;
S2 统计票数。如果有一个城市得票超过一半,那么这个城市取得主办权,转入S3;否则淘汰得票数最少的城市,转入S1;
S3 宣布主办城市。
输出该城市
投票
有一城市过半票
开始
淘汰得票
最少者
结束
奥运会主办权投票表决流程图
是
否
开始
输入a=45647
a=a(1+2.8%)
a=a(1+2.8%)
a=a(1+2.8%)
a=a(1+2.8%)
a=a(1+2.8%)
输出a
结束
在一些算法中,经常会出现从某处开始,按照一定的条件,反复执行某一处理,这样的结构就是循环结构,反复执行的处理步骤称为循环体
循环体
例1设计一种算法,输出1000以内的能被3和5整除的所有整数,画出流程图
分析:
1.这个问题很简单,凡是能被3和5整除的整数都是15的倍数由于1000=15×66+10,因此在1000内,这样的数共有66个。
2.这种用前面的顺序结构和选择结构来完成,这样会非常复杂和费时,因此我们将它和变量与赋值联系起来,循环结构就是用来处理这种问题的
解
引入变量a表示待输出的数,则
a=15n (n=1,2,…,66)
n表示从1到66,反复输出a赋值,就能输出1000内所有能被3和5整除的正整数。
算法流程如图:
②
①
③
开始
n=1
a=15n
n=n+1
输出a
n>66
结束
否
是
像这样的算法结构称为循环结构,其中反复执行的第②部分称为循环体
变量n控制着循环的开始和结束的变量,称为循环变量,第①部分就是赋予循环变量初始值,预示循环开始
第③部分判断是继续执行循环体,称为循环的终止条件
例8 结合这个流程图思考下列问题:
1.变量y的作用?
2.这个算法的循环体是
哪一部分,功能是什么?
3.这个算法的处理功能
是什么
开始
y=2000
4整除y
100整除y
输出“y不是闰年”
400整除y
输出“y是闰年”
输出“y是闰年”
输出“y不是闰年”
y=y+1
y >2500
结束
否
是
否
是
否
否
是
①
②
③
P91 例3
请设计一个算法,从5个不同的数中找到最大数,用框图描述这个算法
结束
开始
输入a1, a2, a3, a4, a5
输入b
b< a2
b= a2
是
否
b< a5
b= a5
是
否
b< a4
b= a4
是
否
b< a3
b= a3
是
否
b= a1
例9 设计算法,求100个数中的最大数,画出算法流程图
1、引入变量i,b,i是循环变量,
b用来赋值(记较大数)
2、反复操作部分:(循环体)
比较b与ai,如果b< ai,则b= ai,
否
是
b=ai
b
b3、终止条件:i>100
开始
输入a1,a2, …,a100
i=2
否
是
b=ai
i>100
输出b
结束
b=a1
i=i+1
否
是
bb开始
S=0
i=1
s=s+i
i=i+1
输出s
i>4
结束
是
否
P99 请运行几步看一看,指出该循环结构的循环体、循环变量和循环的终止条件
1、算法的循环结构流程图,它的一般形式为:
(1)确定循环变量和初始条件
(2)确定循环体,确定算法中反复执行的部分
(3)确定循环的终止条件
2.循环结构要在某个条件下终止循环,这就需要条件结构来判断。因此,循环结构中一定包含条件结构,但不允许“死循环”。
3.画循环结构流程图前:
①确定循环变量和初始条件;
②确定算法中反复执行的部分,即循环体;
③确定循环的终止条件
循环结构的三要素
循环变量,循环体、循环的终止条件。(共24张PPT)
教学目标:
教学重点:
让学生通过模仿操作,掌握for语句和repeat语句.
通过实例,使学生理解循环语句的表示方法,结构和用法,进一步体会算法的基本思想.
教学难点:
将程序框图转化为程序语言,编写正确的程序语言
教学方法:
讲练结合法
突破重难点的方法:
让学生通过模仿,练习,掌握for语句,repat语句书写格式,体会其内在的逻辑关系.
1.指出下图中的循环变量,循环体,循环终止条件
2.画出循环结构的流程图的基本模式
否
开始
n:=1
a:=15n
输出a
n:=n+1
n>66
结束
是
变量n控制着循环的开始和结束,称为循环变量
反复执行的部分,称为循环体
此用于判断是否继续执行循环体,称为循环的终止条件
循环变量=初始值
循环体
循环变量=循环变量的后继
循环变量>终值
是
否
循环结构是算法中的基本结构,for语句是表达循环结构最常见的语句之一,它适用于预先知道循环次数的循环结构.
for语句的一般形式是:
For 循环变量=初始值 to 终值
循环体
Next
菲波拉契数列是这样的一列数0,1,1,2,3,5,8,13,21,34,55……..,后一列数等于前两项的和.设计一个算法,输出菲波拉契数列的前50项,使用for语句描述该算法.
解: f1=0, f2=1;
for i=3 to 50
f3=f1+f2
输出f3
f1=f2;
f2=f3;
Next.
循环变量
初始值
终值
循环体
i>50
i=3
i=i+1
结束
Y
N
f1=0 f2=1
开始
f3=f1+f2
f1=f2 f2:= f3
输出f1, f2
输出f3
for语句执行的程序:
确定循环变量, 对其赋初始 值,与终值比较,若小于或等于终值,则执行循环体,然后循环变量的值加1,继续比较,直到循环变量的值超过终值,则停止执行循环体.
1.用for语句输出500以内能被4整除的正整数.
解:for i:=1 to 125 do
begin
A:=4*i;
end.
输出A;
分析:500以内能被4整除的正整数有500÷4=125个
否
开始
i:=1
a:=4*i
输出a
i:=i+1
i>125
结束
是
2.用循环语句写出计算
值的一个程序.
for i=1 to 1000 do
begin
end.
输出S;
S= S + ;
解: S=0
3.阅读下列用for语句写出的算法,说明该算法的处理功能.
S:=0;
T:=1;
for i:=1 to 20 do
begin
S:=S+i
T:=T*i
输出S
输出T
这个算法实际上是求和
S=1+2+3+…+20
及求积
T=1×2×3×…×20
这两件事情.
end.
在一些循环结构中,预先不知道循环的次数,要根据其它形式的终止条件停止循环,在这种情况下一般用repeat语句
如何寻找满足 1×2×3×4×…×n>10000
条件的最小整数
repeat语句的一般形式为:
repeat <循环体>
until <终止条件为真>
解: s:=1;
repeat
until s>10000;
i:=1;
i:=i+1;
s:=s*i;
输出i-1
循环体
终止条件
2. 用repeat语句描述判断一个数P是否为素数的算法.
解: i:=1;
repeat
i:=i+1;
until i整除p
if i>
then输出“P是素数”
else输出“P不是素数”
if i≥p
then输出“P是素数”
else输出“P不是素数”
repeat语句的执行过程:
先执行一次循环体,然后对until后面的条件进行判断,若条件不满足,则返回执行循环体,再进行条件判断,直到条件满足时停止循环.
1.求平方值小于1000的最大整数.
解:j:=1;
repeat s:=j*j;
j:=j+1;
until s ≥ 1000
输出 j-2
2.求从1到N连续个自然数的积,使求得的积最大但又小于1010.
解:j:=2,p:=1;
repeat
p:=p*j;
if p< 1010;
then j:=j+1;
until p≥ 1010;
输出p/j-1.
3.用repeat语句描述二分法求方程的近似解.(课本例5)
4.中华一题P547,8,9
1.for语句一般形式;
2.repat语句一般形式.
作业:
1.书本P136练习 2; P137 B组1.
2.(选做)P137 B组3.
解:
m:=0;
n:=0;
l:=0;
else if ai ≥60 then n:=n+1
else l:=l+1
if ai≥85 then m:=m+1;
end.
for i:=1 to 40 do;
begin
输出 m,n,l
输入ai(共13张PPT)
§
2 算法框图的基本结构及设计
2.2 变量与赋值
结束
开始
输入a1, a2, a3, a4, a5
将a1与a2比较,大数记作b
将b与a5比较,大数记作b
将b与a4比较,大数记作b
将b与a3比较,大数记作b
输出b
例3 请设计一个算法,从5个不同的数中找到最大数,用框图描述这个算法
结束
开始
输入a1, a2, a3, a4, a5
输入b
b< a2
b= a2
是
否
b< a5
b= a5
是
否
b< a4
b= a4
是
否
b< a3
b= a3
是
否
b= a1
例4 用赋值语句写出下列算法,并画出框图:摄氏温度C为23.5℃,将它转换成华氏温度F,并输出。已知F=
开始
a:=1
b:=a+3
输出b
结束
开始
C:=23.5
F:=9/5C+32
输出F
结束
华氏温度
摄氏温度
例5 经过市场调查分析得知,1999年第一季度内,某地区对某件商品的需求量为12000件,为保证商品不脱销,商家在月初时将商品按相同数量投放市场。已知年初商品的库存量为50000件,用S表示商品的库存量,请设计一个算法,求出第一季度结束时商品库存量,并画出框图
结束
开始
输出S
初始库存量
S:=50000
S:=S-4000
S:=S-4000
S:=S-4000
1月底库存量
2月底库存量
3月底库存量
例6 有关专家建议,在未来的几年,中国的通货膨胀率保持在3%左右将对中国经济的稳定有利无害。所谓通货膨胀率为3%,指的是每年消费品的价格增长率为3%,在这种情况下,某种品牌的钢琴2004年的价格是10000元。请用框图描述这种钢琴今后4年的价格变化情况,并输出4年后钢琴的价格
结束
开始
输出S
2004年的钢琴价格
P:=50000
S:=S-4000
S:=S-4000
S:=S-4000
2005年的钢琴价格
2006年的钢琴价格
2007年的钢琴价格
S:=S-4000
2008年的钢琴价格
3、设置变量a,b,c,d分别分表示用餐的红、黄、蓝、绿的盘子的个数,变量p表示金额,则这个问题的算法为:
输入a,b,c,d;
p=5a+8b+10c+12d;
输出p.
课本第93页:练习1
开始
h=h0
输出 h
结束
h=0.85h
h=0.85h
h=0.85h
h=0.85h
开始
输出s
结束
s=s(1+2.8%)
s=45647
s=s(1+2.8%)
s=s(1+2.8%)
s=s(1+2.8%)
s=s(1+2.8%)
画流程图的规则:
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画;
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框是具有超过一个退出点的唯一的符号;
(4)一种判断是“是”与“否”两分支的判断,而且有且仅有两个结果;另一种是多分支判断,有几种不同的结果;
(5)在图形符号内描述的语言要非常简练清楚。(共16张PPT)
我们已经学习了用自然语言和框图来描述算法,要使算法在计算机上实现,还得借助程序语言.程序语言的种类很多,但是,有一些基本语句是所有语言都要使用的,例如,输入语句、输出语句、赋值语句、条件语句和循环语句。这些语句在程序语言中是最重要的和最基本的。输入输出语句很好理解,赋值语句前面已作了介绍,这一节主要介绍条件语句和循环语句。
*
*
在算法中,选择结构是一种基本结构,条件语句是表达选择结构最常用的语句。
A
B
p
Y
N
*
例1:通过计算,根据输入x的值,计算y的值
写出算法步骤,写出条件语句。
步骤:(1)输入x;
,则y=
(2)若
(3)若
,则y=
(4)输出y.
解:这里(2)、(3)步的选择部分可以用条件语句表示:
If
Then
Else
y=x2+1
y=x2-1
End If
*
结束
开始
输入x
输出y
是
否
一般地,对于形如右方流程图
的算法,都可以用下列语句来
表示:
假
真
条件
语句2
语句1
If
条件
Then
语句1
Else
语句2
计算机在执行if-then-else语句时,首先判断条件,当条件成立时,执行then后的语句,如果条件不成立,就执行else后的语句
End If
*
*
1、如果把题中的分段函数变成下面的函数呢
2、如果出现右图的结构怎么办?
输出A
结束
开始
输入A,B,C
A>B
A=B
A=C
A>C
否
否
是
是
想一想:
在某些情况下,也可以只使用IF—THEN语句:(即IF—THEN 格式)
*
满足条件
是
否
语句
IF 条件 THEN
语句
END IF
例2 在音乐唱片超市里,每张唱片售价25元.顾客如果
购买5张以上(含5张)唱片,则按照九折收费;如果顾客
购买10张以上(含10张)唱片,则按照八五折收费.请用
语句描述完成计费工作的算法,画出算法流程图.
解 假如用变量a表示顾客购买的唱片数,用变量C
表示顾客要缴纳的金额.则这个算法可以表示为:
1、输入a.
2、对a进行判断:
(1)若0(2)若
5
a<10
,则C=22.5a;
a
(3)若
10
,则C=21.25a.
3、输出C .
*
条件语句:
输入a;
If
a<5 Then
C=25*a
If
Then
C=22.5*a
Else
C=21.25*a
输出C.
开始
输入a
输出C
结束
C=25a
C=21.25a
是
否
否
是
C=22.5a
Else
End If
End If
一个条件语句
一个条件语句
复合If语句
*
*
开始
输入x
x≥0
X>0
输出y
结束
是
否
是
否
实际上,对于上面的形式,用形如下面所示流程图描述的算法都可以用下面的复合if语句来表示:
条件1
条件2
语句3
语句2
语句1
假
真
真
假
If <条件1> Then
<语句1>
Else
If <条件2> Then
<语句2>
Else
<语句3>
End If
End If
*
广州市出租车公司规定:2.3公里及2.3公里以内为起步价7元,若超过2.3公里,超过部分按每公里2.6元收费,画出流程图,用条件语句描述一个乘客所付车费的算法,
y=7
Else
y=7+2.6(x-2.3)
开始
输入x
x≤2.3
y=7+2.6(x-2.3)
y=7
输出y
结束
是
否
If x ≤ 2.3 Then
输入x;
输出y
End If
*
Input “x=”;x
Print “y=”:y
End
开始
4整除y
100整除y
输出y是闰年
输出“y 不
是闰年”
400整除y
输出“y是闰年”
输出“y不是闰年”
结束
否
是
是
否
输入y
1.请试着用复合if语句表示
闰年问题的算法.
*
输入y;
If 4不能整除y Then
输出y不是闰年
Else
If 100不能整除y Then
输出y是闰年
Else
If 400能整除y Then
输出y是闰年
Else
输出y不是闰年
End If
End If
End If
*
条件语句
简单条件语句
复合条件语句
*
If
条件
Then
语句1
Else
语句2
End If
If <条件1> Then
<语句1>
Else
If <条件2> Then
<语句2>
Else
<语句3>
End If
End If
*本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
北师大版必修3
算法初步
条
件
语
句
教
案
桐柏县中等职业学校
数学组:付园老师
一、教学目标:
1、知识与技能目标:
通过实例掌握条件语句的格式及程序框图的画法、程序的编写.
2、过程与方法目标:
在教学过程中体现的主要数学能力及数学思想方法。
(1)逻辑思维能力:
通过实例使学生体会算法的思想加强学生逻辑思维能力和推理论证能力的培养。
(2)转化的思想方法:
通过实例使学生能将自然语言整理成程序框图进而翻译成计算机语言,体现转化的思想方法。
3、情感、态度、与价值观目标:
在教学过程中培养学生创新意识和数学应用意识,提高学生学习数学的兴趣并注意在小组合作学习中培养学生的合作精神
二、教学重点与难点:
重点:条件语句的步骤、结构及功能
难点:程序的编写
三、教学方法:
探究法
四、教学过程:
一、新课引入
我们已经学习了用自然语言和框图来描述算法,要使算法在计算机上实现,还得借助程序语言.程序语言的种类很多,但是,有一些基本语句是所有语言都要使用的,例如,输入语句、输出语句、赋值语句、条件语句和循环语句。这些语句在程序语言中是最重要的和最基本的。输入输出语句很好理解,赋值语句前面已作了介绍,这一节主要介绍条件语句和循环语句。
二、新课
在算法中,选择结构是一种基本结构,条件语句是表达选择结构最常用的语句
二、例题讲解:
例1:通过计算,根据输入x的值,计算y的值。
写出算法步骤,写出条件语句。
步骤:(1)输入x 解:这里(2)、(3)步的选择部分可以用条件语句表示
(2)若,则 If then
(3)若,则 Else
(4)输出 End If
A
P
B
是
否
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网(共18张PPT)
作为家里的一员,在平时分担一些力所能及的事是我们应尽的义务,你每天都帮家里做事吗?你会烧开水吗?请写出你在家中烧开水的过程
1、往壶内注水;
2、点火加热;
3观察:如果水开,则停止烧火,否则继续烧火;
4、如果水未开,重复“3”直至水开。
总结:
“1”其实大部分事情都是按照一定的程序执行,因此要理清事情的每一步。“2”判断水是否烧开与是否继续烧火的过程是一个反馈与判断过程,因此有必要不断重复过程“3”
事实上,我们完成任何事,都要有一个步骤,合理安排步骤,会达到事半功倍的效果。在我们数学的意义来讲,在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这些步骤来解决问题,我们通常把这些步骤称为解决问题的一种算法。这种描述不是算法的定义,但反映了算法的基本思想。
中国古代数学以算法为主要特征,
这可以从中国古代数学家的著作中
看出端倪,其中最具代表性的就是
《九章算术》,就其成就来说堪称
是世界数学名著,其内容按类分章,
以数学问题的形式出现,包括分数
四则运算,开平方和开立方(包括二次方程数值的解法),盈不足术,各种面积和体积的计算公式,线性方程组解法,正负数运算的加减法法则,勾股形解法等。另外还有贾宪的《黄帝九章算法细草》、刘益《议古根源》、秦九韶的《数书九章》,杨辉的《详解九章算法》和《杨辉算法》等。
随着计算科学和信息技术的飞速发展,算法的思想已经渗透到社会的方方面。在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等。完成这些工作都需要一系列程序化的步骤,这就是算法的思想。
【例1】在中央电视台的《幸运52》节目中,要求参与者快速猜出物品的价格。主持人出示某件物品,参与者每次估算出一个价格,主持人只能回答高了、低了或者正确。在某次节目中,主持人出示了一台价值在1000元以内的随身听,并开始了竞猜。下面是主持人和参与者的一段对话:
………………….
如果你是参与者,你接下来会怎么猜?
800元!
高了
400元!
600元!
低了
高了
参与者
主持人:李咏
例2 两个大人和两个小孩一起渡河,渡口只有一条小船每次只能渡1 个大人或两个小孩,他们四人都会划 船,但都不会游泳试问他们怎样渡过河去?请写出一个渡河方案。
S1 两个小孩同船过河去;
S2 一个小孩划船回来;
S3 一个大人划船过河去;
S4 对岸的小孩划船回来;
S5 两个小孩同船渡过河去;
S6 一个小孩划船回来;
S7 余下的一个大人独自划船渡过河去;
对岸的小孩划船回来;
S8 两个小孩再同时划船渡过河去。
在给定素数表的条件下,请你设计一个算法,将936分成素因数的乘积.
解 算法步骤如下:
判断936是否为素数:否。
确定936的最小素因数:2。936=2*468
判断468是否为素数:否。
确定468的最小素因数:2。936=2*2*234。
判断234是否为素数:否。
确定234的最小素因数:2。936=2*2*2*117。
判断117是否为素数:否。
确定117的最小素因数:3。936=2*2*2*3*39。
判断39是否为素数:否。
确定39的最小素因数:3。936=2*2*2*3*3*13。
判断13 是否为素数:13是素数,所以分解结束。
分解结果是:936=2*2*2*3*3*13
写算法的要求
算法不同于求解一个具体问题的方法,是这种方法的高度概括。一个好的算法有如下要求:
写出的算法,必须能解决一类问题(如一元二次方程求根公式),并且能重复使用。
算法过程要能一步一步执行,每一步执行的操作,必须确切,不能含混不清,而且在有限步能得出结果。
算法要简洁,要清晰可读,不能弄搞繁杂,以以致于易程序化。
思考以下问题的算法:
一位商人有9枚银元,其中有1枚略轻的是假银元。你能用天平(不用砝码)将假银元找出来吗?
解: 1.把银元分成3组,每组3枚。
2.先将两组分别放在天平的两边。如果天平不平衡,那边假银元就放在轻的那一组;如果天平左右平衡,则假银元就在末称的第3组里。
3.取出含假银元的那一组,从中任取两枚放在天平的两边。如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则末称的那一枚就是假银元。
算法是什么
算法可以理解为由基本运算及规定的运算顺序构成的完整的解题步骤,或看成按要求设计好的有限的、确切的计算序列,并且这样的步骤或序列能解决一类问题。
现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤。
求方程 在[0,5]上的近似解,精确到0.05
分析:
如何求方程的根?我们可以参考p91~92
解法1
(1)移项,得
(2)两边同时加1并配方得:
(3)两边同时开放得:x=3或x=-1
(4)取x=3
解法2
1因为f(0)=-3,f(5)=12,f(0).f(5)<0,则在区间[0,5]上有解,精度为:5-1=4>0.05
2取[0,5]的中点2.5;计算f(2.5)=-1.75,则f(5)f(2.5)<0,精度:5-2.5=2.5>0.01
3取[2.5,5]的中点3.75,计算f(3.75)=3.5625,则f(2.5)f(3.5625)<0,精度:3.5625-2.5=1.1625>0.05
4取[2.5,3.5625]的中点3.03125,则f(3.03125)=0.12598,则f(3.03125)f(2.5)<0,精确度:3.03125-2.5=0.53125>0.05
5取[2.5,3.03125]的中点2.765625,则f(2.765625)=-0.88257,精度:3.03125-2.765625=0.2657>0.05
6取[2.765625,3.03125]的中点2.8984,f(2.8984)=-0.340,则f(2.8984)f(3.03125)<0,精度:3.03125-2.898=0.13>0.05
7取[2.8984,3.03125]的中点2.9648,则f(2.96)=-0.140,则f(3.03125)f(2.9648)<0,精度:3.031-2.968=0.06>0.01
8取[2.9648,3.031]的中点3.009,则f(3.009)=0.008,则f(3.009)f(2.965)<0,精度:3.009-2.965=0.045<0.05
9取[3.009,2.965]的中点2.99,则x=2.99
说明:
1算法实际上就是解决某一类问题的步骤和方法,在解决问题时形成的规律性的东西,按照算法描述的规则与步骤,一步一步地去做,最终便能解决问题。
2算法的基本思想就是我们分析问题时的想法。由于想法不同思考的角度不同,着手点不一样,同一问题存在不同的算法,算法有优劣之分。
3从熟悉的问题出发,体会算法的程序化思想,学会用自然语言来描述算法
算法的特征
有穷性: 一个算法应包含有限的操作步骤而不能是
无限的。
确定性:算法中每一个步骤应当是确定的,而不应当
是含糊的、模棱两可的。
有效性:算法中每一个步骤应当能有效地执行,并得到
确定的结果。
输 入: 有零个或多个输入。
输 出: 有一个或多个输出。
习题
5写出过A(2,1)、B(1,0) 、C(2,-1)三点的外接圆
的一个算法。
2二次函数顶点为A(1,-41)、且过B(0,-3), 写出二次函数f(x)解析式的一个算法。
4写出求1+2+22+ +26 的一个算法。
1写出解方程x2- x-1=0的一个算法。(共9张PPT)
2 算法框图的基本结构及设计
2.1 顺序结构与选择结构
例1 尺规作图,确定线段AB的一个5等分点.
作法 作图步骤如下:
1、如图,从已知线段的左端点A出发,作一条射线AP;
2、在射线上任取一点C,得线段AC;
3、在射线上作线段CE=AC;
4、在射线上作线段EF=AC;
5、在射线上作线段FG=AC;
6、在射线上作线段GD=AC,那么线段AD=5AC;
7、连接DB;
8、过C作BD的平行线,交线段AB于M,这样点M就是线段AB的一个5等分点。
.
.
.
.
.
A
B
C
D
E
F
G
P
M
这个实现过程可以用下图来表示。
开始
从A点出发作一条射线
在射线上取点C,得单位线段AC
作线段CE=EF=FG=GD=AC
连接DB
过点C作BD的平行线交AB于
M,即为线段AB的5等分点
结束
顺序结构的概念:
像这样,按照步骤依次执行的一个算法,称为具有“顺序结构”的算法,或者称为算法的顺序结构。
通常,为了使算法结构更加清晰,可借助流程图来帮助描述算法,流程图的特点是直观、清楚,便于检查和交流。
流程图:一种用规定的图形、指向线及文字说明
来准确、直观地表示算法的图形。
注:顺序结构的语句与语句,框与框之间都是按从上到下
依次执行,不会引起程序步骤的跳转。
B
A
如图:A和B两个框是依次执行的,而在
执行完A框所指示的操作后,必然
接着执行B框所指定的操作。
构成程序框图的图形符号及作用:
(2)输入、输出框用“ ”
表示,可用
在算法中任何需要输入、输出的位置,需要输入、输出的字母符号、数据都填在框内;
不可少的,表明程序的开始或结束;
(1)起始框用“ ”
表示,
是任何流程图
(3)处理框用“ ”
表示,算法中处理
数据需要的算式、公式等可以分别写在不同的用以处理数据的处理框内;另外,对变量进行赋值时,也用到处理框;
(4)当算法要求对两个不同的结果进行判断时,需要将实现判断的条件写在判断框内,判断框用“ ” 表示;
(5)一个算法步骤到另一个算法步骤用流程线连结。如果一个流程图需要分开来画,要在断开处画上连结点, 并标出连结和号码(如下图)
①
开始
输入a,b,c
计算△=b2-4ac
①
△<0
输出无实数解
结束
…
例2 通常说一年有365天,它表示地球围绕太阳转一圈所需要的时间,但事实并不是这样简单。根据天文资料,地球围绕太阳转一周所需要 的精确时间是365.2422天,称之为天文年。这个误差看似不大,却引起季节和日历之间难以预料的大变化。在历法上规定四年一闰,百年少一润,每四百年又加一闰。如何让判断某一年是不是闰年呢 请设计一个算法,解决这个问题,并用框图描述这个算法。
解 算法步骤如下:
1.若y不能被4整除,则输出“y不是闰年”。
2.若y能被4整除,则判断y是否能被100整除。
(1)若y不能被100整除,则输出“y是闰年”
(2)若y能被100整除,则判断y是否能被400整除
①若y能被400整除,则输出“y是闰年”
②若y不能被400整除,则输出“y不是闰年”
这个算法的框图如下图
开始
输入y
100整除y
400整除y
4整除y
结束
输出“y是闰年”
输出“y不是闰年”
是
是
否
否
否
是
例3:已知点 和直线 ,求点
到直线 的距离 ?写出算法,画出流程
图。
分析:由于本题是求点到直线的距离,因此可以直接应用
点到直线距离公式将有关数据代入即可,因此可用
顺序结构来画流程图。
解:用数学语言来描述算法:
(1)输入点的坐标 ,输入
直线方程的系数A,B,C;
(2)计算
(3)计算
(4)计算
开始
输入
A,B,C
输出
结束