当前位置:首页 > 教学设计 > 程序框图视频教学 [一例程序框图的教学思考]
 

程序框图视频教学 [一例程序框图的教学思考]

发布时间:2019-01-23 04:19:32 影响了:

  摘要:算法初步是人教A版课标教材的新增内容,广大一线教师也是初次接触. 本文通过一例程序框图的课堂教学,结合学生的学习反馈,针对教师教与学生学中产生的困惑,提出几点教学思考: “或”命题的过早介入,增加了学生的认知难度;算法的程序框图结构严谨,不同于一般的流程框图;把算法思想渗透,并贯穿于整个高中数学课程之中.
  关键词:程序框图;算法思想;循环结构
  
  程序框图是一种用程序框、流程线及文字说明来表示算法的图形. 它的作用之一在于为程序设计语言的编写提供一个算法的逻辑结构直观图,这无异于在自然语言和程序设计语言之间架设了一座沟通的桥梁. 然而,对初次教学程序框图的教师而言,难免存在一些认知上的困惑和教学偏差,以下是本人对人教A版《数学》必修3中一例程序框图的教学思考.
  教材指出“1.1.1节中‘判断整数n(n大于2)是否为质数’的算法可以用下面的程序框图表示”(如图1).
  
  图1
  这是一个结构完整的程序框图,它包含三种逻辑结构:顺序结构、条件结构和循环结构,任何复杂的算法都可以由这三种基本结构来实现. 这个程序框图是对“判断整数n(n大于2)是否为质数”的算法直观而准确的表达,是一座沟通算法自然语言和程序语言的思维桥梁,很容易将算法自然语言编成程序设计语言. 可是这座桥是怎样建成的呢?对于初次接触程序框图的学生来说,会存在许多认知上的困惑,值得我们教学时思考.
  1. 思考一:“或”命题的过早介入,对判断框中的“i>n-1或r=0?”条件的认知有难度
  为了让学生读懂这个程序框图,结合前面例题的算法步骤,输入相应n的值(如n=7,n=35等),根据框图的流程走向执行算法的每一个步骤. 在教学过程中,我们发现对于判断框中“i>n-1或r=0?”后的走向,许多学生如坠云雾里. “i>n-1或r=0”是一个式子成立还是两个都成立呢?“i>n-1或r=0”成立后怎么还问“r=0”是否成立?
  究其原因,我们在学习人教A版必修3之前还没有学习“逻辑联结词”的相关内容,相应内容要在选修1-1或2-1中才学. 我们仔细分析下去,从逻辑的角度说“i>n-1或r=0”成立,表示“i>n-1”与“r=0”中只要有一个成立即可. 它们成立的情况可以分三种:“i>n-1”成立且“r=0”不成立;“r=0”成立且“i>n-1”不成立;“i>n-1”与“r=0”都成立,这就为学生的判断增加了难度. 然而,这里“i>n-1”与“r=0”其实只能成立一个. 当“i>n-1”成立时,“r=0”就不会成立,结果输出“n是质数”;当“r=0”成立时“i>n-1”一定不成立,结果输出“n不是质数”;当“i>n-1”与“r=0”都不成立时,则继续循环体的运行.
  2. 思考二:算法语言的程序框图结构严谨,不同于一般的流程图
  教材给出的程序框图从结构上看是简洁完美的结论,从学生认知的角度看,与前一节中用自然语言描述的算法步骤有些出入.为顾及学生对这一算法的理解,教学时便直接将“自然语言”翻译成“程序框图”.
  算法自然语言:
  第一步,给定大于2的整数n.
  第二步,令i=2.
  第三步,用i除n,得到余数r.
  第四步,判断“r=0”是否成立. 若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.
  第五步,判断“i>n-1”是否成立. 若是,则n是质数,结束算法;否则,返回第三步.
  根据这个自然语言描述的算法流程步骤,将 “自然语言”翻译成“程序框图”(图2). 该流程图直观地反映了“判断整数n(n大于2)是否为质数”的算法,也包含三种逻辑结构:顺序结构、条件结构和循环结构. 至此,似乎一座沟通自然语言和程序语言的桥梁已建成. 可是,在后续学习条件语句、循环语句并运用它们编程时,却遇到了新问题:对应的条件语句和循环语句不能执行,是一座“断桥”!通过分析发现,图中的条件结构和循环结构相互交叉,各自不能构成一个独立的单元,通过这个框图不容易改写成计算机程序语言. 因为程序设计语言是由一些有特定含义的程序语句构成的,与程序框图中的三种基本逻辑结构相对应. 可见,该框图只能说是一般的流程图,还算不上是算法的程序框图.
  根据“只能被1和自身整除的大于1的整数叫质数”可知,判断“任意的整数n(n大于2)是否为质数”的基本算理是:用i表示2~(n-1)中的任意整数;用i除n,得到余数r;判断余数r是否为0,若是,则不是质数,否则,将i的值增加1,仍用i表示,再执行同样的操作;这个操作一直到i=n-1为止. 从算法的自然语言中发现需反复执行的步骤是:“用i除n,得到余数r”和“将i的值增加1,仍用i表示”. 结合前面对判断条件“i>n-1或r=0”的分析,当i=n时,r=0.因此,若以r=0作为循环结构的控制条件,以i>n-1(这里也可以用i>n)作为条件结构的判断条件,并对框图中的循环结构和条件结构做些修改,便得到图3的程序框图,就可以避免“或”命题的出现,相应的程序语言为下框所示.
  
  由此可见,在设计程序框图时一定要注意循环结构和条件结构的特点,循环结构和条件结构可以作为各自独立的单元而构成顺序结构. 因此,算法的程序框图结构严谨,不同于一般的流程框图.
  3. 思考三:明确课标要求,把算法思想渗透并贯穿于整个高中数学课程之中
  经过一轮的教学,回头看整章内容的安排,“算法”也是代数的一条主线,它直贯古今、横跨中外. 把握本章教学要求,需吃透整章内容,明确课标要求和编者意图.
  意图一:算法教学重在“讲算法,明算理”,从中体会算法的基本思想,发展有条理的思考与表达的能力,提高逻辑思维能力,把算法思想渗透和贯穿于高中数学课程之中,鼓励学生尽可能地运用算法解决相关问题,而不仅仅为了编程学算法.
  意图二:如何通过算法把“问题解决”交给计算机执行,将现代信息科技融入其中. 算法思想就是指把某类数学问题的解题步骤或解题过程“程序化”“机械化”的思想. 以算法为核心的“机械化”思想,为计算机解决各类实际问题提供了框架. 中学数学介绍的算法的主要描述语言有:自然语言、程序框图和程序语言. 自然语言用通俗易懂的文字、符号描述一个问题的思考过程,并记录成明确而有限的步骤. 它简明扼要,学习者容易理解并接受,但计算机是无法“理解”的,必须把它编成写计算机能够识别的程序设计语言,计算机才能够运行. 程序框图由顺序结构、条件结构和循环结构三种基本逻辑结构组成,它使学生认识算法步骤更直观、准确. 教材中介绍了几种程序语句,其结构与程序框图中的三种基本逻辑结构相对应.
  4. 结束语
  就本章来说,三种基本结构与程序框图是算法学习的重点,其中循环结构是学习的难点,初学时不明确如何设置变量和构造循环. 解决循环结构问题应明确三个关键的地方:“反复做什么”“从什么地方开始”“在什么条件下结束”. 这样自然会想到需要设置一个变量,让它充当“累加器”. 学生应明确“确定循环体”“给定初始化变量”与“设定循环控制条件”这三个构造循环结构的关键步骤,并从中领悟构造循环结构的一般方法.
  教材介绍程序框图的内容,采用“总――分――总”的布局. 教师应结合具体算法实例的教学,使学生通过分析、模仿、探索、操作,学习设计程序框图表达解决问题的过程,即将每一个算法步骤分解为若干输入、输出、条件结构、循环结构等基本算法单元,然后根据各单元的逻辑关系,用流程线将这些基本单元连接起来,最后实现把自然语言描述的算法转化为程序框图. 用程序框图表示的算法比用自然语言描述的算法更加直观、明确、流向清楚,而且更容易改写成计算机程序. 这样,在自然语言和程序语言之间的一座沟通思维的桥梁便建起来了.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3