9299.net
大学生考试网 让学习变简单
当前位置:首页 >> 数学 >>

1.1.1算法与程序框图

1.1.1算法与程序框图


问题的提出
有一个农夫带一条狼、一只羊和一 筐白菜过河。如果没有农夫看管,则狼 要吃羊,羊要吃白菜。但是船很小,只 够农夫带一样东西过河。问农夫该如何 解此难题? 方法和过程: 1、带羊到对岸,返回; 2、带菜到对岸,并把羊带回; 3、带狼到对岸,返回; 4、带羊到对岸。

算法的概念:

通常把一类问题的求解过程,叫做 解决这一类问题的算法。 对于一项任务,按照预先设计好的步 骤,一步一步执行,并在有限步内完成 任务,则这些步骤就称为完成该任务的 一个算法。

? 菜谱是做菜的算法; ? 歌谱是一首歌曲的算法; ? 空调说明书是空调使用的算 法 ? 广播操图解是广播操的算法;

1.1.1 算法的概念

[问题]请你写出解二元一次方程组的详细求解过 程. ? x ? 2 y ? ?1 ①

? ?2 x ? y ? 1




第一步: ① +②×2得: 5x=1 1 第二步: 解③得: x ? 5 第三步: ②- ① ×2,得 5y=3

3 第四步:解④ ,得 y ? 5?
第五步:得方程组的解



1 x ? ? 5 ? 3 ?y ? 5 ?

你能写出解一般的二元一次方程组的步 思 考 骤吗?

第一步,

c1b2 ? c2b1 . 第二步,解(3)得 x ? a1b2 ? a2b1

第三步,

? a2b1 ? a1b2 ? y ? a2c1 ? a1c2.
第四步,解(4)得

(1) ? a2 ? (2) ? a1 得:

(4)

a2c1 ? a1c2 y? . a2b1 ? a1b2

第五步,得到方程组的解为

思考

这 两个解方程组的算法 的适用范围有何不同?
① ②

?

x ? 2 y ??1, 2 x ? y ?1

?

a1 x ? b1 y ? c1 a2 x ? b2 y ? c2
①×

第一步: ①+②×2,得 5 x ? 1.

第一步:

a2

- ②×

a1



(a2b1 ? a1b2 ) y ? a2c1 ? a1c2
第二步: 解③,得

1 第二步: 解③ 得 x ? . 5

a2 c1 ? a1c2 y? ④ a2b1 ? a1b2
b1c2 ? b2 c1 a2b1 ? a1b2

3 1 y ? . x ? 第三步: 将 代入①,得 5 5

第三步: 将④带入①得 x ?

解方程组

?

3 x ? 2 y ?3 ① 2 x? y ?4 ②

b1c2 ? b2 c1 x? a2b1 ? a1b2

a2 c1 ? a1c2 y? a2b1 ? a1b2

第一步: 取 a1 ? 3, b1 ? ?2, c1 ? 3

a2 ? 2, b2 ? 1, c2 ? 4

b1c2 ? b2c1 第二步:计算 x ? a2b1 ? a1b2
第三步:给出运算结果。

a2c1 ? a1c2 y? a2b1 ? a1b2

现在你对算法有了新 的认识了吗?

这些步骤就构成了解二元一次方程组的 算法,我们可以根据这一算法编制计算机程序, 让计算机来解二元一次方程组.

算法的概念与特征
算法(algorithm)这个词出现于12世纪, 指的是用阿拉伯数字进行算术运算的过程. 在数学上,现代意义上的“算法”通常是指可 以用计算机按照一定规则解决某一类问题的 明确和有限的程序或步骤,这些程序或步骤必 须是明确和有效的,而且能够在有限步之内完 成.

算法的概念:

算法是指解决给定问题的有穷 操作步骤的描述,简单的说,算法 就是解决问题的步骤和方法。

算法的特点:
(1)有限性:
(2) 确定性: (3)顺序性与正确性: (4) 不唯一性: (5)普遍性:

例题解析

