课件23张PPT。数学3(必修)——算法初步一、教学重点和难点重点——(1)算法的含义;(2)算法的三种基本结构。难点——(1)循环语句;(2)算法设计。二、几点注意? 本章的展开及编写方式? 算法描述的三种方式之间
的关系? 关于技术的使用算法的含义的三种表述:广义地说——算法是完成某项工作的方法和步骤从计算科学角度——算法是可以用计算机来解决的一类问题的程序和步骤关于算法的特点——有限性、确定性、可行性(输入、输出、一般性)从数学角度——算法是对一类问题的机械的、统一的求解方法三、内容剖析(1)例1 给出求1 + 2 +3 + 4 + 5的一个算法.
算法1 按照逐一相加的程序进行.
第一步 计算1 + 2,得到3;
第二步 将第一步中的运算结果3与3相加,得到6;
第三步 将第二步中的运算结果6与4相加,得到10;
第四步 将第三步中的运算结果10与5相加,得到15. 算法2 可以运用公式1 + 2 + … + n = 直接计算。
第一步 取n = 5;
第二步 计算 ;
第三步 输出运算结果。 算法3?四
种
图
框三、内容剖析(2)三
种
基
本
算
法
结
构(1)顺序结构(2)选择结构(3)循环结构(直到型)(当型)例4 求1×2×3×4×5.算法2
S1 T←1;
S2 I←2;
S3 T←T × I;
S4 I←I + 1.
S5 如果I不大于5,重新执行 S3、S4、S5;否则算法结束.直到型与当型的转换?(1)赋值语句? 伪代码例1 交换两个变量 x、y 的值p ← xx ← yy ← p? 赋值号? x、y、p的值各是多少?三、内容剖析(3)(2)输入输出语句? 伪代码例2 输入一个数,输出这个数的算术平方根。? 其他输入语句,英语单词读法Read ax ← Print x(3)条件语句——行? 伪代码例3 输入三个数,输出最大数。Read a, b, cx ← aIf b > x Then x ← bIf c > x Then x ← cPrint x条件语句——块? 伪代码例4 输入x,计算 y = 的值。Read xIf x≥0 Then y ← x2Else y ← sin xEnd IfPrint y条件语句——嵌套? 伪代码例5(教材例3)输入x,计算 y = 的值。Read xIf x > 0 Then y ← 1ElseIf x = 0 Then y ← 0Else y ← -1End IfPrint y(4)循环语句——For? 伪代码例6(教材引例)计算1 ? 3 ? 5 ? 7 ? … ? 99。S ← 1For I From 3 To 99 Step 2 S ← S ? IEnd ForPrint S循环语句——While? 伪代码1例7(教材引例)求最小的奇数I,使 1 ? 3 ? 5 ? 7 ? … ? I > 10 000。S ← 1I ← 3 While S≤10 000 S ← S ? I I ← I + 2 End WhilePrint I? 伪代码例1(第22页例4)抛硬币试验。s ← 0Read n For i From 1 To n If Rnd > 0.5 Then s ← s + 1 End ForPrint 出现正面的频率为s/n三、内容剖析(4)例2(第25页例1)孙子问题:“今有物不知其数,三三数之剩二;五五数之剩三;七七数之剩二.问物几何?答曰:二十三.”分析 “孙子问题”相当于求关于x,y,z的
不定方程组 的正整数解.m←2
While Mod(m, 3)≠2 或 Mod(m, 5)≠3 或 Mod(m, 7)≠2
m←m + 1
End While
Print m? 流程图与伪代码例3 求两个整数a和b的最大公约数——欧几里得辗转相除法。分析 求出列数:
a,b,r1,r2,…,rn – 1,rn,0.
这列数从第三项开始,每项都是前两项相除所得的余数,余数为0的前一项rn即是a和b的最大公约数.这种方法称为“欧几里得辗转相除法”.? 流程图与伪代码Read a, b
While Mod(a,b)≠0
r←Mod(a,b)
a←b
b←r
End While
Print b 例4 用二分法求方程x3 - x - 1 = 0在区间 [1,1.5] 内的一个近似解(误差不超过0.001)。用二分法求方程近似解的基本思想
第一步 确定有解区间[a, b]
第二步 取[a, b]的中点
第三步 计算函数在中点处的函数值
第四步 判断中点处函数值是否为0
第五步 判断新的有解区间的长度是否小于 给定的误差? 流程图与伪代码10 Read a, b, c
20 x0←(a + b)/2
30 f(a)←a3 – a – 1
40 f(x0)←x03 – x0 – 1
50 If f(x0) = 0 Then Goto 120
60 If f(a)f(x0) < 0 Then
70 b←x0
80 Else
90 a←x0
100 End If
110 If |a – b|≥c Then Goto 20
120 Print x0