算法教学基本要求与教学建议培训-分.ppt
分支结构,算法的教学建议,分支结构,重要的知识点引入方法选用的例题意图及学生容易出现的错误,分支结构的概念:根据给定条件是否成立而决定执行不同步骤的算法结构。基本模式:双分支结构和单分支结构复习算法基础中的“算术表达式”、“关系表达式”和“逻辑表达式”,找出其本质的不同。执行到分支结构时,在两条可能的路径中,根据条件是否成立而选择其中一条执行。,5.流程图规范画法流程线,走直角,自上而下。双分支结构中,条件判断的是、否结果左右分列;单分支结构中,条件判断成立时,往下执行预定步骤,否则跳过预定步骤。无论单、双分支都一定有判断框和汇聚点,判断框是分支结构的开始,汇聚点是分支结构的结束。判断框有一个入口,两个出口,而分支结构只有一个入口,即判断框的入口,一个出口,即汇聚点的出口。,分支结构的引入方法,如同前面顺序结构一样,建议先用现实生活中的实际问题引入。例1:双分支结构:上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。,单分支结构是双分支结构的一种特例。例2:单分支结构:出门带伞问题:如果下雨,带伞后出门,否则直接出门。,分支结构的两种基本模式与程序设计中的IF语句:,此时,一定要问清楚学生,“否”的这个分支含义是什么,然后对应语句中的ELSE,使学生明确ELSE语句中其实隐含着不成立的条件,无须重复书写。,双分支结构,单分支结构,IF语句:双分支的语句格式:IF THEN ELSE END IF单分支的语句格式:IF THEN END IF,要强调IF和END IF的一一 对应。要强调分支结构中语句块采用缩进方法书写。要讲清楚分支结构的执行过程,特别要和顺序结构区别开来。,选用的例题意图及学生容易出现的错误,引入阶段例1、例2(生活实例)分支结构的初步学习例3、练习1、练习2分支结构的初步应用例4、例5分支嵌套例6、例7、拓展练习1、拓展练习2分支结构的提高应用例8、例9,例3:从键盘输入的两个不相等的数,打印出其中较大的数。(双分支结构)意图:让学生着手简单的分支结构的运用,尝试写分支的判断条件。,上机调试时,再次强调ELSE语句后面不加条件,练习1:求分段函数值,学生可能画出的流程图,练习2:输入一个数到变量a,输出它的绝对值(不用绝对值函数)。,通过上述的例题和练习题可以对分支结构进行初步学习和应用,为后续的提高打下基础。,例4:输入两个不相等的数a,b,比较大小,将大数放在a中,小数放在b中,然后输出a,b。(单分支结构),本题是为后续的三数比大小做准备,同时可以复习单分支结构。题目比前面的题目难度增加,学生可能会遗忘交换两个变量值的典型算法,教师可以在本例题中提醒学生。,例5:某超市促销苹果,购买一斤苹果,为每斤3元,购买5斤以下每斤原价;超过5斤部分每斤打8折,输入购买的斤数,输出应付款额.(双分支结构),上述两个例子是分支结构的初步应用,例6:分段函数问题(分支的嵌套),分段函数学生容易理解,条件显而易见,可以用数轴的办法,让学生观察数值区域,选择从大到小,或从小到大的判断方法,用分支嵌套来实现。,注意语句的书写规范,IF和END IF成对出现。,例7:购买地铁车票:乘1-4 站 3元/位;5-9站 4元/位;9站以上5元/位;输入人数person、站数n,输出应付款pay(分支嵌套)。,总结不管先判断哪个条件,后判哪个条件,都要看到条件不成立时隐含着的条件,判断过的无需反复进行判断,但也不要漏掉哪段范围,尤其是一个个的边界值。学生的做法可能有多种,请教师务必留意判断条件的正确性。,上述例题和后续的两个拓展练习“手机通话费用计算”和“一元二次方程求解”都是为巩固分支嵌套而设计的。,例8:输入三个不相等的数a,b,c,将最大数赋值给变量max并输出。(一题多解)讲解方法:先回忆两数比较大小,然后可先在黑板上将三个数的关系分析清楚,再根据其逻辑关系画出流程图。可通过让学生读流程图或补全流程图来降低难度。,如果ab,如果ac,max=a,如果ac,max=c,如果ab,如果bc,max=b,如果bc,max=c,抓大放小,逐步判断,IF a=b THEN IF a=c THEN max=a ELSE max=c END IFELSE IF b=c THEN max=b ELSE max=c END IFEND IF,IF a=b and a=c THEN max=aELSE IF b=a and b=c THEN max=b ELSE max=c END IFEND IFPRINT max,学生可能用逻辑表达式来找出最大值,甚至利用逻辑表达式,连续用三句单分支结构来解决问题。教师此时需要指出的是重要的是利用分支嵌套的思想来理顺数之间的关系,追求的是逻辑思维过程,而非最后的结果。,IF a=b and a=c THEN max=aEND IFIF b=a and b=c THEN max=bEND IFIF c=a and c=b THEN max=cEND IFPRINT max,擂台法:max=aIF bmax THEN max=bEND IFIF cmax THEN max=cEND IF,擂台法学生不容易想到,却是最精炼的一种算法,在有条件的学校,教师可以尝试提示不用分支嵌套结构和逻辑表达式来完成本题。,例9:输入一个三位数的整数,将数字位置重新排列,组成一个尽可大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。本例题是对学生思路的一种拓展,需要结合前面学习的函数与运算符,如mod运算符 和 int函数。教师可以提示学生这些运算符和函数的功能。,以上两题都是分支结构的提高应用,教师可以结合学生的特点,选用读流程图、读程序、流程图填空或程序填空的方法,降低难度,加深理解。,引入阶段例1、例2(生活实例)分支结构的初步学习例3、练习1、练习2分支结构的初步应用例4、例5分支嵌套例6、例7、拓展练习1、拓展练习2分支结构的提高应用例8、例9,以上题目难度逐渐递进,通过34个课时加深学生对分支结构的理解,为后续的循环结构和算法实例打下基础,谢谢!,上海市向明中学 励颖,