1、 1 数学必会基础题型数学必会基础题型算法算法 【知识点【知识点 1 1】基本概念】基本概念 1.1.算法:算法:广义的算法某一工作的方法和步骤。 数学中的“算法”是指可以用计算机来解决的某一类问题的程序。 2.2.算法三要素:算法三要素:明确性,可行性,有限性。 例题例题. .给出求1 2 3100 的一个算法。 解:第一步:使1S ; 第二步:使2I ; 第三步:使SSI; 第四步:使1II; 第五步:如果100I ,则返回第三步,否则输出S。 【知识点】流程图【知识点】流程图 1.1.顺序结构顺序结构 例题.已知两个单元分别存放变量x和y的值, 试交换这两个变量的值。(如上图) 2.2.
2、选择结构选择结构 例题.铁路客运部门规定旅客托运行李 的费用为(其中为行李的重量) 0.5350 50 0.53(50) 0.8550 c , 请画出计算费用c流程图。 (如右图) 3.3.循环结构循环结构 例题.写出求1 2 3 4 5 值的一个算法,并画出流程图。 解:1S 1T ; 2S 2I ; 3S TTI; 4S 1II ; 5S 如果5I ,转3S, 否则输出T。 【必会题型】【必会题型】 1.设计一个求任意数的绝对值的算法, 并画出流程图。 (流程图为右上图) 算法:1S 输入任意实数x; 2S 若0x,则yx;否则yx ; 3S 输出y。 2.判断右边的流程图的作用是什么?
3、算法:1S 2S ; 2S 4I ; 3S SSI; 4S 2II ; 5S 如果100I ,转3S,否则输出S。 N 0x yx 输入x 输出y Y yx px xy yp N 100I 输出S Y 2S 4I SSI 2II 2 3.设计一个计算 10 个数平均数的算法,并画出流程图。 解:1S 0S ; 2S 1I ; 3S 输入G; 4S SSG; 5S 1II ; 6S 如果10I ,转3S; 7S 10 S A ; 8S 输出A。 4.画出求 111 1 23100 的流程图。 5.画出求 111 1 22 399 100 的流程图。 【知识点【知识点 3 3】基本算法语句】基本算
4、法语句 1 1 赋值语句:赋值语句: “xy” 表示将y的值赋给x, 其中x是一个变量,y是一个与x同 类型的变量或表达式。 2 2 输入、输出语句:输入、输出语句: 输入、输出语句分别用Read(或Input)和Print表示。 例题:求任意三门功课的平均值的算法。 (如右图) 3 3 条件语句:条件语句:一般形式为:IfthenElse (图 1) ,对应的程序框图为(图 2) 。 例 1.写出输入两个数 a 和 b,将较 大的数打印出来的算法,写出算法 伪代码,并画出流程图。 算法步骤: S1 输入 a,b; S2 若 ab,则输出 a, 否则输出 b。 算法伪代码: Read a,b,
5、c A(a+b+c)/3 Print A If 条件 A then 语句 1 Else 语句 2 End if (图 1) 否 是 满足条件? 语句 1 语句 2 (图 2) 伪代码: Read a,b If ab Then Print a Else Print b End If End 开始 输入 a, b ab 结束 Y N 输出 a 输出 b 3 例 2.某居民区的物业管理部门每月按以下方法收取卫 生费:3 人和 3 人以下的住户,每户收取 5 元;超过 3 人的住户,每超出 1 人加收 1.2 元试设计算法,根 据输入的人数计算应收取的卫生费? 例 3:儿童乘坐火车时,若身高不超过 1
6、.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.4.循环语句循环语句 例 1.写出计算 1 3 5 799 的一个 算法。 例 2.写出
7、计算 1+2+3+4+ +99+100 的算法。 开始 1S 3I While 99I S SI 2II End While Print S End 1S While 100I S SI 1II End While Print S End 1S 3I do S SI 2II Until 99I End do Print S End 1S do S SI 1II Until 100I End do Print S End Read n If 3n Then 5c Else 5 1.2(3)cn End If Print c 4 例 3.求满足1 3 5 7_10000 的最小整数 的算法。 (根
8、据右图填空) 【知识点【知识点 4 4】秦九韶算法】秦九韶算法 秦九韶(12021261) “秦九韶算法”的特点:通过一次式的反复计算,逐 步得出高次多项式的值;对于一个n次多项式,最多 只要做n次乘法和n次加法。 练习: 当2x时,计算 32 3245xxx需要 次 加法, 次乘法。 【知识点【知识点 5 5】辗转相除法辗转相除法【用较大的数除以较小的数, 直到余数0r为止】 例题:求 8251 和 6105 的最大公约数。 “辗转相除”伪代码: Read , While Mod( , )0 Mod( , ) End While Print a b a b ra b ab br b 练习:利
9、用辗转相除法求两数 4081 与 20723 的最大公约数。 (答案:53) 【知识点【知识点 6 6】更相减损术更相减损术 1.用更相减损术求 98 与 63 的最大公约数。 2.用更相减损术求两个正数 84 与 72 的最大 公约数。 【知识点【知识点 7 7】二分法】二分法 例题:写出用二分法求解方程 3 10xx 在区间1,1.5内的一个近似解(误差不 超过 0.001)的一个算法。 算法步骤: 1S 取 , a b的中点 0 2 ab x ,把区间一分为二; 2S 若 0 ()0f x,则 0 x就是方程的根,否则判断 根在 0 x的左侧还是右侧; 若 0 ( ) ()0f a f x,则根 0 (, )x b内,以 0 x代替a; 若 0 ( ) ()0f a f x,则根 0 ( ,)a x内,以 0 x代替b; 3S 若| 0.001ab,计算终止,此时根的近似值为 0 x,否则转1S。 1S 1I While 10000S 2II *SS I End While Print I End 输出b br ab ( , )rMod a b Mod( , )0a b 开始 输入 a,b 结束 Y N