流程图制作原则
Y N a ≥0
Y
开始
输入a
N
y=-x 输出y 输出
y=x
输出 |a|=a
输出 |a|=-a
结束
结束
下面是关于城市居民生活用水收费的问题 为了加强居民的节水 开始 意识,某市制 定了以 下生活用水收费标准: 输入x 每户每月用水未超过 7m3时,每立方米 N x≤7 收费 1.0元,并加收 0.2元的城市污水处理 Y 费;超过7m3的部分, y=1.2x y=7×1.2+(x-7)×1.9 每立方米收费1.5元, 并加收0.4元的城市污 水处理费. 输入y
b=0
N
x←− c b
c=0
N 输出“ 输出“方 程无解” 程无解”
Y
△<0
N Y △=0
x1 ←
输出x 输出
输出“方程无实数解” 输出“方程无实数解”
x←− b 2a
N
−b+ ∆ −b− ∆ , x2 ← 2a 2a
输出“ 输出“方程两个有相等 的解” 的解”x
输出“ 输出“方程有两个不 的解” 相等 的解”x1 x2
输入A,B,C
Y N A>B N N
A>C
B>C
Y 输出A
Y 输出C 结束 输出B
b>c
N 输出c 输出
Y
输出b 输出
结束
练习2 练习 看下面的程序框图,分析算法的作用
(1)
开始
输入a ,b
从小到大排列a、 b两数
N
a<b? Y 输出a,b
输出b, a
结束
练习3 设计求实数a的绝对值 练习 设计求实数 的绝对值 的一个算法,并用流程图表示: 的一个算法,并用流程图表示: 开始 输入x 输入 x<0
能用流程图表示算法 能识别流程图所描述的算法
回顾反思
通过本节课的学习, 1.通过本节课的学习,我们掌握了算法框 图的选择结构及利用这种结构设计算法 流程图。 流程图。 2.选择结构的特点是需要根据对条件的判 断结果来决定后面的步骤的结构. 断结果来决定后面的步骤的结构.
练习 徐州市出租汽车最新计费标准如 以内( 下:在3km以内(含3km)路程按起步 以内 ) 元收费, 以外的路程按2.4元 价7元收费,超过 元收费 超过3km以外的路程按 元 以外的路程按 /km收费 试给出一个出租车计费的算法 收费. 收费 试给出一个出租车计费的算法.
输出x 输出
输出“方程无实数解” 输出“方程无实数解”
输出x 输出 1,x2
结束
设计解一元二次方程ax 例1.设计解一元二次方程 2+bx+c=0(a≠0)的一个 设计解一元二次方程 = ( ) 算法,并用流程图表示. 算法,并用流程图表示 变形2:如果要输出二次方程根的详细信息 如果要输出二次方程根的详细信息, 变形 如果要输出二次方程根的详细信息,那么又该如 何设计算法? 何设计算法? △←b -4ac
解:算法步骤 (1)输入 ; )输入x; (2)若x < 0,则y = - x ; ) , (3)若x≥0,则y = x ; ) , (4)输出 )输出y
开始 输入x 输入 x<0
Y N
y=-x 输出y 输出 结束
y=xLeabharlann 例3 任意给定 个正实数, 3个正实数,设计 一个算法, 一个算法,判断 分别以这3 分别以这3个数 为三边边长的三 角形是否存在. 角形是否存在. 画出这个算法的 流程图
x←− b 2a
输出x1,x2 输出
Y
△=0
x1 ←
N
−b+ ∆ −b− ∆ , x2 ← 2a 2a
输出“ 输出“方程两个有相等 的解”x 的解”
输出“ 输出“方程有两个不 相等 的解”x1 x2 的解”
开始 输入a,b,c 输入 Y
Y Y 输出“ 输出“方 程有无数 个解” 个解”
a=0
N
△←b2-4ac
2
S1 若△=0;执行 ,否则执行 ; ;执行S2,否则执行S4;
b S2 x ← − ; 2a
Y
△<0
x1 ←
N
−b+ ∆ −b− ∆ , x2 ← 2a 2a
输出“方程无实数解” 输出“方程无实数解”
S3 输出“方程两个有相等的解”x,结 输出“方程两个有相等的解” 束 ; x1 ← − b + ∆ , x 2 ← − b − ∆ S4 ; 2a 2a S5 输出“方程有两个不相等 的 输出“ 结束; 解”x1, x2 , 结束
结束
练习4 练习 根据给出的两个流 程图,分析 分析: 程图 分析 (1)图1所解决的是什么问 图 所解决的是什么问 题? (2)回答 回答: 回答 当输入的x值为 值为1时 输 ①当输入的 值为 时,输 的值为多大? 出 y的值为多大 的值为多大 要使输出的y值为 值为8,输 ②要使输出的 值为 输 入的x值为多大 值为多大? 入的 值为多大 输入的x和输出的 和输出的y能 ③输入的 和输出的 能 相等吗? 相等吗
开始 输入x 输入 Y
x≤2
N
y ← −2
y ← x2 − 2x
输出y 输出 结束
图1
图2
N x
开始 输入a,b 输入
a=0
Y
Y
(3) 图2所解 所解 决的是什么 问题? 问题
N
输出“ 输出“方程根 为全体实数” 为全体实数”
-b/a
b≠0
输出“x是方 输出“方程 输出“ 是方 输出“ 程的根” 程的根” 无实数根” 无实数根”
N
−b+ ∆ −b− ∆ , x2 ← 2a 2a
输出“方程无实数解” 输出“方程无实数解”
, ,
结束
− b− ∆ x2 ← 2a
输出x 输出 1,x2
输出x 输出 1, x2.
设计一个算法, 例2 设计一个算法,任意输 入一个x,计算y 入一个 ,计算 = | x | ,并 输出 y 的数值。 的数值。
流程图使用的图框
起止框 流程线 输入、 输入、输出框
处理框
判断框
A B 示意图
在程序框图中的体现就是用流程线 流程线将程序框 顺序结构在程序框图中的体现就是用流程线将程序框 自上而下地连接起来,按顺序执行算法步骤 算法步骤。 自上而下地连接起来,按顺序执行算法步骤。如在示意图 地连接起来 中 , A框和 框是依次执行的, 只有在执行完A框指定的 框和B框是依次执行的 , 只有在执行完 框指定的 框和 框是依次执行的 操作后,才能接着执行 框所指定的操作 框所指定的操作。 操作后,才能接着执行B框所指定的操作。
解方程 ax+b=0
结束
小结:
在一个算法中, 在一个算法中,经常会遇到一些条件的判 断,算法的流程根据条件是否成立有不同的 流向.这种先根据条件做出判断 判断, 决定执 流向.这种先根据条件做出判断,再决定执 哪一种操作的结构成为选择结构( 行哪一种操作的结构成为选择结构(或分支 结构) 结构)
要求
开始 输入a,b,c
a+b>c,a+c > b, b+c > a是否同 时成立? Y
输出“存在这样的 三角形”
N
输出“不存在这 样的三角形”
结束
练习1 练习1.下面流程图 表示一个什么样的 算法? 算法?
给出一个确定三个数 最大值的算法 Y 开始 输入a,b,c 输入
a>b且 且 a>c
N
输出a 输出
1.2.2选择结构 22
问题:某铁路客运部门规定甲、 问题:某铁路客运部门规定甲、乙两地之间旅客托运 , w ≤ 50 行李的费用为 0.53× w 其中w 单位:kg)为行李的重量. 其中w(单位:kg)为行李的重量. 计算费用c(单位: c(单位 计算费用c(单位:元)的算法可以用怎样的算法结构 来表示? 来表示?
解:算法步骤如下: 算法步骤如下: S1 输入里程 ; 输入里程x; S2 若x≤3;则y←7, ; , 否则 y←2.4(x-3)+7; - ; S3 输出 . 输出y
输出y 输出 结束
设计解一元二次方程ax 例1.设计解一元二次方程 2+bx+c=0(a≠0)的 设计解一元二次方程 = ( ) 一个算法,并用流程图表示. 一个算法,并用流程图表示 变形1:如果没有给出条件 变形 :如果没有给出条件a≠0,那么如何设计算法? ,那么如何设计算法?
结束
一个判断结构可以有多个判断框, 一个判断结构可以有多个判断框, 就是说:选择结构可以嵌套. 就是说:选择结构可以嵌套.
若有A 三个不同大小的数字,你能设计一个算法, 例2 若有A、B、C三个不同大小的数字,你能设计一个算法,找出 其中的最大值吗?试给出解决问题的一种算法,并画出流程图。 其中的最大值吗?试给出解决问题的一种算法,并画出流程图。 解:应该先两两比较,算法和流程图如下: S1 输入A、B、C; S2 如果A>B,那么转S3,否则转S4; S3 如果A>C,那么输出A,转S5,否则输出C,转S5; S4 如果B>C,那么输出B,转S5,否则输出C; S5 结束。 开始
S1 若b=0,则执行 , = ,则执行S4, 否则执行S2; 否则执行 ; c S2 x ← −
b
S3 输出 ,结束; 输出x 结束 结束; S4 若c=0,输出 , “方程有无数个 结束, 解” ,结束,否则输 结束 方程无解” 出“方程无解”; Y
输出“ 输出“方 程有无数 个解” 个解” c=0
分析:出租车收费 ( 和行驶里程x( )之间的函数关系为: 分析 出租车收费y(元)和行驶里程 (km)之间的函数关系为: 出租车收费
x ∈(0,3] 7, y= 2.4(x − 3) + 7, x ∈(3, +∞)