东莞群英学校梁斌玉。
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 种不同的语言来表示,让学生通过认识,感知他们的联系区别。比如 顺序结构 这一部分,我就...