1.1.2程序框图与算法的基本逻辑结构第三课时问题提出1.算法的基本逻辑结构有哪几种?用程序框图分别如何表示?步骤n步骤n+1顺序结构条件结构满足条件?步骤A步骤B是否(1)满足条件?步骤A是否(2)循环结构循环体满足条件?是否直到型循环体满足条件?是否当型2.在学习上,我们要求对实际问题能用自然语言设计一个算法,再根据算法的逻辑结构画出程序框图,同时,还要能够正确阅读、理解程序框图所描述的算法的含义,这需要我们对程序框图的画法有进一步的理解和认识.知识探究(一):多重条件结构的程序框图思考1:解关于x的方程ax+b=0的算法步骤如何设计?第三步,判断b是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.第一步,输入实数a,b.第二步,判断a是否为0.若是,执行第三步;否则,计算,并输出x,结束算法.bxa=-思考2:该算法的程序框图如何表示?开始输入a,ba=0?是b=0?输出x结束输出“方程的解为任意实数”是输出“方程无实数根”否否bxa=-思考3:你能画出求分段函数的值的程序框图吗?2,131,011,0xxyxxxxìï+ïïïï=-#íïïï-ïïî开始输入xx1?输出y结束x≥0?否是y=x+2是y=3x-1否y=1-x思考1:用“二分法”求方程的近似解的算法如何设计?220(0)xx知识探究(二):混合逻辑结构的程序框图第一步,令f(x)=x2-2,给定精确度d.第二步,确定区间[a,b],满足f(a)·f(b)0.第三步,取区间中点.2abm第四步,若f(a)·f(m)0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.思考2:该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?f(x)=x2-2输入精确度d和初始值a,b2abm思考3:该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?f(a)f(m)0?a=mb=m是否思考4:该算法中哪几个步骤构成循环结构?这个循环结构用程序框图如何表示?第三步第四步|a-b|d或f(m)=0?输出m是否思考5:根据上述分析,你能画出表示整个算法的程序框图吗?开始结束f(a)f(m)0??a=mb=m是否|a-b|d或f(m)=0?输出m是否f(x)=x2-2输入精确度d和初始值a,b2abm+=知识探究(三):程序框图的阅读与理解考察下列程序框图:开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否思考1:怎样理解该程序框图中包含的逻辑结构?开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否思考2:该程序框图中的循环结构属于那种类型?开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否思考3:该程序框图反映的实际问题是什么?求12-22+32-42+…+992-1002的值.理论迁移例画出求三个不同实数中的最大值的程序框图.开始输入a,b,cab?ac?是x=a是x=c否bc?否x=b是x=c否输出x结束小结作业设计一个算法的程序框图的基本思路:第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.第一步,用自然语言表述算法步骤.第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.