算法初步教学详解

发布 2022-07-02 23:03:28 阅读 8647

东莞群英学校梁斌玉。

1.1算法与程序框图。

1.1.1算法的概念。

计算机的问世可谓20世纪最伟大的发明,它把人类社会带进了信息技术的时代,而算法是计算机科学的重要基础,就像使用算盘一样,人们要给计算机编制“口诀”——算法,才能让它工作。要想了解计算机的工作原理,算法的学习是一个开始。

做任何事情都有一定的步骤。例如,你想考大学首先要填报名志愿表,拿到准考证,参加考试,得到录取通知书,到大学报名注册等。这些步骤都是按一定顺序进行的,缺一不可。

现实生活中,我们很多事情都是这样一步一步的完成的。 可见算法并不是一个全新的概念,它融入在我们的现实生活中。在我国古代,“算法”取得了辉煌的成就。

例1. 烧水泡茶。

请看一下烧水泡茶的过程。

解:烧水泡茶可分下面4步完成。

step1:洗好开水壶;

step2:灌上凉水,放在火上,等待水开;

step3:洗茶杯,茶杯里放好茶叶;

step4:水开后再冲水泡茶。

例2.人鬼过河。

现在河的岸边有三个人和三个鬼,河上只有一条小船,船上最多能坐两个“人”,在河的任何一边,当鬼的个数比人多时,鬼就会吃掉人。请问如何才能使人和鬼都平安的到达对岸。

解: 要想使人鬼都安全过河,需要下面11步。

step1step2:

step3step4:

step5step6:

step7step8:

step9step10:

step11:

从事各种工作和活动,都要事先想好工作的步骤,然后按部就班的进行,这样就可以避免产生错误。

定义:我们把用来解决问题的一系列步骤叫做算法(algorithm)。

算法一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程。随着计算机的出现,人们常把这些“步骤”编写为“程序”由计算机来解决。算法必须符合以下条件:

1.算法的每一步要做什么必须是明确的,不能含糊不清,模棱两可;例如,要把全班同学分成两队,“高个子的同学站出来”这个步骤就是不确定的,含糊的,哪些同学算高,哪些同学算矮?个子中等的同学就会不知所措。

2.算法的每一步都应当能有效的执行,并得到确定的结果。例如若是无效的,不能执行的。

3.算法必须在有限步内完成,如果需要无限步完成,就失去了实际意义。算法的有限性往往指“在合理的范围之内”。

如果让计算机执行一个历时2024年才结束的算法,虽然是有限的,但超过了合理的限度,人们也不把它视作有效算法。究竟什么算“合理限度”并无严格标准,由人们的常识和需要而定。

例3. 给计算机编写一个算法,输入一个自变量的值,求分段函数的函数值。

解:step1:输入x的值;

step2:进行判断,如果,则, 否则。

step3: 输出y的值。

2.计算y说明:1.输入x的值就是把自变量x的值由键盘输入计算机,例如要计算x=2时的函数值,就输入2。

2.根据相应的x的值计算相应的函数值,比如输入3,则;如果输入-4,则。

3.输出结果就是把计算结果显示在计算机屏幕上。

以上算法可以通过输给计算机一系列“命令”来实现,这些命令叫做计算机语言。

例4.筛选法求质数。

质数亦叫作素数,是大于1的自然数,并且除了该数本身和1以外没有其它的数能整除它,如2,3,5,7,11,13,…,质数有无穷多个。

1)判断143是否为质数。

解:step1:143÷2不为整数;

step2:143÷3不为整数;

step3:143÷4不为整数;

step4:143÷5不为整数;

step5:143÷6不为整数;

step6:143÷7不为整数;

step7:143÷8不为整数;

step8:143÷9不为整数;

step9:143÷10不为整数;

step10:143÷11=13,143能被11整除;

step11:结论:143不是质数。

2)判断17是否为质数。

解:step1:17÷2不为整数;

step2:17÷3不为整数;

step3:17÷4不为整数;

step4:17÷5不为整数;

step5:17÷6不为整数;

step6:17÷7不为整数;

step7:17÷8不为整数;

step8:17÷9不为整数;

step9:17÷10不为整数;

step10:17÷11不为整数;

step11:17÷12不为整数;

step12:17÷13不为整数;

step13:17÷14不为整数;

step14:17÷15不为整数;

step15:17÷16不为整数;

step16:结论:17是质数。

3)判断216091是不是质数。

