内容正文:
2.1
算法的概念及描述
1
农夫如何安全带这三样东西过河?
一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条船。乘船时,农夫在场的时候,这三样东西相安无事。一旦农夫不在,狼会吃羊,羊会吃菜。船很小,只够农夫带一样东西过河。农夫该如何解此难题?
方法一:
1、农夫带羊过河,农夫回来;
2、把狼带过河,把羊带回来;
3、带蔬菜过河,农夫回来;
4、把羊带过河。
方法二:
1、农夫带羊过河,农夫回来;
2、带蔬菜过河,把羊带回来;
3、把狼带过河,农夫回来;
4、把羊带过河。
农夫如何安全带这三样东西过河?
2.1.1 算法的概念
4
广义:“算法”指的是解决问题或完成任务的一系列步骤。
不仅仅指计算任务(算术),也可以是社会生活中各种事务的处理。
计算机科学领域:“算法”指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。
不仅包含了数值计算,还包含了非数值计算的数据处理。
1. 算法的定义
为了让计算机理解算法中的步骤,用计算机能理解的语言来描述算法并将其输入到计算机中,这个过程就称为计算机程序设计。
P41页
P41页
人
机器
到所属班级的班主任处签到注册;
领取高一新生校园手册
已缴费?
是住校生?
到所属教室班级休息
到财务处缴费
凭缴费单到高一公寓领取生活用品,布置床铺
否
否
是
是
高一新生报到流程
例:用求根公式求解一元二次方程的算法
一元二次方程的解的意义:能使一元二次方程左右两边相等的未知数的值称为一元二次方程的解。利用一元二次方程根的判别式( )可以判断方程的根的情况。
过程方法具体描述: ax²+bx+c=0
(1)输入一般形式下的二次项系数a,一次项系数b,常数项c;
(2)计算判别式 的值;
(3)若 ,则计算 ,输出字符串“方程有实数解”,并输出x的值;否则,输出字符串“方程无实数解”。
小绿P14 例1
7
例:用求根公式求解一元二次方程的算法
8
特征 含义
有穷性 一个算法的处理步骤必须是有限的
可行性 一个算法中的每一步操作与要求都应该是算法执行者(人或机器)可以实施的,同时在现实环境中能做到并且能在有限时间内完成
确定性 算法中对于每个步骤的执行描述必须是明确的
0个或多个输入 数据可从外部输入,也可包含在算法中(可以没有输入)
1个或多个输出 算法必须包含至少一个输出,以告诉外界问题求解的结果(必须有输出)
2. 算法的特征
9
把大象放冰箱是不是算法?
不是算法,不满足算法的可行性。
农夫过河是不是算法?
是算法。
思考:
小绿P14 例2
求根公式求解一元二次方程的算法:
(1)输入一般形式下的二次项系数a,一次项系数b,常数项c
(2)计算判别式 的值
(3)若 ,则计算 ,输出字符串“方程有实数解”,并输
出x的值;否则,输出字符串“方程无实数解”
要素 含义
数据 明确参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据
运算 明确每一步的运算是什么、对哪些数据进行运算等
控制转移 有时需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作
3. 算法的要素
a,b,c, ,x
加减乘除,
开根,平方
若......,则......;
否则........
11
数据:
在洗衣机执行洗衣算法前,必须进行洗涤时间、漂洗次数、脱水时间、每次洗涤所加水量的设置,并将设置产生的数据输入到算法中,洗衣机才能按照需求工作。
运算:
洗衣机的控制算法中包含“洗涤时间的计时”、“漂洗次数的统计”、“判断加水是否到达50升”等运算
控制转移:
在洗衣机的控制算法进水过程中,比如水量达到50升则关闭水阀,否则不关闭水阀,再如漂洗次数未达到2次时,需要继续加水到50升。
3. 算法的要素
2.1.2 算法的描述
13
设计出一个解决问题的算法,也需要用能被算法执行者理解的形式加以呈现,才能被算法执行者(人或计算机)理解并执行。算法的这种呈现就称为算法的描述。常见的算法描述方式有自然语言、流程图、伪代码、计算机程序设计语言等。
2.1.2 算法的描述
课本P45
14
自然语言是人们在日常生活中交流使用的语言,如汉语、英语、德语、日语等。用自然语言描述算法通俗易懂,且不需要进行专门的学习和训练。
阅读:停车场车位探测中的算法,尝试用自然语言描述该算法。
自然语言描述如下:
(1)输入变量flag的值。
(2)若flag的值为1, 则设置指示灯为绿色