例题1.(1)设计一个算法判断7是否为质数.
算法分析:根据质数的定义,可以这样判断:依次用2--6除7,
如果他们中有一个能整除7,则7不是质数,否则7是质数。具体 算法如下; 第一步, 用2除7,得到余数1.因为余数不为0,所以2不能整除7. 第二步, 用3除7,得到余数1.因为余数不为0,所以3不能整除7. 第三步, 用4除7,得到余数3.因为余数不为0,所以4不能整除7. 第四步, 用5除7,得到余数2.因为余数不为0,所以5不能整除7. 第五步, 用6除7,得到余数1.因为余数不为0,所以6不能整除7. 因此,7是质数.

例题.(2)设计一个算法判断35是否为质数.
算法分析:
第一步, 用2除35,得到余数1.因为余数不为0,所以2不能整除35.
第二步, 用3除35,得到余数2.因为余数不为0,所以3不能整除35. 第三步, 用4除35,得到余数3.因为余数不为0,所以4不能整除7. 第四步, 用5除35,得到余数0.因为余数为0,所以5能整除35. 因 此,35不是质数.

题后小结:用语言描述一个算法,最便捷的
方式就是按解决问题的步骤进行描述.每一步 做一件事情.

探究 任意给定一 个整数 n(n>2),试 设计一个程 序或步骤对n 是否为质数 做出判定。
第一步,给定大于2的整数n。 第二步,令i=2 第三步,用i除n,得到余数r. 第四步,判断“r=0”是否成立,若是, 则n不是质数,结束算法;否则,将i

的值增加1,仍用i表示。
第五步,判断“i>(n-1)”是否成立, 若是,则n是质数,结束算法;否则, 返回第三步。

例2.用二分法设计一个求方程

的近似根的算法.

二分法 对于区间[a,b ]上连续不断、且 f(a)f(b)<0的函数y=f(x),通过不断地 把函数f(x)的零点所在的区间一分 为二,使区间的两个端点逐步逼近 零点,进而得到零点或其近似值的 方法叫做二分法.

算法步骤: 2 第一步, 令 f ( x) ? x ? 2 ,给定精确度d. 第二步, 给定区间[a,b],满足f(a) · f(b )< 0 . a?b 第三步, 取中间点 m ? . 2 第四步, 若f(a) · f(m) < 0,则含零点的区间为 [a,m];
将新得到的含零点的仍然记为[a,b]. 第五步,判断f(m)是否等于0或者[a,b]的长 度是否小于d,若是,则m是方程的近似解;否 则,返回第三步.

当d=0.005时,按照以上算法,可得下面表和图. a b |a-b| 1 2 1 1 1.5 0.5 1.25 1.5 0.25 1.375 1.5 0.125 1.375 1.437 5 0.062 5 1.406 25 1.437 5 0.031 25 1.406 25 1.421 875 0.015 625 1.414 625 1.421 875 0.007 812 5 1.414 062 5 1.417 968 75 0.003 906 25

y=x2-2

1

1.25 1.375

1.5

2

于是,开区间(1.4140625,1.41796875)中 的实数都是当精确度为0.005时的原方程的近 似解.

计算机解决任何问题都要依 赖于算法.只有将解决问题的过程 分解为若干个明确的步骤,即算法, 并用计算机能够接受的“语言” 准确地描述出来,计算机才能够解 决问题.

练习一:任意给定一个正实数,设计一个 算法求以这个数为半径的圆的面积. 算法分析: 第一步:输入任意一个正实数r; 第二步:计算以r为半径的圆的面积S=πr2; 第三步:输出圆的面积.

练习二:任意给定一个大于1的正整数n, 设计一个算法求出n的所有因数.
算法分析: 第一步:依次从2~(n-1)为除数去除n,判断 余数是否为0,若是,则是n的因数;若不是, 则不是n的因数. 第二步:在n的因数中加入1和n; 第三步:输出n的所有因数.

作业:
课本P5页T2

(只需用自然语言写出算法步骤)

再 见


推荐相关:
网站首页 | 网站地图
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com