该题的计算量非常大,我们可以把算法编为程序,由计算机帮我们计算。

4)设计一个算法,输入大于2的整数n,由计算机判断它是不是质数。

解:step1:输入整数n;

step2:依次检验2~(n-1)是不是n的因数,若有这样的数,则n不是质数,否则,n为质数。

step3:输出结果。

说明:其中第3步在计算机中可以通过一个循环来实现,今后会学到。

思考] 你能举出跟多算法的例子吗?与一般的解决问题的过程比较,你认为算法最重要的特征是什么?

练习]:1.任意给定一个正数,设计一个算法,求以这个数为半径的圆的面积。

2.设计一个算法,求的值。

3.牛虎过河。

一个人带三只老虎和三头牛过河。只有一条船,可以容一个人和两只动物。没有人在的时候,如果老虎的数量不少于牛的数量就会吃掉牛。设计安全渡河的算法。

4.任意给定一个大于1 的正整数n,设计一个算法,求出n的所有因数。

1.1算法与程序框图。

1.2.2程序框图。

算法可以用自然语言来表示,但为了使算法的步骤表达得更为直观,我们更经常地用图形方式来表达,这就是程序框图。 程序有三种基本逻辑结构——顺序结构、选择结构和循环结构。复杂的程序都是由这三种结构组成。

一、顺序结构。

例5.请叙述一下烧水泡茶的过程。

解:该算法用自然语言表述为。

step1:洗好开水壶;

step2:灌上凉水,放在火上,等待水开;

step3:洗茶杯,茶杯里放好茶叶;

step4:水开后再冲水泡茶。

可以用程序框图表示为:

例6. 已知一个三角形的三边长分别是,它的面积可用海伦—秦九韶公式计算。,其中。为计算机设计一个算法,输入三角形的三条边长,输出三角形的面积s。

解:程序框图为。

程序框图符号和它们所表示的功能:

顺序结构由若干个依次执行的处理步骤组成。这是任何一个算法都离不开的基本结构。

二、选择结构。

例7.给计算机编写一个算法,输入一个自变量的值,求分段函数的函数值。

解:该算法用自然语言表述为。

step1:输入x的值;

step2:进行判断,如果,则, 否则。

step3: 输出结果。

可以用程序框图表示为:

其中被虚线框起来的是选择结构选择结构的一般形式。

**] 当x取7,0,-5时,程序分别沿着哪条路线运行?请画出来。

选择结构由一个判断框和两个分支组成。当条件框内的条件成立时,程序沿着分支1进行;否则程序沿分支2进行。

例8.判断一元二次函数是否有根。

分析:,当时,方程有实根;当时,方程无实根。

解:程序框图表示为。

思考]1)比较例7和例8,说出何时使用平行四边形,何时使用直角矩形?

(2)例8中为什么只有这一个判断框,而没有时的判断框?

选择结构的嵌套。

例9.函数,编写一个算法,输入x的值,输出y的值。

解: 此框图是嵌套选择结构,外层选择结构的“yes”分支很简单,“no”分支中又包含了一个条件结构。

**] 当x取2,0,-2时,程序分别沿着哪条路线运行?请画出来。

三、循环结构。

1)当型循环结构(while型)

“算法初步”教学案例

海南中学王涵。1.1算法与程序框图。1.1.1 算法的概念和特征。1 教学目标 知识目标 通过分析具体问题的过程与步骤,初步体会算法的思想 了解算法的含义,能用自然语言描述解决具体问题的算法。使学生体会算法的基本特征 有穷性 确定性 有效性 顺序性 不唯一性 普遍性 普适性 能力目标 逐步发展学生有...

《算法初步》教学反思周华

算法初步 的教学实践与反思。周华。下学期我接手二 8 班数学教学任务,说实话,第一次接触新教材内容,又是第一次接触教材新增加的内容,的确有些茫然。必修3中,将算法列为高中数学内容的第一部分,在 算法初步 这一章导言中也讲到 算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础 因此,这章内...

对“算法初步”教学的反思

为了更好学习算法,了解算法的应用,可打破教材顺序重新组合 把整章教材分为以下 4 大部分 1 顺序结构,2 条件结构,3 循环结构,4 案例分析。把所有的例题和习题也进行了重新组合。每一部分的每一道题都同时用 3 种不同的语言来表示,让学生通过认识,感知他们的联系区别。比如 顺序结构 这一部分,我就...