内容正文:
1.1 算法与程序框图
1.1.1 算法的概念
目标导航
1.了解算法的含义,体会算法的思想.
2.在分析实例的基础上了解算法的基本特征.
3.能够用自然语言描述一些具体问题的算法.
[走进教材]
1.算法的概念
2.算法与计算机
计算机解决任何问题都要依赖于算法,只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.
[名师指津]
(1)算法与问题的解法的关系
①算法与数学问题中的解法是有区别的.算法是解决某一问题所需要的程序和步骤的统称,它可以理解为数学中的“通法通解”;而解法是解决某一个具体问题的过程,是具体的解题过程.
②算法与数学问题中的解法又有一定联系:它们是一般与特殊的关系,也是抽象与具体的关系.算法的获取要借助一般意义上具体问题求解的方法,而任何一个具体问题都可利用这类问题的一般算法解决.
(2)设计算法时注意的问题
①算法从初始步骤开始,每一个步骤只能有一个确定的后继步骤,从而组成一个步骤序列,序列的终止表示问题得到解答或指出问题没有解.
②一个具体问题的算法不唯一,如解二元一次方程组的算法就有消元法、代入法两种.由于传统数学问题解法的不唯一,使得求解某一个问题的算法也不唯一.
③不同的算法有简繁、优劣之分,但每一种都会使问题有一个最终的结果.对于一个具体的问题,我们可以找到一个算法步骤相对较少、执行步骤也较少的算法,即最优算法.
[自主练习]
1.下列叙述不能称为算法的是( )
A.从北京到上海先乘汽车到飞机场,再乘飞机到上海
B.解方程4x+1=0的过程是先移项再把x的系数化成1
C.利用公式S=πr2计算半径为2的圆的面积得π×22
D.解方程x2-2x+1=0
解析:
A
×
A,B两选项给出了解决问题的方法和步骤,是算法
B
×
C
×
利用公式计算也属于算法
D
√
只提出问题没有给出解决的方法,不是算法
答案: D
2.关于一元二次方程x2-5x+6=0的求根问题,下列说法正确的是( )
A.只能设计一种算法
B.可以设计多种算法
C.不能设计算法
D.不能根据解题过程设计算法
解析: 一元二次方程的求解过程可以用公式法和分解因式法进行,也可用配方法求解,可根据不同的解题过程来设计算法,故可以设计多种算法,但几种算法输出的结果是一样的.
答案: B
3.已知一个算法如下:
第一步,令m=A.
第二步,如果b<m,则m=B.
第三步,如果c<m,则m=C.
第四步,输出m.
如果a=3,b=6,c=2,则执行这个算法的结果是________.
解析: 这个算法是求三个数a,b,c中的最小值.
答案: 2
4.已知A(x1,y1),B(x2,y2),求直线AB的斜率的一个算法如下:
(1)输入x1、y1、x2、y2的值.
(2)计算Δx=x2-x1,Δy=y2-y1.
(3)若Δx=0,则输出斜率不存在,否则(Δx≠0),k=__①__.
(4)输出斜率k.
则①处应填________.
解析: 由斜率的计算公式应填.
答案:
题型一 算法的概念
下列关于算法的说法,正确的有( )
①求解某一类问题的算法是唯一的;
②算法必须在有限次之后停止;
③算法的每一步操作必须是明确的,不能有歧义或模糊;
④算法执行后一定产生确定的结果.
A.1个 B.2个
C.3个 D.4个
[思路探究] 明确题意,根据算法的特征逐一作出判断
解析: 由算法的概念,知②③④正确,而解决某类问题的算法不一定是唯一的,从而①说法不正确.故选C.
答案: C
[规律方法] 理解算法的关键点
(1)算法实际上是解决问题的一种程序性方法,它通常解决某一个或一类问题,用算法解决问题,体现了从特殊到一般的数学思想.
(2)判断一个问题是否有算法,关键看是否有解决某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.
[变式训练]
1.计算下列各式中的S值,能设计算法求解的是( )
①S=2+4+6+…+1 000;
②S=2+4+6+…+1 000+…;
③S=2+4+6+…+2n(n≥1,n∈N).
A.①② B.①③
C.②③ D.①②③
解析: 由算法的有限性知②不正确,而①③都可通过有限的步骤操作,输出确定结果.
答案: B
题型二 算法的设计
写出解方程x2-2x-3=0的一个算法.
[思路探究] 解一元二次方程的方法很多,此处,我们用因式分解法、配方法、公式法写出算法
解析: 法一:算法如下.
(1)将方程左边因式分解,得(x-3)(x+1)=0.①
(2)由①得x-3=0,②或x+1=0.③
(3)解②得x=3,解③得x=-1.
法二:算