1、2.2 算法控制结构 2.3 算法解决问题 上节回顾 1.算法的概念解决问题或完成任务的一系列步骤为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合2.算法的特征有穷性;可行性;确定性;0个或多个输入;1个或多个输出;3.算法的要素数据,运算,控制转移4.算法的描述自然语言、流程图、伪代码、计算机程序设计语言流程图 图形 名称 功能 开始/结束符 表示算法的开始或结束 输入/输出框 表示算法中数据的输入或输出 处理框 表示算法中数据的运算处理 判断框 表示算法中的条件判断 流程线 表示算法中的流 连接点 表示算法中的转接 开始 输入二项系数a一项系数b常数c计算判别式 acb42
2、0?abx2计算 输出方程 无实数根 输出方程有实数根 输出x 结束 顺序结构 分支结构 循环结构 顺序结构 各个步骤按照先后顺序依次执行 特点:1.依次执行2.每个步骤一定会被执行,且只执行一次分支结构(选择结构)根据条件判断选择不同的分支执行:条件为真时执行Y指向的语句,否则执行N指向的语句。选择结构中,必有一个分支被执行,其余分支不执行。分支结构(选择结构)语句块 T F 条件表达式是否为真?当表达式为真时,执行语句块;否则什么都不执行;当表达式为真时,执行语句块1;否则(表达式为假)执行语句块2;单分支结构 双分支结构 分支结构(选择结构)特点:条件判断选择不同分支,一次只执行一个分支
3、,其余分支不执行 当条件成立时,执行,本结构结束。若为假,则判断,依此类推。直到找到一个为真的条件时,才执行相应的语句块,本结构结束。循环结构 对某个条件进行判断,当符合条件时,执行Y指向的语句(循环体),然后返回重新判断这个条件,当符合条件时,再次执行循环体。重复上述过程,直到不符合条件,则跳出循环,执行循环体后面的指令。若循环条件始终满足?算法无限循环,违背有穷性 分支or循环 判断依据:分支结构:条件是否成立只判断1次 循环结构:条件是否成立往往判断多次 分支结构 循环结构 分支结构 循环结构 累加器 FalseTruei=i+2i0?开始s0,i100ss+i输出n 结束 如图所示,该
4、流程图所表示的算法违背了算法的 有穷性,下列修改方法中,可以改正错误的是()A.1处改为i1B.2处改为s=0?C.3处改为ii-2D.1处改为ss-i1 2 3 C 累加器 :ss+i 计数器 s0,n0 x0?Y ss+x,nn+1 N 开始 输入x 输出n 结束 依次输入x的值为 3、2、1、-1 n=1 n=2 n=3i1 c=0 i=10?Y ii+1 N 输出c i能被3整除?Y cc+1 N 计数器:nn+1100?cc+i 用算法解决问题 用算法求解圆的面积,已知圆的半径r,圆的面积s 明确要素:r s明确数学函数:2rs具体算法设计:1.输入半径r 2.s 2r3.输出面积s
5、 描述算法:输入r s 输出s 2r用算法解决问题 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