内部资料,请勿外传
1
第三讲 算法的概念、程序框图(一)
【考纲要求】:
①了解算法的含义、了解算法的思想.
②理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.
一、算法的概念
1.用加减消元法解二元一次方程组2121xyxy?=-ïïíï+=ïî 的具体步骤是什么?
2.参照上述思路,一般地,解方程组 111222axbycaxbycì+=ïïíï+=ïî 1221(0)abab的基本步骤是什么?
3.根据上述分析,用加减消元法解二元一次方程组,可以分为五个步骤进行这五个步骤就构成了解二元
一次方程组的一个“算法”.我们再根据这一算法编制计算机程序,就可以让计算机来解二元一次方程组.那么
解二元一次方程组的算法包括哪些内容?
4.一般地,算法是由按照一定规则解决某一类问题的基本步骤组成的,你认为这些步骤的个数是有限的
还是无限的?每个步骤是否有明确的计算任务?
5.有人对哥德巴赫猜想“任何一个大于4的偶数都能写成两个质数之和”,设计了如下操作步骤:
第一步,检验6=3+3,
第二步,检验8=3+5,
第三步,检验10=5+5,
……
利用计算机无穷地检验下去!请问:这是一个算法吗?
6.根据上述分析,归纳出算法的概念:在数学中,按照一定规则解决某一类问题的明确和有限的步骤称
为算法.
二、算法的步骤设计
不同类型的问题有不同内容的算法,我们以判断一个整数是否为质数为例,一起来探讨算法的步骤设计.
1.如果让计算机判断7是否为质数,如何设计算法步骤?
2.如果让计算机判断35是否为质数,如何设计算法步骤?
3.整数89是否为质数?如果让计算机判断89是否为质数,按照上述算法需要设计多少个步骤?
4.用2~88逐一去除89求余数,需要87个步骤,这些步骤基本是重复操作,我们可以按下面的思路改
进这个算法,减少算法的步骤.
(1)用i表示2~88中的任意一个整数,并从2开始取数;
(2)用i除89,得到余数r. 若r=0,则89不是质数;若r≠0,将i用i+1替代,再执行同样的操作;
(3)这个操作一直进行到i取88为止.
你能按照这个思路,设计一个“判断89是否为质数”的算法步骤吗?
5.一般地,判断一个大于2的整数是否为质数的算法步骤如何设计?
①
②
①
②
内部资料,请勿外传
2
开始
输入n
i=2
求n除以i的余数
i的值增加1,
仍用i表示
i>n-1或r=0?
r=0?
输出“n不是质数”
输出“n是质数”
结束
是
是
否
否
【典例精讲】
例1.设函数f(x)的图象是一条连续不断的曲线,写出用“二分法”求方程f(x)=0的一个近似解的算法.
小结:“算法“没有一个精确化的定义,教科书只对它作了描述性说明,算法具有如下特点:
(1)有限性:一个算法的步骤是有限的,必须在有限操作之后停止,不能是无限的.(2)确定性:算法的
每一步骤和次序应当是确定的.(3)有效性:算法的每一步骤必须是有效的.
【练习】:某电信部门规定:拨打市内电话时,如果通话时间不超过3分钟,则收取通话费0.2元,如果通
话时间超过3分钟,则超过部分以每分钟0.1元收取通话费(通话不足1分钟时按1分钟计),试设计一个
计算通话费用的算法.要求写出算法.
三、算法的程序框图
1.“判断整数n(n>2)是否为质数”的算法步骤是:
第一步,给定一个大于2的整数n;
第二步,令i=2;
第三步,用i除n,得到余数r;
第四步,判断“r=0”是否成立?若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示;
第五步,判断“i>(n-1)”是否成立,若是,则n是质数,结束算法;否则,返回第三步.
我们将上述算法用下面的图形表示:
内部资料,请勿外传
3
步骤n
步骤n+1
上述表示算法的图形称为算法的程序框图又称流程图,其中的多边形叫做程序框,带方向箭头的线叫做流
程线,你能指出程序框图的含义吗?
2.在上述程序框图中,有4种程序框,2种流程线,它们的特定的名称和功能:
图形符号 名称 功能
终端框(起止框) 表示一个算法的起始和结束
输入、输出框 表示一个算法输入和输出的信息
处理框(执行框) 赋值、计算
判断框 判断某一条件是否成立,成立时在出口处标
明“是”或“Y”;不成立时标明“否”或“N”
流程线 连接程序框,表示算法步骤的执行顺序
3.在逻辑结构上,“判断整数n(n>2)是否为质数”的程序框图由几部分组成?
四、算法的顺序结构
1.任何一个算法各步骤之间都有明确的顺序性,在算法的程序框图中,由若干个依次执行的步骤组成的逻
辑结构,称为顺序结构,用程序框图可以表示为:
在顺序结构中可能会用到哪几种程序框和流程线?
【典例精讲】
例2 若一个三角形的三条边长分别为a,b,c,令2abcp++=,则三角形的面积
()()()Sppapbpc=---
.利用这个公式设计一个计算三角形面积的算法步骤,并画出程序框图
表示.
内部资料,请勿外传
4
开始
结束
输入正整数n
输出y
y=x2+5
x=2n-1
开始
输入A、B、C、
x0、y0
z1=Ax0+By0+C
z2=A2+B2
2
1
z
|z|
d
输出d
结束
【练习】
1.一个笼子里装有鸡和兔共m只,且鸡和兔共n只脚,设计一个计算鸡和兔各有多少只的算法,并画出程
序框图表示.
2.已知下图是“求一个正奇数的平方加5的值”的程序框图,若输出的数是30,求输入的数n的值.
【家庭作业】
已知点)y,x(P00和直线l:Ax+By+C=0,画出求点P到直线l的距离d的程序框图。
【作业答案】
程序框图: