? 算法步骤有明确的顺序性,可以用 自然语言来描述,但通常缺乏简便 性。 ? 为了使算法的程序或步骤表达得更 为直观、准确,我们更经常地用图 形方式来表示它。
开始
判断整数n(n>2)是否为质数
输入n
1.程序框图
i=2
求n除以i的余数r
一般用i=i+1表示---
i的值增加1,仍用i表示 i>n-1或r=0? 是 r=0? 否 否 N是质数 结束
是
N不是质数
构成程序框的图形符号及其作用 图形符号 名 称 功 能
终端框(起止框) 输入、输出框 处理框(执行框) 判断框
一个算法的起始和结束 一个算法输入和输出的信息 赋值、计算 判断某一条件是否成立,出 口成立标“是”不成立标 “否” 连接程序框 连接程序框图的两部分
或
流程线 连接点
开始 输入n
i=2 顺序结构
求n除以i的余数r i的值增加1,仍用i表示 i>n-1或r=0? 是 是 r=0? 否 N是质数 结束 否 循环结构
N不是质数
条件结构
2.程序框图的基本逻辑结构
求n除以i的余数r
i的值增加1,仍用i表示 输入n
i=2 i>n-1或r=0? 是 否
顺序结构
是 r=0? 否 N是质数
循环结构
N不是质数
条件结构
你能说出这三种基本逻辑结构的特点吗?
(1)顺序结构 ——顺序进行
流程线将程序框自上而下地连接,按顺序执行算法 步骤。 步骤n 步骤n+1
例3、已知一个三角形的三边分别为a、b、c,利用海伦公式设 计一个算法,求出它的面积,并画出算法的程序框图。
开始 输入a,b,c
p=
a+b+c 2
S=
p(p - a)(p - b)(p - c) .
输出S
结束
练 习
1、已知摄氏温度C与华氏温度F之间的关系为 F=1.8C+32。设计一个由摄氏温度求华氏温度 的算法,并画出相应的程序框图。
算法步骤:
第一步:输入摄氏温度C; 第二步:计算1.8C+32, 并 将这个值记为华 氏温度F; 第三步:输出华氏温度F。
(2)条件结构 ——表示分类
判断条件是否成立,以此决定算法的流向
满足条件? 是
否
满足条件? 是
否
步骤A
步骤B
步骤A
例4 任意给定3个正 实数,设计一个算法,判 断分别以这3个数为三 边边长的三角形是否存 在.画出这个算法的程 序框图.
条件结构
算法步骤如下: 第一步,输入3个正实数a,b,c. 第二步,判断a+b>c,a+c>b, b+c>a是否同时成立. 若是,则存在这样的三角形; 否则,不存这样的三角形.
条件结构
例5 设计一个求解一元二次方程
ax 2 ? bx ? c ? 0
的算法,并画出程序框图表示.
例5程序框图也可设计为
开始 输入a,b,c Δ=
b2-4ac
Δ≥0?
否
是
是 Δ=0? 否
x?
?b 2a
?b ? ? x1 ? 2a
x2 ?
?b ? ? 2a
方程无实数根
输出x
输出x1 , x2
结束
?0( x ? 0) ? 例6、设计一个算法计算分段函数 y ? ?1(0 ? x ? 1) ? x( x ? 1) 序框图。 ?
, 的函数值,并画出程
第一步、输入x 第二步、判断“x<0”是否成立, 若 是,则输出y=0,否则执行第三步; 第三步、判断“x<1”是否成立, 若 是,则输出y=1,否则输出y=x。
小结
? 除起止框外,任意一个程序都只有一条流 程线“流进”。 ? 输入输出框,处理框只一条线“流出”; 判断框必有两条线“流出”。
练 习
1、下列关于程序框图的说法正确的是 A、程序框图是描述算法的语言 ( )
B、程序框图可以没有输出框,但必须要有输入框给变量赋值
C、程序框图可以描述算法,但不如自然语言描述算法直观 D、程序框图和流程图不是一个概念
2、下列功能“
A、赋值 B、计算
”没有功能的是 ( )
C、判断 D、 以上都不对
3、已知函数 y ? x - 3 ,设计一个算法求相应 的函数值,并画出程序框图。
? P.20 习题A组第3题
P.20 习题1.1B组第1题
P.20 习题A组第3题
算法步骤: 第一步,输入人数x,设收取的卫生费 为y元.
开始
输入x N
第二步,判断x与3的大小,若x>3,则 费用为m= 5+(x-3)×1.2=1.2x+1.4; 若x≤3,则费用为m=5. 第三步,输出m.
x>3? Y
y=1.2x+1.4
y=5
输出y
结束
P.20 习题1.1B组第1题
算法步骤: 第一步,输入a1,b1,c1, a2,b2,c2. 第二步,计算 x=(c2b1 -c1b2)/(a1b2 -a2b1) y=(c2b1 -c1b2)/(a1b2 -a2b1) 第三步,输出x,y
开始
输入a1,b1,c1, a2
。b2,
c2 N
a1b2-a2b1≠0?
Y x=(c2b1 -c1b2)/(a1b2 -a2b1)
y=(c2b1 -c1b2)/(a1b2 -a2b1)
输出“x=
”; ,“y=
”;
输出“输入数据不合题意
结束