《2.1顺序结构与选择结构 (2)》由会员分享,可在线阅读,更多相关《2.1顺序结构与选择结构 (2)(26页珍藏版)》请在金锄头文库上搜索。
1、2 算法框图的基本结构及设计2.1 顺序结构与选择结构 温故知新温故知新 一个人带三只狼和三只羚羊一个人带三只狼和三只羚羊过过河河, ,只有一条船只有一条船, ,同船可以容纳一个人和两同船可以容纳一个人和两只动物只动物, ,没有人在的时候没有人在的时候, ,如果狼的数量不少如果狼的数量不少于羚羊的数量狼就会吃掉羚羊于羚羊的数量狼就会吃掉羚羊. .如何安全渡如何安全渡河?河?思路分析思路分析: :在人运送动物过河的过程中在人运送动物过河的过程中, ,人离开岸人离开岸边时必须保证岸边的羚羊的数目大于狼的数目边时必须保证岸边的羚羊的数目大于狼的数目1 1. .人带两只狼过河人带两只狼过河; ;2 2
2、. .人自己返回人自己返回; ;3 3. .人带一只狼过河人带一只狼过河; ;4 4. .人自己返回人自己返回; ;5 5. .人带两只羚羊过河人带两只羚羊过河; ;6 6. .人带两只狼返回人带两只狼返回; ;7 7. .人带一只羚羊过河人带一只羚羊过河; ;8 8. .人自己返回人自己返回; ;9 9. .人带两只狼过河人带两只狼过河. .1.1.理解算法框图的顺序结构和选择结构;理解算法框图的顺序结构和选择结构;(重点)(重点)2.2.能用文字语言表示算法,并能将算法用顺序结构和选能用文字语言表示算法,并能将算法用顺序结构和选择结构表示为简单的框图择结构表示为简单的框图. .(难点)(难
3、点)算法框图:算法框图:在算法设计中,算法框图(也叫程序框图)可以准确、清在算法设计中,算法框图(也叫程序框图)可以准确、清晰、直观地表达解决问题的思路和步骤晰、直观地表达解决问题的思路和步骤. . 设计一种算法,从设计一种算法,从5 5个实数中找出最大数,个实数中找出最大数,. .解:解:设这设这5 5个数分别为:个数分别为:a a1 1,a,a2 2,a,a3 3,a,a4 4,a,a5 51 1、比较、比较a a1 1,a,a2 2的大小,记大数为的大小,记大数为b b (b(b的值变为的值变为 a a1 1,a,a2 2中大的数中大的数) ) 2 2、再比较、再比较b b与与a a3
4、3,记大数为,记大数为b b (b(b的值变为三数中最大的数的值变为三数中最大的数) ) 3 3、再比较、再比较b b与与a a4 4,记大数为,记大数为b b (b (b的值变为前的值变为前4 4数中最大的数数中最大的数) ) 4 4、再比较、再比较b b与与a a5 5,记大数为,记大数为b b (b (b的值变为前的值变为前5 5数中最大的数数中最大的数) ) 5 5、输出、输出b b,b b的值即为所求的最大数的值即为所求的最大数流流程程图图如如图图所所示示:为为了了更更简简洁洁、清清晰晰、直直观观和和便便于于检检查查,我我们们一一般般用用框框图图表表示示算算法法. .开始开始输入输入
5、a1,a2,a3,a4,a5比较比较a1,a2,记大数为,记大数为b比较比较b,a3,记大数为,记大数为b比较比较b,a4,记大数为,记大数为b比较比较b,a5,记大数为,记大数为b输出输出b结束结束开始开始输入输入a1,a2,a3,a4,a5b=a1否否是是b=a4ba4ba2否否是是b=a2ba3否否是是b=a3b0,x0,则则x x的绝对值等于的绝对值等于x,x,令令m=x;m=x;若若x0,x0,则执行第二步则执行第二步. .2. x2. x的绝对值等于的绝对值等于x,x,令令m=m=x;x;3.3.输出输出m.m.算法分析算法分析: :m=-xm=-x开始开始输入输入x xx0x0m
6、=xm=x输出输出m m否否是是结束结束 选选 择择 结结 构构顺序结构顺序结构由若干个依次执行的处理由若干个依次执行的处理步骤组成的逻辑结构步骤组成的逻辑结构. .这这是任何一个程序都离不开是任何一个程序都离不开的基本结构的基本结构. .选择结构选择结构在一个算法中,经常会遇在一个算法中,经常会遇到一些条件的判断,算法到一些条件的判断,算法的流程根据条件是否成立的流程根据条件是否成立有不同的流向,这种算法有不同的流向,这种算法结构称为选择结构结构称为选择结构. .步骤甲步骤甲步骤乙步骤乙条件条件步骤甲步骤甲步骤乙步骤乙小试牛刀小试牛刀1.1.设计一个算法设计一个算法, ,求一元二求一元二次方
7、程次方程axax2 2+bx+c=0+bx+c=0(a0, a0, b b2 2-4ac0-4ac0)的根)的根, ,画出相应画出相应的框图的框图. . 输入系数输入系数a,b,ca,b,c输出输出x x1 1、x x2 2结束结束开始开始计算计算顺序结构顺序结构小试牛刀小试牛刀2.2.设计一个算法设计一个算法, ,求一元二次方程求一元二次方程axax2 2+bx+c=0+bx+c=0(a0a0)的根的根, ,画出相应的画出相应的框图框图. . 输入输入a,b,ca,b,c输出输出x x1 1,x,x2 2结束结束开始开始00否否是是输出无实数解输出无实数解计算计算选择结构选择结构例例2 2
8、通常说一年有通常说一年有365365天天, ,它表示地球围绕太阳转一它表示地球围绕太阳转一周所需要的时间周所需要的时间, ,但事实并不是这样简单但事实并不是这样简单. .根据天文根据天文资料资料, ,地球围绕太阳转一周所需要的精确时间是地球围绕太阳转一周所需要的精确时间是365.242 2365.242 2天天, ,称之为天文年称之为天文年. .这个误差看似不大这个误差看似不大, ,却却引起季节和日历之间难以预料的大变动引起季节和日历之间难以预料的大变动. .在历法上规在历法上规定四年一闰定四年一闰, ,百年少一闰百年少一闰, ,每四百年又加一闰每四百年又加一闰. .如何判如何判断某一年是不是
9、闰年呢断某一年是不是闰年呢? ?请设计一个算法请设计一个算法, ,解决这个解决这个问题问题, ,并用框图描述这个算法并用框图描述这个算法. .闰年的来历闰年的来历.mp4.mp4解解: :算法步骤如下算法步骤如下: :1.1.若若y y不能被不能被4 4整除整除, ,则输出则输出“y y不是闰年不是闰年”. .2.2.若若y y能被能被4 4整除整除, ,则判断则判断y y是否能被是否能被100100整除整除: :(1)(1)若若y y不能被不能被100100整除整除, ,则输出则输出“y y是闰年是闰年”; ;(2)(2)若若y y能被能被100100整除整除, ,则判断则判断y y是否能被
10、是否能被400400整除整除: :若若y y能被能被400400整除整除, ,则输出则输出“y y是闰年是闰年”; ;若若y y不能被不能被400400整除整除, ,则输出则输出“y y不是闰年不是闰年”. .这个算法的框图如图:这个算法的框图如图:开始开始输入输入y y4 4整除整除y y是是否否100100整除整除y y400400整除整除y y否否是是输出输出“y y不是闰年不是闰年”输出输出“y y是闰年是闰年”结束结束 是是否否1.1.算法的两种表示方法算法的两种表示方法: :用自然语言表示算法用自然语言表示算法; ;算法框图算法框图. .2.2.顺序结构与选择结构顺序结构与选择结构 过去的,让它过去,永远不要回顾;未来的,等来时再说,不要空想;我们只抓住现在,用我们现在的理想,做我们所应该做的. 茅盾