1、2.2 算法控制结构 2.3 算法解决问题上节回顾上节回顾1.算法的概念算法的概念解决问题或完成任务的一系列步骤为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合2.算法的特征算法的特征有穷性;可行性;确定性;0个或多个输入;1个或多个输出;3.算法的要素算法的要素数据,运算,控制转移4.算法的描述算法的描述自然语言、流程图、伪代码、计算机程序设计语言流程图流程图图形图形 名称名称 功能功能开始/结束符表示算法的开始或结束输入/输出框表示算法中数据的输入或输出处理框 表示算法中数据的运算处理判断框 表示算法中的条件判断流程线 表示算法中的流 连接点 表示算法中的转接开始开始输入二项
2、系数输入二项系数a一项系数一项系数b常数常数c计算判别式计算判别式acb420?abx2计算计算输出方程输出方程无实数根无实数根输出方程有实数根输出方程有实数根输出输出x x结束结束顺序结构顺序结构分支结构分支结构循环结构循环结构顺序结构顺序结构各个步骤按照先后顺序依次执行各个步骤按照先后顺序依次执行特点:特点:1.依次依次执行执行 2.每个步骤每个步骤一定一定会被执行,且会被执行,且只执行一次只执行一次分支结构(选择结构)分支结构(选择结构)根据条件判断选择不同的分支执行:根据条件判断选择不同的分支执行:条件为真时执行条件为真时执行Y指向的语句,否则执行指向的语句,否则执行N指向的语句。指向
3、的语句。选择结构中,必有一个分支被执行,其余分支不执行。选择结构中,必有一个分支被执行,其余分支不执行。分支结构(选择结构)分支结构(选择结构)语句块TF条件表达式是否为真?当表达式为真时,当表达式为真时,执行语句块;执行语句块;否则什么都不执行;否则什么都不执行;当表达式为真时,当表达式为真时,执行语句块执行语句块1 1;否则(表达式为假)否则(表达式为假)执行语句块执行语句块2 2;单分支结构单分支结构双分支结构双分支结构分支结构(选择结构)分支结构(选择结构)特点:条件判断选择不同分支,一次特点:条件判断选择不同分支,一次只执行一个分支,其余分支不执行只执行一个分支,其余分支不执行当条件
4、成立时,执行,本结构结束。若为假,则判断,依此类推。直到找到一个为真的条件时,才执行相应的语句块,本结构结束。循环结构循环结构对某个条件进行判断,当符合条件时,执行对某个条件进行判断,当符合条件时,执行Y Y指指向的语句向的语句(循环体循环体),然后返回重新判断这个条,然后返回重新判断这个条件,件,当符合条件时,再次执行循环体当符合条件时,再次执行循环体。重复上。重复上述过程,直到不符合条件,则跳出循环,执行述过程,直到不符合条件,则跳出循环,执行循环体后面的指令。循环体后面的指令。若循环条件始终满足?若循环条件始终满足?算法无限循环,违背有穷性算法无限循环,违背有穷性分支分支oror循环循环
5、判断依据:分支结构:条件是否成立只判断判断依据:分支结构:条件是否成立只判断1 1次次 循环结构:循环结构:条件是否成立往往判断条件是否成立往往判断多次多次分支结构分支结构循环结构循环结构分支结构分支结构循环结构循环结构累加器累加器FalseTruei=i+2i0?开始s0,i100ss+i输出n结束如图所示,该流程图所表示的算法违背了算法的如图所示,该流程图所表示的算法违背了算法的有穷性,下列修改方法中,可以改正错误的是(有穷性,下列修改方法中,可以改正错误的是()A.1处改为i1B.2处改为s=0?C.3处改为ii-2D.1处改为ss-i123C累加器累加器 :s ss+is+i计数器计数
6、器s0,n0 x0?Yss+x,nn+1N开始输入x输出n结束依次输入依次输入x x的值为的值为 3 3、2 2、1 1、-1-1n=1 n=2 n=3i1c=0i=10?Yii+1N输出c i能被3整除?Ycc+1N计数器计数器:nn+1100?cc+i用用算法解决问题算法解决问题用算法求解圆的面积,已知圆的半径用算法求解圆的面积,已知圆的半径r,r,圆的面积圆的面积s s明确要素:明确要素:r s明确数学函数:明确数学函数:2rs具体算法设计具体算法设计:1.1.输入输入半径半径r r2.s2.s2r3.3.输出输出面积面积s s描述算法:描述算法:输入rs输出s2r用算法解决问题用算法解
7、决问题1.抽象与建模抽象与建模a.提炼核心要素并加以确定或假设b.用数学符号描述解决问题的计算模型2.设计算法设计算法a.输入数据b.处理数据 c.输出处理结果3.描述算法描述算法自然语言、流程图、伪代码、计算机程序设计语言某地出租车米表进行计费,规则如下:3公里(包括3公里)以内收起步价10元;超过3公里但低于10公里(包括10公里)时,超过部分每公里2元;超过10公里时,超过部分每公里3元。用用算法解决问题算法解决问题某地出租车米表进行计费,规则如下:3公里(包括3公里)以内收起步价10元;超过3公里但低于10公里(包括10公里)时,超过部分每公里2元;超过10公里时,超过部分每公里3元。明确要素:明确要素:明确数学函数:明确数学函数:具体算法设计具体算法设计:描述算法:描述算法:里程数里程数x 费用费用f),10(10,3(3,0(31027102)3(1010)(xxf1.输入里程数输入里程数x2.若若0 x=3,f=10;若若3x=10,f=10+7*2+3(x-10)3.输出费用输出费用f