《新课标人教版高中数学》必会基础题型9—《算法》
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数学》必会基础题型——《算法》
【知识点1】基本概念
1.算法:广义的算法——某一工作的方法和步骤。
数学中的“算法”是指可以用计算机来解决的某一类问题的程序。
2.算法三要素:明确性,可行性,有限性。
例题.给出求123100++++的一个算法。 解:第一步:使1S =;
第二步:使2I =;
第三步:使S S I =+;
第四步:使1I I =+; 第五步:如果100I ≤,则返回第三步,否则输出S 。
【知识点】流程图 1.顺序结构
例题.已知两个单元分别存放变量x 和y 的值,试交换这两个变量的值。(如上图) 2.选择结构
例题.铁路客运部门规定旅客托运行李的费用为(其中ω为行李的重量)
0.5350500.53(50)0.8550c ω
ωωω⨯≤⎧=⎨
⨯+-⨯>⎩,请画出计算费用c 流程图。(如右图)
3.循环结构
例题.写出求12345⨯⨯⨯⨯值的一个算法,并画出流程图。 解:1S 1T ←;
2S 2I ←; 3S T T I ←⨯; 4S 1I I ←+;
5S 如果5I ≤,转3S , 否则输出T 。 【必会题型】
1.设计一个求任意数的绝对值的算法,
并画出流程图。(流程图为右上图) 算法:1S 输入任意实数x ; 2S 若0≥x ,则y x ←;否则y x ←-;
3S 输出y 。 2.判断右边的流程图的作用是什么?
算法:1S 2S ←;
2S 4I ←;
3S S S I ←+; 4S 2I I ←+;
5S 如果100I ≤,转3S ,否则输出S 。
p x ←x y ← y p ← ↓
↓
↓ ↓
3.设计一个计算10个数平均数的算法,并画出流程图。 解:1S 0S ←;
2S 1I ←; 3S 输入G ; 4S S S G ←+; 5S 1I I ←+;
6S 如果10I ≤,转3S ;
7S 10
S
A ←;
8S 输出A 。
4.画出求111
123100++++的流程图。
5.画出求111
122399100+++
⨯⨯⨯的流程图。 【知识点3】基本算法语句
1赋值语句:“x y ←”表示将y 的值赋给x ,其中x 是一个变量,y 是一个与x 同类型的变量或表达式。 2输入、输出语句:
输入、输出语句分别用Read (或Input )
3条件语句:一般形式为:If —then —(图1),对应的程序框图为(图2)。
例1.写出输入两个数a 和b ,将较大的数打印出来的算法,写出算法伪代码,并画出流程图。 算法步骤: S1 输入a,b ;
S2 若
a>b ,则输出a , 否则输出b 。
(图1)
例2.某居民区的物业管理部门每月按以下方法收取卫生费:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元.试设计算法,根据输入的人数计算应收取的卫生费?
例3:儿童乘坐火车时,若身高不超过1.1 m ,则无需购票;若身高超过1.1 m 到不超过1.4 m ,可买半票;若超过1.4 m ,应买全票。试设计一个购票的算法,写出伪代码,并画出流程图。
解:算法步骤:S1 测量儿童身高h ; S2 若 1.1h ≤,则免费乘车;否则,若1.4h ≤,则半票乘车;否则,全票乘车。 算法伪代码: Read h If 1.1h ≤ Then Print 免费乘车 Else If 1.4h ≤ Then Print 半票乘车
Else Print 全票乘车
End If 当型循环结构: 直到型循环结构: 4.循环语句
例1.写出计算
135799⨯⨯⨯⨯⨯的一个
算法。
例2.写出计算1+2+3+4+ ……+99+100的算法。
1S ← While 100I ≤ S S I ←+ 1I I =+ End While Print S
End
1S ← do
S S I ←+ 1I I =+ Until 100I > End do Print S
End
例 3.求满足1357____10000⨯⨯⨯⨯⋅⋅⋅⨯>的最小整数的算法。(根据右图填空)
【知识点4】秦九韶算法 秦九韶(1202—1261) “秦九韶算法”的特点:通过一次式的反复计算,逐步得出高次多项式的值;对于一个n 次多项式,最多只要做n 次乘法和n 次加法。
练习:当2x =时,计算323245x x x ---需要 次
加法, 次乘法。 【知识点5】辗转相除法【用较大的数除以较小的数,直到余数0=r 为止】
例题:求8251和6105的最大公约数。 “辗转相除”伪代码: Read ,While Mod(,)0 Mod(,) End While
Print a b
a b r a b a b b r b
≠←←←
练习:利用辗转相除法求两数4081与20723的最大公约数。(答案:53) 【知识点6】更相减损术
1.用更相减损术求98与63的最大公约数。
2.用更相减损术求两个正数84与72的最大公约数。
【知识点7】二分法
例题:写出用二分法求解方程310x x --=在区间[1,1.5]内的一个近似解(误差不超过0.001)的一个算法。 算法步骤:
1S 取[,]a b 的中点02
a b
x +=
,把区间一分为二; 2S 若0()0f x =,则0x 就是方程的根,否则判断根在0x 的左侧还是右侧;
若0()()0f a f x >,则根0(,)x b 内,以0x 代替a ; 若0()()0f a f x <,则根0(,)a x 内,以0x 代替b ;
3S 若||0.001a b -<,计算终止,此时根的近似值为0x ,否则转1S 。
1S ← 1I ←
While 10000S ≤
2I I ←+ *S S I ← End While Print I
End