当前位置:
文档之家› 1.1.3算法的三种基本逻辑结构和框图表示
1.1.3算法的三种基本逻辑结构和框图表示
①
①
m ab 2
否
am
f (a) f (m) 0?
是
bm
否
a b d或
f (m) 0?
是
输出m
结束
编写一个程序的三个步骤:
第一步:算法分析:根据提供的问题,利 用数学及相关学科的知识,设计出解决 问题的算法;
第二步:画出程序框图:依据算法分析, 画出对应的程序框图;
第三步:写出程序:根据程序框图中的算 法步骤,逐步把算法用相应的程序语句 表达出来.
(n∈N※)的过程。
开始
算法:
i=1
第一步:令i=1,s=0;
S=0
第二步:计算s=s+i;
第三步:计算i=i+1;
第四步:判断i >100是否 成立。若是,则输出s; 否则返回第二步。
S= S+i i= i+1 否 i>100?
是 输出S
结束 1.1-5
改进后的直到型循环结构程序图为:
算法:
第一步:令i=1,s=0; 第二步:输入一个正整数n。
算法:
第一步:令f(x)=x2-2,给定精度 ;
第二步:确定区间[a,b],满足f(a)*f(b)<0;
第三步:取区间中点 m a b
2
第四步:若f(a)*f(m)<0,则含零点的区间为 [a,m];否则,含零点的区间为[m,b], 将新得到的含零点的区间仍记为[a,b]。
第五步:判断[a,b]的长度是否小于 或f(m)
直到型循环结构: 先执行,后判断. 否-----执行
最后的结果 开始
i=1,S=0
否 i<=100? 是 S= S+i
i= i+1
输出S 结束
开始 i=1,S=0
S= S+i i= i+1 否 i>100?
是 输出S 结束
思考:如何用自然语言表述1.1-5中的算法?改进这一算法,
表示输出1,1+2,1+2+3,…,1+2+3+…+(n-1)+n
S=S+ i i=i+1
S=S+ i i= i+1
当型结构
i<=100? 是
否
S=S+ i
i= i+1
S=S+ i
解决方法就是加上一个判断,判断 是否已经加到了100,如果加到了则
i=i + 1
退出,否则继续加。
否
请填上判断的条件。
i>100?
是
直到型结构
当型循环结构: 先判断,后执行. 是-----执行
循环体
否 满足条件?
是
循环体 满足条件? 是
否
直到型循环结构: 先执行,后判断. 否-----执行
当型循环结构: 先判断,后执行. 是-----执行
例4 设计一算法,求和:1+2+3+…+100
算法1:
开始
第一步:确定首数a, 尾数b,项数n;
输入a,b,n
第二步:利用公式“总 和=(首数+尾数)×项 数/2”求和;
有如下程序框 图(如右图所 示),则该程 序框图表示的 算法的功能是 ________
答案:计算并输出使1×3×5×7…× <10 000 成立的最大整数.
§1.1.3
算法的三种基本逻辑结 构和框图表示
循环结构
在一些算法中,经常会出现从某处开始,按照一定的条件, 反复执行某些步骤的情况,这就是循环结构。反复执行的 步骤称为循环体。
循环结构有以下两种结构:
循环体 否
满足条件? 是
直到型循环结构
循环体 满足条件? 是
否 当型循环结构
直到型循环结构
当型循环结构
是否等于0,若是 则m是方程的近似解; 否则,返回第三步。
第一,二,三步
f(x)=x2-2
输入精确度d 和初始值a,b
m ab 2
顺序结构
第四步
否 a=m
f(a)f(m)<0 是
b=m
条件结构
第五步
第三步
第四步
否 │a-b│<d或f(m)=0
是 输出m
循环结构
开始
f (x) x2 2
输入 a,b, d
框图。输出预计年生产总值超过300万元的最早年份。
算法:
开始
第一步:输入2005年的年生产总值; 第二步:计算下一年的年生产总值;
n=2005 a=200
第三步:判断所得结果是否大于300。 若是,则输出该年年份;否 则,返回第二步
t=0.05a
a=a+t
n=n+1 否
a>300? 是
输出n
结束
例2.用二分法设计一个求方程x2 2 0的近似根的算法。
画程序框图 的方法:
算法的设计是画程序框图的基础,我们通 过对问题的分析,写出相应的算法步骤,画程 序框图之前应先对算法问题设计的合理性进行 探讨,然后分析算法的逻辑结构和各步骤(输 入、输出、判断、赋值和计算)的功能,画出 相应的程序框图.如果设计的程序框图较为复 杂,就要采取“逐步求精”的思想设计框图, 先将问题中的简单部分明确出来,再逐步对复 杂部分进行细化,然后一步一步向前推进,从 而设计出程序框图.
第三步:输出求和结果。
s (a b)n 2
输出S
结束
算法2:
第一步:从1开始将 自然数1、2、 3、…、 100逐个相加;
第二步:输出累加结果。
S=0 S=S+ 1 S=S+ 2 S=S+ 3 … S=S+ 100
S=S + i
思考:1、上边的式子有怎样的规律呢?
2、怎么用程序框图表示呢? 3、i有什么作用?S呢? 4、如何使程序结束?
开始 i=1 S=0 输入n
第三步:计算s=s+i;
第四步:计算i=i+1;
第五步:输出s 第六步:判断i >n是否成立。 否 若是,则结束算法; 否则返回第三步。
S= S+i
i= i+1 输出S
i>n? 是 结束
例7、某工厂2005年的年生产总值为200万元,技术革新后预计
以后每年的生产总值都比上一年增长5%。设计一个程序