人人范文网 教案模板

算法与程序设计教案模板(精选多篇)

发布时间:2020-07-18 08:33:06 来源:教案模板 收藏本文 下载本文 手机版

推荐第1篇:算法与程序设计教案

第一课 初识算法与程序设计

一、教学目标

1、知识与技能

(1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力;

( 2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。

2、情感、态度、价值观

学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。

二、教学重点难点

重点:算法概念的理解

难点:如何科学合理的选择和设计算法。

三、教学策略与手段

以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过Flash演示材料,比较直观地把抽象的问题简单化,使学生的思考逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主探究学习的能力。

四、教学过程(1课时)

(一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。【问题一】天下真的有“不要钱的午餐”吗?

某一餐馆门口海报上写着“不要钱的午餐”, 规则如下:在三个月内,来宾必须凑够五个人,五人每次来就餐必须按照不同的顺序坐,直到把所有可能的顺序都坐一遍,以后来吃饭就可永远免费” 。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢?

学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需要吃120次才有可能吃上免费午餐。

【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。 学生:学生讨论回答。 〖展示步骤〗

①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。

【Flash动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。

(二)【课件展示】算法的概念:

1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使用算法,只是没意识到罢了。如:洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。

2、在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。

【小试身手】按照这样的理解,我们可以设计出很多由具体数学问题解决一类数学问题的算

法.下面看一个例子:(要求学生自己考虑并写出具体的算法)

鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有17个头,48只脚,鸡和兔各有多少只?试设计一个求解的算法。

【设计意图】求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求解鸡兔同笼问题。

第一步:设有小鸡x只,小兔y只,则有

第二步:将方程组中的第一个方程两边乘-2加到第二个方程中去,得到 ,得到y=7; 第三步:将y=7代入(1)得x=10。

【变一变】在笼中有鸡、兔若干,已知有头a个,有脚b只,求各有多少只鸡和兔。

【师生合作】老师带领学生共同书写规范的算法的具体步骤,最后引出算法使用的范围:能解决一类问题,并且能重复使用。

(三)【课件展示】算法的基本特征

①有穷性 ②确定性 ③不唯一性 ④有效性(逻辑性)

1、有穷性:一个算法应该包含有限个操作步骤,而不能是无限的。

2、确定性:算法的每个步骤都应该是明确无误的,不能含义模糊,使执行者无所适从。

3、有零个或者多个输入,有一个或者多个输出

4、有效性:算法中的每一步都应该能有效地执行,执行算法最后应该能得到确定的结果。

【教学总结】

1、本节课通过一些生活中看似简单问题的解决方法和步骤,使学生比较轻松的接受了生活算法的概念,进一步理解了计算机算法的概念。

2、课堂教学的效益取决于学生对所学知识理解了多少,能否用所学知识来解决一些实际问题。本节课的设计突出讲与练的结合,培养学生的动手能力,并且引出学生对下一节课的内容的思考,比较顺利的完成了本节课的教学任务。

3、如何优化算法,找到算法的形式和用算法解决问题的效益的最佳结合点,还尚需探讨。

推荐第2篇:算法与程序设计

《算法与程序设计》教学中实施研究性学习探步

作者:赵濮民

摘要:研究性学习是教育科研领域中一个崭新的课题。信息技术教学作为以培养创新精神、研究能力和实践能力为目标取向的必修课程,它强调让学生通过研究性学习,提出问题,收集材料,对研究性课题进行探索、分析、研究,最后基于问题解决模式,在实践操作中培养学生科学的态度和价值观以及创新精神、创新思维、创造能力,并学会解决生活中与信息技术学习有关的实际问题。职业学校的学生,不仅应具有独立接受知识的能力,更应具有独立探索知识的能力,由“研究性学习”补充原有的“接受式学习”,使学习方式更趋完善,只有当这两种学习方式结合起来,优势互补,才能使基础教育适应时代对人才培养的要求。

关键词:程序设计;研究性学习;求真;求全;求变;求新;优势互补

《算法与程序设计》是职业学校信息技术教学中的一个重点,也是难点。传统的程序设计教学以老师讲授型为主,由于算法与程序设计的内容逻辑性强,普遍认为在程序设计教学中难以实施研究性学习。

研究性学习是以“培养学生具有永不满足、追求卓越的态度,培养学生发现问题、提出问题、从而解决问题的能力”为基本目标,以学生从学习中获得作品设计与制作方法的困惑为方向,以在提出问题和解决问题的全过程中学习到算法与程序设计为学习方法的课程。经过反复研究,我们认为研究性学习可以应用于程序设计教学中。实施研究性学习的关键是要确定一个目标,要鼓励学生主动地发现问题,并且通过探究或实践活动去试图解决问题。在课题研究的过程中采用分组交流讨论、查阅资料、协作探究、归纳总结等方式,一步步引领学生深刻掌握算法与程序设计的精髓。

一、通过研究性学习,重构算法知识体系,要求真 研究性学习是学生在老师的指导下,结合真实生活,选定主题,然后搜集相关材料,对材料进行归纳、加工处理、分析、总结,得到相应结论的学习活动。在《算法与程序设计》教学中,根据教学内容,经过反复研究,确定了研究主题《搜索算法的应用研究》和《动态规划算法的解题应用研究》,并根据学生的自愿报名成立了两个研究小组。然后各小组根据自己研究的算法,重新整理相应的知识,对知识进行认知、归纳、总结。如《搜索算法的应用研究》小组,对搜索算法从以下几方面进行整理:

1、搜索算法的算法思想、分类;

2、深度优先搜索的算法思想与算法结构;

3、广度优先搜索的算法思想与算法结构;

4、深度优先搜索的优先策略;

5、广度优先搜索的优化策略;

6、深度优先搜索与广度优先搜索的异同。学生通过对搜索算法知识进行整理、分类、小结,加深了对搜索算法的理性理解与感性认知。

二、通过研究性学习,同学之间取长补短,要求全

每个学生都有所长,也有所短,研究性学习一个重要的特点就是:分工合作,共同讨论,共同提高,使参与的学生全面发展。我们的“搜索算法的应用研究”小组共有五个成员,根椐学生的特点、特长,对他们进行分工,每位学生研究上述其中一个问题,然后整个小组一起讨论,每位学生介绍自己的研究情况、研究成果,然后其他同学进行补充,发表自己的见解,这样每个同学都使自己的研究内容得到补充,同时也学习到了其他同学研究方面的知识,可以取长补短,共同提高,得到全面发展。

三、通过研究性学习,总结算法的应用规律,要求变

研究性学习的目的,是要求学生搜集与主题有关的资料,归纳整理相关资料,根据相关材料和知识,对主题进行研究,提出自己的观点或结论。我们在程序设计教学中进行算法专题研究也是这样,除要求学生归纳、整理专题算法知识外,还要总结出算法的应用规律、应用算法解题的步骤和算法的框架,能根据实际情况,随机应变。如在“动态规划的应用研究”中,学生总结出:动规划是解符合“无后效性原则”的最优问题的一种算法思想;用动态规划解题的一般步骤是:(1)判断题目是否为求最优问题,是否符合“无后效性原则”;(2)确定如果划分阶段;(3)确定每个阶段有几种状态;(4)找出状态转移方程和边界条件;(5)用算法语言实现算法过程。又如在“搜索算法的应用研究”中,研究小组的同学总结出:(1)广度优先搜索算法通常应用于解最少步数问题,而深度优先搜索算法则通常用来解所有路径问题;(2)深度优先搜索和广度优先搜索都是搜索算法,前者时间复杂度较大,而后者则占用的内存较大;(3)深度优先搜索在实现时用递归或用堆栈来实现,而广度优先搜索是用队列来实现,实现两种算法所用的数据结构不同;(4)深度优先搜索和广度优先搜索都是搜索算法,但两者的算法结构有较大的不同。学生通过自己对算法应用规律的总结,对算法的应用得到升华,进一步提高算法的应用能力和程序设计能力。

四、通过研究性学习,提高分析、归纳和综合能力,要求新

对算法的专题研究,不仅要对算法理论进行总结,算法应用的研究也是很重要的一方面,通过算法的解题应用,既提高了学生分析问题的能力,也加深了学生对算法的理解,提高了学生的算法应用能力,进而得到对学生创新能力的培养。另外,我们在算法研究过程中,要求学生透切理解算法内容,用算法语言准确描述算法,通过这种途径,进一步加深学生对算法的理解,同时也提高了学生的算法表达能力和归纳、总结的能力。

通过对算法进行专题研究,可以进一步加深学生对算法知识的理解,也可以提高学生的算法应用能力和程序设计能力。实践告诉我们:在整个研究过程中要注意以下几个问题:

1、课题不宜太大。研究课题的确定是研究性学习实施过程中重要的一环,课题选择恰当与否,直接关系到整个课题研究的成败。在程序设计教学中进行研究性学习活动,选题要遵循下面的原则:(1)课题的范围不宜太大;(2)有一定的应用价值;(3)结合学生的实际。一个好的开始是成功的一半,在研究性学习活动中也是如此。

2、要理论研究与算法应用相结合。对算法的专题研究,算法应用是重点。在算法知识归纳总结的基础上,重点应研究算法应用的一般规律、算法结构、应用算法解题的一般步骤等。不应该只是对算法理论的空洞论述,否则效果不好、意义也不大。

3、充分发挥教师的引导作用、学生的主体作用。在算法研究活动中,应充分发挥教师的引导和指导作用,既不能放任自由,也不能包办代替,要充分发挥学生的主体作用。当学生遇到问题和困难时,老师应当引导和启发学生,让学生去探索和研究,而不是直接告诉学生答案,老师始终是学生的引导者,学生是真正的参与者,使学生通过算法研究,加深对算法的理解,提高算法应用能力和程序设计能力。

职业学校的学生,不仅应具有独立接受知识的能力,更应具有独立探索知识的能力,由“研究性学习”补充原有的“接受式学习”,使学习方式更趋完善,只有当这两种学习方式结合起来,优势互补,才能使基础教育适应时代对人才培养的要求。

推荐第3篇:《算法与程序设计》选修教案

第一课

初识算法与程序设计

一、教学目标

1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力;

(2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。

2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。

二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。

三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过Flash演示材料,比较直观地把抽象的问题简单化,使学生的思考逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主探究学习的能力。

四、教学过程(1课时)

(一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。【问题一】天下真的有“不要钱的午餐”吗? 某一餐馆门口海报上写着“不要钱的午餐”, 规则如下:在三个月内,来宾必须凑够五个人,五人每次来就餐必须按照不同的顺序坐,直到把所有可能的顺序都坐一遍,以后来吃饭就可永远免费” 。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢? 学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需要吃120次才有可能吃上免费午餐。

【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉的危险。你能不能找出一种安全的渡河方法呢?请 1

写一写你的渡河方案。 学生:学生讨论回答。 〖展示步骤〗 ①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。 【Flash动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。

(二)【课件展示】算法的概念:

1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使用算法,只是没意识到罢了。如:洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。

2、在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。【小试身手】按照这样的理解,我们可以设计出很多由具体数学问题解决一类数学问题的算法.下面看一个例子:(要求学生自己考虑并写出具体的算法) 鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有17个头,48只脚,鸡和兔各有多少只?试设计一个求解的算法。 【设计意图】求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求解鸡兔同笼问题。 第一步:设有小鸡x只,小兔y只,则有 第二步:将方程组中的第一个方程两边乘-2加到第二个方程中去,得到 ,得到y=7; 第三步:将y=7代入(1)得x=10。 【变一变】在笼中有鸡、兔若干,已知有头a个,有脚b只,求各有多少只鸡和兔。 【师生合作】老师带领学生共同书写规范的算法的具体步骤,最后引出算法使用的范围:能解决一类问题,并且能重复使用。

(三)【课件展示】算法的基本特征 ①有穷性 ②确定性 ③不唯一性 ④有效性(逻辑性) 2

1、有穷性:一个算法应该包含有限个操作步骤,而不能是无限的。

2、确定性:算法的每个步骤都应该是明确无误的,不能含义模糊,使执行者无所适从。

3、有零个或者多个输入,有一个或者多个输出

4、有效性:算法中的每一步都应该能有效地执行,执行算法最后应该能得到确定的结果。【教学总结】

1、本节课通过一些生活中看似简单问题的解决方法和步骤,使学生比较轻松的接受了生活算法的概念,进一步理解了计算机算法的概念。

2、课堂教学的效益取决于学生对所学知识理解了多少,能否用所学知识来解决一些实际问题。本节课的设计突出讲与练的结合,培养学生的动手能力,并且引出学生对下一节课的内容的思考,比较顺利的完成了本节课的教学任务。

3、如何优化算法,找到算法的形式和用算法解决问题的效益的最佳结合点,还尚需探讨。3

第二课 用计算机解决问题

一、教学目标 (1)让学生了解算法、穷举法、程序设计语言、编写程序和调试程序等概念。 (2)让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述。 (3)让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用。

二、重点难点 重点用计算解决问题的过程中的分析问题、设计算法、和上机调试程序等步骤。用计算机解决问题的过程中的分析问题、设计算法也是本节的难点。

三、教学过程(2课时)

(一)引入 教师:“在科技发达的今天,我们到处都可以看到计算机的踪影,感受到计算机给学习、生活带来的方便。然而,在惊叹计算机的神奇和享受的欢乐的时候,你是否了解计算解决问题的基本过程?有没有思考过其中的奥妙呢?下面我们先看一个古典的问题:”

学生观看的电视剧《汉刘邦》片断,内容大致如下: “韩信是我国西汉初著名的军事家,刘邦得天下,军事上全依靠他。韩信点兵,多多益善,不仅如此,还能经常以少胜多,以弱胜强。在与楚军决战时韩信指挥诸侯联军,在垓下十面埋伏,击败楚军,楚霸王项羽因此自杀。” 片断结束时屏幕出现“韩信点兵”问题:“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人„„。刘邦茫然而不知其数。你呢?”

(二)问题 教师:“下面我们先助刘邦解决一个简单的问题。” “韩信点兵”问题1:求整除3余

1、整除5余

2、整除7余4的最小自然数。

(三)探究 把全班分成16个学习小组,每个小组的同学一起探究、讨论问题。利用已学过的数学知识找出题目已知什么求什么、明确已知和未知之间的关系和写出求解问题的解题步骤。并填写《计算机解决问题的过程》教学活动表中的“探究问题记录表”。如下:

探究问题记录表

分析问题(找出已知和未知、列出写出解题步骤 结果 已知和未知之间的关系) 学生讨论,教师在这过程中到各学习小组中,引导个别学习小组分析问题、写出解题步骤。教师提问2~3个同学,从中逐渐引导出类似如下的分析问题和解题步骤,并给出算法的概念。

分析问题(找出已知和未知、列出写出解题步骤 已知和未知之间的关系)

1、令X为1。

2、如果X整除3余1,X整除5余2,

设所求的数为X,则X应满足: X整除7余4,这就是题目要求的数,X整除3余1 则记下这个X。 X整除5余2

3、令X为X+1(为算下一个作准备)。X整除7余4

4、如果算出,则结束;否则跳转2。

5、写出答案。教师解释第3步“另X为X+1”并指出它与数学中的区别,并从上面的解题步骤中总结出穷举的算法。 教师:“刚才有些同学把题目解出来了,答案是67,韩信作为大将军,统率士兵当然不止67人,下面我们来解决一个数据量稍大的问题。” 展示题目: “韩信点兵”问题2:求整除3余

1、整除5余

2、整除7余

4、整除13余

6、整除17余8的最小自然数。学生分析上述问题并写出算法,不用计算。学生有了第1题的经验,很快会写出和第一题类似的算法。如下:

分析问题(找出已知和未知、列出写出解题步骤 已知和未知之间的关系) 设所求的数为X,则X应满足:

1、令X为1。X整除3余1

2、如果X整除3余1, X整除5余2

X整除5余2, X整除7余4 X整除7余4, 5

X整除13余6 X整除13余6, X整除17余8 X整除17余8,则记下这个X。

3、令X为X+1。

4、如果算出,则结束;否则跳转2。

5、写出答案。教师:“上面的结果超过1万,人工计算要很长时间,在科技发达的今天,你想到什么?”(用计算机解题)

(四)用计算机解决问题 教师:“计算机怎么样解决问题?用计算机解决问题,同样要经过分析问题、设计算法两步骤。”在讲授过程中展示人工解题中分析问题和设计算法这两个步骤。用计算机解题,是不是输入上面的算法?上面用自然语言描述的算法,计算机不懂,必须翻译成计算机的语言,这就是程序设计语言。” 本例用Visual Basic语言编写的程序请看如下: Private Sub Command1_Click() Dim X As Integer, Y As Integer X = 1: Y = 0 Do If X Mod 3 = 1 Then If X Mod 5 = 2 Then If X Mod 7 = 4 Then If X Mod 13 = 6 Then If X Mod 17 = 8 Then Y = X End If End If End If End If X = X + 1 Loop Until Y >0 Print "韩信统御士兵数:"; Y End Sub 教师:“程序编好以后,通过键盘输入计算机,并运行程序查看结果这个过程叫调试程序。” 6

(五)观摩 根据前面编制的程序,启动Visual Basic程序设计环境,输入程序代码,进行调试,最后得到运行的结果。要求同组内先完成的同学帮助还未完成的同学。帮助的时候不能代劳,只能动口不动手。

(六)交流 教师:“前面我们学习了用计算机解决问题的过程,它和人工解有什么关系呢?同一学习小组的同学一起探讨人工求解问题和用计算机求解问题的异同,并把讨论结果记录在《计算机解决问题的过程》教学活动表的“讨论记录”表中。如下: 关于求解问题的方式讨论记录

求解问题的方式 相同点 不同点 人工求解问题 用计算机求解问题 教师提问2~3个小组的讨论结果,并引导出大致如下的形式结果: 求解问题的方式 相同点 不同点 对题目进行解答、运算速度人工求解问题 慢、不需要计算机等 分析问题、设计算法、得出结果、验算结果等 编写程序、调试程序、运算用计算机求解问题 速度快等 7

第三课 算法与算法的描述

一、教学目标

1、知识与技能 (1)了解算法的定义及其表达方法; (2)认知流程图的六种基本符号; (3)理解计算机解决问题的一般过程。

2、方法与过程 (1)理解用不同的表达方法描述算法的优缺点; (2)掌握用流程图描述简单的算法。

3、情感态度和价值观 以生活中的实例引入算法,激发学生的学习兴趣,培养学生的主动探究能力。

二、重点难点

(一)教学重点

1、算法的定义;

2、算法的三种表达方法;

3、流程图的六种基本符号;

4、用流程图描述简单的算法。

(二)教学难点

5、算法的描述(三种);

6、用流程图描述算法。

三、教学过程(2课时) 教学内容 预期目标 新课内容:

一、对算法的初步了解 1.一个简单的物理问题:求物体在恒力作用下的加速度。 根据在物理课中学过的知识,要解决这个问题有多种方法: 方法一: a) 测量出物体的质量m、拉力F和滑动摩擦力f b) 将测量所得的数据输入计算机 c) 根据牛顿第二定律F-f=m*a,计算出加速度a

d) 输出所得的结果 方法二: a) 测量出物体从静止开始移动的距离s、时间t b) 将测量所得的数据输入计算机 引入物理学中的例子,激发 c) 利用公式:s=a*t*t/2计算出加速度a 学生的学习兴趣,有助于学 d) 输出所得的结果 生理解算法的概念 2.算法的定义 这种为解决某一问题而设计的确定的有限的步骤称为算法。

二、算法的描述 要把解决问题的步骤表达出来,有多种方法可以表达算法。 引导出算法的概念

1.用自然语言表达 用自然语言表达算法,就是把算法的各个步骤,依次用人们熟悉介绍三种算法的表达方式,的自然语言表示出来。 并对它们进行比较,分析优优点:容易理解 缺点。 缺点:书写较烦、不确定性、对复杂的问题难以表达准确、不能被计算机识别和执行

给出流程图的基本符号,2.用图形符号表达 对其功能和使用情况加以用图形符号表达算法必须要有一组规定统

一、含义确定的专用符说明,以便今后在具体运用号。中的正确使用。 常用的“流程图”所用的基本符号 图形符号 符号名称 说明 流线 起始、终表示算法的开起始框:一流出线 止框 始或结束 终止框:一流入线 输入、输框中标明输只有一流入线和一出框 入、输出的内流出线

容 处理框 框中标明进行只有一流入线和一

什么处理 流出线 判定框 框中标明判定一流入线两流出线 条件并在框外(T和F

9

标明判定后的)但同时只能一流

两种结果的流出线起作用

向 流线 表示从某一框 给出流程图的作法,通过详到另一框的流细的解释说明使学生初步向 掌握流程图的使用和基本 连接圈 表示算法流向一条流线 画法。 出口或入口连 接点 优点:直观、形象 缺点:不能被计算机识别和执行 例6-1-1:“物体在恒力作用下的加速度”的算法用下图表达。

开始

M=m F1=F F2=f a=(F1-F2)/M 输出a

结束 3.用程序实现算法 用计算机能理解和执行的程序设计语言把算法表示出来,然后把了解计算机解决问题的一程序输入到计算机并执行,计算机才能按照预定的算法去解决问般过程,为今后用编程解决 10

题。 实际问题打下基础。 不同类型的计算机能够识别的指令和语言不尽相同,即使对同一 种计算机语言,不同类型的计算机对该语言的解释程序也有差异。 因此,用程序表示算法时,必须按照程序设计语言适用某类计算 机的具体规定来进行。 例:用Pascal语言表示“从键盘输入一组数据并求该组数据的平均值”的程序如下:

Program ex_aver

Var I:integer;x,av:real;

Begin

Av:=0;I:=0;

Do while not eof() Begin

Readln(x); av:=av+x;

I:=I+1;

End

av:=av/I; Writenln(“The average value is :”,av); End

三、用计算机解决问题的一般过程 使用计算机解决一个问题,一般包括四个过程 1.需求分析 “需求分析”是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。 “需求分析”就是确定要计算机“做什么”。 2.设计算法 弄清楚要计算机“做什么”后,就要设计计算法,明确要计算机“怎么做” 11

解决一个问题,可能有多种算法。例如,数学题常常有“一题多解”。这就是说,解决一个问题的算法可能不止一种。这是,应该通过分析、比较、挑选一种最优的算法。 3.编写程序 计算机只能接受并执行计算机程序设计语言编写的程序。当我们为解决一个问题确定了算法后,还必须将该算法用计算机程序设计语言编写程序。这个过程成为“编码”或“编程”。 4.上机调试与维护 编写完成的程序,不一定完全符合实际问题的要求,还必须在计算机上运行这个程序,排除程序中可能出现的错误,才能得到结果。这个过程称为“上机调试”。 即使是经过调试的程序,在使用一段时间后,仍然会被发现错误或不足之处。这就需要对程序做进一步的修改,使之更加完善。这个过程称为“维护”。 在实际解决问题时,上述四个步骤可能会根据不同的问题有所侧重。

12

第四课

程序与程序设计语言

一、教学目标

1、知识与技能 使学生知道什么是源代码,并理解算法、程序设计、程序设计语言之间的关系,了解程序设计语言的发展及种类。

2、过程与方法 使学生初步体验编程乐趣,了解如何编辑程序、编译程序和连接程序。

3、情感态度与价值观 让学生进一步领会算法和程序设计在解决问题中的地位,体会编写出程序的魅力,从而培养学生学习编程的兴趣。

二、重点难点 (1)重点:了解代码所包含的算法思想; (2)难点:计算机是如何编辑程序、编译程序和连接程序的。

三、教学过程(2课时) 正课讲解

(一)尝试用VB编写程序

1、

么是VB? ——VB是一种基本BASIC语言的可视化程序开发工具。

2、编写程序 ⑴从桌面上启动VB,弹出“新建工程”对话框,从“新建”页面中选“标准EXE”,然后“打开“按钮,建立”标准EXE工程。

注:为了避免打开时总是出现“新建工程”对话框,在首次启动时,勾选“不再显示这个对话框”。

⑵单击工具箱“CommandButton”的按钮,在Form1窗体中拖出一个“Command1”按钮。 Command1是命令按钮,它有6个属性、2个事件和4个方法。 属性

Caption Default 标题

决定窗体的默认命令按钮

Style Enabled 控件的外观

决定对象是否响应用户生成事件

Visible Picture 决定对象是否可见

显示的图形 13

事件 方法 Click Drag Refresh 单击 拖动 刷新 Move KeyPre SetFocus 移动 字符键被单设置焦点,将当前焦击 点强制设置到文本框对象上

⑶选中此按钮,从属性窗口中将Caption改为“韩信点兵”。 ⑷给按钮添加代码,在Private Sub Command1_Click()和 End Sub之间添加代码:

Dim N As Integer ‘声明N为整型 N=1 ‘赋初始值 Do(N mod 3=2) and(N mod 5=3) and (N mod 7=2) Then ‘满足条件打印N,不满足继续循环 Print N Exit do End if N=N+1 Loop ⑸从“运行”菜单中“单击”启动命令,运行程序。运行后,单击“韩信点兵”按钮。 注:运行时,不能修改程序代码。 实践题:从“调试”菜单中点击“逐语句”命令(F8),然后按F8键试着单步运行程序,观察代码是如何运行的,程序执行注释部分吗?在程序运行的过程中,用鼠标指向变量N,看看它的值有什么变化,为什么会这样变?

(二) 算法、程序设计与程序设计语言之间的关系 ⑴算法 提出问题:什么是算法?算法有哪些特征? ⑵程序设计——寻求解决问题的方法,并将其实现步骤写成计算机可执行的程序的过程。

⑶程序设计语言——泛指一切用于书写计算机程序的语言。

算法是程序设计的前提,它包含方法和步骤; 程序是实现算法中的思想的过程; 程序设计语言把算法转化为计算机认识的语言。 14

(三) 认识程序设计语言

1、发展过程 机器语言:由一串“0”和“1”构成二进制代码。 汇编语言:是一种符号化(英文助记符)的机器语言。 高级语言:如Basic、C/C++、Fortran、Pascal、Cobol、Java等。

2、分类(按转换方式不同分类)

编译型语言

解释型语言

编写的源程序需要用编译程序先翻译成机器语言的源程序输入计算机后,运行源程序,相应的解释程序目标程序,然后再由连接装配程序进行连接装配,生会逐条分析源程序中的语句,每解释一句由计算机执成可执行程序,这样才能被计算机执行。 行一句。 C/C++、VB、Pascal、Cobol Qbasic、Lisp

3、编辑程序、编译程序和连接程序 ⑴编辑程序 包含内容:一是将源程序逐个字符输入到计算机内存,二是修改源程序,三将修改好的源程序保存在磁盘文件中。 ⑵编译程序:将已编辑好的源程序(已存储在磁盘文件中)翻译成二进制的目标代码。 二进制代码在UNIX下后缀为“.o”的文件,在DOS下是后缀为“.obj”文件。 ⑶连接:将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有有绝对地址的可执行文件,它是计算机直接执行的文件。 在UNIX下它以“.out”为后缀,在MS-DOS以下“.exe”为后缀。

执行过程: 15

第五课 vb语言及程序开发环境

一、教学目标

1、知识与技能 掌握VB定义的常用的基本数据类型,常量与变量的定义方法,运算符、函数和表达式的描述。熟悉VB程序设计语言的开发环境,能调试简单的VB程序。

2、方法与过程

本节涉及到基础知识较多,所以要一个一个问题解决,从一个简单的求圆的面积的程序入手,从中分析VB程序一般包括的四部分,基本数据类型、常量与变量,运算符、函数和表达式,而且结合练习来加强对这些新知识的巩固。通过介绍VB程序的开发环境中的菜单、常用工具和常用窗口等,再通过上机操作运行一个程序,让学生更容易上手。

3、情感态度和价值观 这一节是学习VB程序的重要的入门课,授课时要注意结合学生的思路,逐个问题解决,不可一蹴而就。

二、重点难点

1、教学重点 (1) VB常用的的基本数据类型,常量与变量,运算符和表达式 (2) VB程序的开发环境

2、教学难点 把本节的内容加以运用

三、教学过程(3课时) 导入: 以下是一个“求半径为r的圆的面积”的程序,请你注意观察程序的组成结构及其功能,并思考如下的问题: (1)程序有多少行,每一行的作用是什么? (2)如果按语句的作用区分,这个程序包含几个部分?

Private sub command1_click()

‘定义名为command1_click()的事件过程 Const pi as single=3.14 ‘说明程序中pi是常量∏ Dim r as single,s as single

‘定义半径r和面积s为单精度实型 r=inputbox(“r=”,”请输入半径”)

‘输入r的值

s=pi*r*r ‘把表达式pi*r*r的值赋给s print “圆的面积s=”;s ‘把s的值输出到当前的窗体上 16

End sub ‘过程结束 考察上述程序,我们容易看到:程序共有代码7行,每一行都是VB的一个语句,VB的程序就是由这样的一组语句组成。每一个语句都是按照一定的规则书写的。 总结上述分析,我们可以得到VB程序的一般包括如下部分: (1) 数据类型说明部分 (2) 数据的输入部分 (3) 数据的处理部分 (4) 数据的输出部分

一、基本数据类型 描述客观事物的数、字符以及所有能输入到计算机中,并被计算机程序加工处理的集合称为数据。数据既是计算机程序处理的对象,也是运算产生的结果。 为了更好地处理各种数据,VB定义了多种数据的类型。基本数据类型是系统预先定义的数据类型,表2-1中列出了VB定义的常用的基本数据类型。 例如在上述的程序中,既有单精度实型数的数据(如3.14等),也有字符类型的数据,如“输入半 17

径”、“圆的面积S=”。

二、常量与变量 (1)常量 常量是指在程序运行过程中始终保持不变的常量、字符串等。例如在上述的程序中,3.

14、“r=”、“输入半径”等都是常量。在程序设计中,以于一些经常使用的常量,可以用常量说明语句来定义。这样可以提高程序的可读性和可维护性。 常量说明语句的格式是: Const 常量名 As 类型 = 表达式 在上述程序中,第2行就是一个常量说明语句,说明程序中需要使用的常量。 (2)变量 在程序处理数据时,对于输入的数据、参加运算的数据、运行结果等临时数据,通常把它们暂时存储在计算机的内存中。变量就是命名的内存单元位置。在VB中,变量名必须是由英文字母开头,后面则可以由字母、数字或其它符号组成;变量的名称最好与它所表示的内容意义相同的英文单词来确定。 (3)变量说明 使用变量前,一般应先说明变量名及其类型,以使系统为其分配存储单元,变量说明语句格式如下:

Dim 变量

As

类型 如Dim r as single,定义半径r为单精度实型

三、运算符、函数和表达式

(1)运算符 运算符是对数据进行加工的过程。描述各种不同运算的符号称为运算符,参与运算的数据称为操作数。在VB中,常用的运算符有算术运算符、字符串运算符和逻辑运算符等。 ①算术运算符有: +14 Age = Age + 1 Tree = Tree + Age Print "到"; Age; Loop Until Tree >= 100

"岁时种到"; Tree; "棵树!" End Sub 2.通过师生共同分析“陈婷植树”问题的程序,3.学生对老师所提问题展开分析问题、35

归纳总结VB语言的DO循环语句的格式、功能、设计算法、编写程序、调试程序等用计执行过程,以及书写的注意事项,归纳总结VB算机解决问题的探究活动。 语言的DO循环特点。 3.老师提出思考题:已知s=1×3×5×…×N,找4.学生在教师的指导下,阅读、分析、出一个最大整数N,使得S

5、要求学生上机练习共同探讨P58的用计算机解决问题的探究活动。交流,得出使用DO循环的技巧和心得。

4、上机练习:P54实践(1)、(2)

5、对几种DO循环的比较分析:归纳总结出各自不同的特点的把握要素,使同学们能运用自如。设立一些由人力解决较困难的问题,要求学生运要求学生能设计出算法及编写出程序。 拓展 用所学编程知识去解决,比如:判断一个大数是否为素数等问题。 小结 VB语言的DO循环语句、格式、功能和执行过程,以及几种不同DO 循环的比较。 教师在布置课本的练习:P59(5),指导学生根据本节所学的知识,分析问题,设计算法,练习编程求解问题。 36

第九课 模块化程序设计

一、教学目标 (1)理解自顶而下、逐步求精的程序设计方法; (2)掌握VB语言的过程与函数的定义和调用方法。 (3)理解模块化程序设计的基本思想。

二、重点难点 教学重点: 让学生学会使用VB语言的过程与函数的定义和调用方法。 教学难点: 理解模块化程序设计的基本思想,并运用于程序设计中。

三、教学过程(2课时) 教学环教师活动 学生活动 节 从歌德巴赫猜想的故事入手, 验证歌德巴赫 学生边阅读边倾听。 猜想,激发学生学习的兴趣和热情,通过先看P61情意 的程序2-9A观查此程序有没有功能重复的地方,导入 如何才能省略书写……并且反复调用同一功能的程序代码呢?拉开本节教学的序幕。 1.通过组织学生探究“验证歌德巴赫猜想”问1.学生对“验证歌德巴赫猜想”题,引导学生经历分析问题、设计算法、编写程问题展开分析问题、设计算法、序、调试程序等用计算机解决问题的过程;归纳编写程序、调试程序等用计算机总结自顶而下、逐步求精的程序设计方法; 解决问题的探究活动。 2.通过师生共同分析“验证歌德巴赫猜想”的2.学生在教师的指导下,阅读、新课 另一个程序,归纳总结VB语言的过程与函数的分析、归纳,完成实践任务。 讲解 定义和调用方法。 3.学生对“求五边形的面积”3.通过师生共同分析“求五边形的面积”程序,问题展开分析问题、设计算法、归纳总结模块化程序设计的基本思想。 编写程序、调试程序等用计算机 解决问题的探究活动。

4、要求学生求三个数的平均数。(用自定义函4.学生在教师的指导下,阅读、数及自定义子过程) 分析、归纳,完成实践任务。 37

1、求园的面积,已知半径为

1、

3、

5、

7、

9、11。(调用函数方法) 拓展

2、调用子程序,使第一行打印20个*,第二行打印10个*,第三行打印20个*。引导学生利用函数及子程序解决较复杂问题,体会利用函数及子程序的好处。 1.自顶而下、逐步求精的程序设计方法; 小结 2.VB语言的过程与函数的定义和调用方法; 3.模块化程序设计的基本思想。

指导学生根据本节所学的知识,完成求任意四边形的面积问题,要求他们能分练习析问题,设计算法,编程求解问题。 38

第十课 递归算法的实现

一、教学目标

1、知识与技能: 理解什么是递归算法,学生会用递归算法的思想分析问题 能够应用自定义函数方法实现递归算法的编程

2、过程与方法: 学生参与讨论,通过思考、动手操作,体验递归算法的方法

3、情感态度与价值: 结合数学中的实例,激发学生的数学建模的意识,培养学生多维度的思考问题和解决问题。 『教学目标设计的合理、准确。这也是在意料之中的,一般情况下,成功的教学任务分析一定会带来成功的教学目标设计。』

二、重点难点 重点:理解什么是递归算法,学生用递归算法的思想分析问题; 应用自定义函数方法实现递归算法的编程 难点:应用自定义函数方法实现递归算法的编程 『大部分教师在确立教学重、难点时不会给出确立的依据,可能这些依据早就在教师的脑中明确了,也有可能是一笔糊涂账,只不过是教参上是这样写的就照搬过来而已。如果在写教学重、难点的同时能再给出确立重、难点的依据会令教案更具借鉴意义。本案例的作者虽然没有写依据,但由于前面成功的教学任务分析,也就自然确立了教学重、难点。这也是很好的。』

三、教学过程(2课时) 进程 教师活动 学生活设计意图 动

使用情境教学创设课堂导入:

法 情境 今天很高兴,特此我给大家准备了一份礼品(精美包 在此活动过程装猴与兔艺术品),你们想知道里面有什么礼物吗?

中能让学生初学生:想„„ 师生共步从活动中体

师:好!我们班有一位同学知道里面有什么礼物!(在同活动验“问题的发上课之前事先告诉其中的一个同学)但是他不能就这样告“找答与收”从而走诉大家,有一个规则可以让我们知道里面装的是什么„„ 案” 进了递归的思规则是: 维模式,为进1.从第一排的第一个同学开始。 一步学习递归2.每位同学只问他相邻的同学,每位同学最多只能被 算法埋下伏笔 问一次,而且一个同学不能再问第二人,当任何一个同学 知道了答案,要求立即告诉曾经问过他的那个同学 (不能 告诉其他同学)以此类推。

3.一直到得出答案为结束。 以游戏规则开展,我想让第一位同学告诉大家,精装的礼物是什么? 39

启发师:前面我们学习了自定义函数,知道函数是为了实讨论活分析问题 主体 现某种功能而编写的一段相对独立的程序,并且可以多次动过确定方案,培养的调用。 程,总学生思维程序 结游戏化,为下面新 规则,学习递归算法算法描述: 了解活做好移植准备 function what(student) 动规如果我知道答案,那么我就告诉你 律,并否则,我要问下一位同学再告诉你 将活动end function 过程进 行算法描述 学习展示题: 讨论、实例教学,选新知 比较、择“小猴吃桃”小猴吃桃: 有一天小猴子摘若干个桃子,当即吃了一半还觉得不

分析、这一题的目的过瘾,又多吃了一个。第二天接着吃剩下桃子中的一半,归纳 是为了简化教

仍觉得不过瘾又多吃了一个,以后小猴子都是吃尚存桃子材“裴波那契” 一半多一个。到第10天早上小猴子再去吃桃子的时候,数列的多函数

看到只剩下一个桃子。问小猴子第一天共摘下了多少个桃调用,回避问 子? 题分析的复杂 1.鼓励学生进行讨论,共同寻找答案或解决方法 性较大的特

2.师生共同分析题: 点,从而使得 以4位同学排成了行,(设从行的后面开始的第一位同重点难点得以 学知道第10的桃子数(1个),倒数第二位同学知道第9轻松的突破。

天的桃子数是„„)从教师提问排在前面第一位(第7天)

的同学,你知道,你今天的桃子数有多少? 目的是讨论出,只有倒数第一位同学知道,其他有同 学都不知道,但是他只要知道他后一位同学的桃子数就可 以求出本人所具有的桃子数,(后同学的桃子数+1)*2就 是本人的桃子数。 建立数学模型:

假设第n,n

function你有多少桃子?(第几天) 描述 惯 如果我第10天,那么我就有一个桃子。 否则,我的桃子数=(前一天的桃子数+1)*2 end function 40

示图协助学生

分析算算法实现过程法的实的始末思维, 现过程 学生编程实现:

Function tao(ByVal days As Integer) As Integer

If days = 10 Then 培养学生的编 tao = 1 学生编程和调试程序 Else 程实现 能力,让学生 tao = (tao(days + 1) + 1) * 2 获得成功的体 End If 检 End Function 41

自主我们再来看第二题:(学生阅读教材P68,让学生阅尊重学生的个构建 读教材的“裴波那契”,培养学生的自学能力、和知识迁阅读 体发展,让学移建构自我的知识体系) 思考、生进行自主探裴波那契(Fibonacci leonardo,约1170-1250)是意大分析、究学习,使用利著名数学家.在他的著作《算盘书》中许多有趣的问题,讨论, 学主动、积极 最富成功的问题是著名的“兔子繁殖问题”: 如果每对兔的学习新知 子每月繁殖一对子兔,而子兔在出生后第二个月就有生殖识,培养他们 能力,试问第一月有一对小兔子第十二月时有多少对兔的自学能力。 子?

1、

1、

2、

3、

5、

8、

13、21„„ 培养学生分析

假设第n个月的兔子数目为f(n),那么 问题、解决问 f(n)=F(n-1)+f(n-2) 当n≥3, 题能力,煅练 f(1)=f(2)=1 学生“数学建 讨论得出算法描述 模”建构主义 Function有多少对兔子(第几月) 的学习观认 如果是第一月或第二月,那么就有一对兔子。 为:学习不是 否则,(本月)兔子数=(本月-1)月的兔子数+(本月被动接收信 -2)月的兔子数 息,而是主动

end Function 地建构意义,

以自己原有的 Function tu(ByVal month As Integer) As Integer 知识经验为基 If month = 1 Or month = 2 Then 编程实础对外部信息 tu = 1 现。 进行主动地选 Else 择、加工和处 tu = tu(month2) 理,人而获得 End If 自己的意义过End Function 程。 深化阅读教材的循环结构实现,比较讨论两种算法的区别学生讨培养学生分析知识 和特点 论 问题、归纳、梳理知识的能力,通过两种算法的对比,让学生深入体会递归算法的魅力。加深对本节课所学知识的理解。 42

课堂我们今天所学习的算法是“递归算法”,我们谈谈什么 小结 是递归算法,递归算法有什么特点。 师生讨论,共同小结: 1.递归算法是数值层层调用实现的,函数先由上向下调用,当达到最底层后,再将函数值层层向上返回。(递达成共下去,收回来,简称:递归) 识 2.必须有个结束条件(有个该收回来的条件) 3.可读性强 4.计算机资源耗费大,所以效率比较底(常驻内存的数据比较多) 布置1.N!(用递归算法编程实现) 巩固和发展本作业 2.求1+2+3+4+5„„N (用递归算法编程实现) 节课的学习内3.用递推算法实现“猴子吃桃”问题求解 容。 43

推荐第4篇:教案算法与程序设计思想

算法与程序设计思想

【课标要求】

(一)利用计算机解决问题的基本过程

(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。

(2)经历用自然语言、流程图或伪代码等方法描述算法的过程。

(4)了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。

【学情分析】

高一年级的学生已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。 『此处说“已有了顺序结构、分支结构、循环结构等知识的储备”,应该是指在必修部分对“计算机解决实际问题的基本过程”已有所体验与了解,或是指已学习过数学中相关模块的知识,这是本案例教学得以实施的必不可少的前提条件。』

【教学目标】

1.知识与技能:

建立求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。 2.过程与方法:

利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。 培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。

『在过程上,通过现实生活中的实例来引导学生总结“求最大值”的算法思想。过程的实现关键在于实例引用是否贴切,是否有利于学生向抽象结论的构建。本案例的实例选择是符合这一要求的。在方法上,注重培养学生分析、解决问题的一般能力,再次体验与理解应用计算机解决问题的基本过程,为后面更一步的学习打下基础,积累信心。』

3.情感态度与价值观:

让学生全身心地投入到教学活动中,积极与同伴合作交流,进行探索活动。培养学生良好的思维品质,发展他们的创新思维,并养成积极的学习态度和良好的学习习惯。

创设情境,以激发学生的学习兴趣。努力营造一个可以接纳的、支持性的、宽容的课堂学习环境,让学生置身于民主和愉悦的课堂氛围中放飞思维、潜心研究、快乐创造。

『本案例对“情感、态度与价值观”目标的设计,更多的是试图建立一个活跃、民主、快乐的学习环境。良好的学习环境是学生乐学好学、教师提高课堂效率的重要条件。如果真能实现这样一个环境,营造出理想状态中的学习氛围,无疑会使学生在学到“知识与技能”的同时收获到更多的东西——合作、分享、成就。而且如果能够结合教学内容来描述目标,则会使目标显得更具体,更有针对性。』

【重点难点】

教学重点:建立求一批数据中最大值的算法设计思想,并将此算法设计思想用流程图表示出来。

教学难点:上述重点问题同样是本课教学的难点。另外,如何把人解决问题的思路、步骤用计算机语言描述出来也是本课的难点之一。

『建议,此处可添加关于教学重、难点的确立依据,以及解决教学难点的关键方法方面的描述。同一段知识内容的教学重、难点对于同类教师基本上是一致的,不同的是对教学重、难点的认识与处理方法。应该说,对教学重、难点认识的越深刻就越有可能找到更好的处理方法。』

【教学思路】

利用现实生活中比较一组学生身高这一事件,引导学生去发现求最大值的一种方法。 如何设计求一批数据中最大值的算法?我认为让学生自己去经历整个探究过程,要比直接把现成的算法告诉学生有意义得多。它能迅速、有效地帮助学生建立程序设计思想。在完成这个任务的过程中,教师的循循善诱起到了非常关键的作用。找出一批数据中的最大者,从表面上来看是一个很简单的问题。在比较数的过程中,人因为动用了眼睛,比较大小的思维过程一闪而过,所以能很快求出一批数据中的最大值。而计算机与人不同,它对这些数据看不见、摸不着,怎么来完成这一任务呢?其实,计算机解决问题的关键,就是要把人解决问题的思维过程用计算机语言描述出来,即为大脑思维的每一步“拍照”。这是计算机程序设计教学的一个重点,也是一个难点,需要教师在教学过程中逐步引导和训练学生,使学生逐渐学会分析问题,寻求解决问题的方法和步骤。本案例运用生活中“打擂台”的实例引导学生分析求最大值的方法,通过对这一现象的分析,逐步引出求最大值的算法设计思想。

『作者在此处点出了解决教学难点的方法,即采用“逐步引导和训练”的方法。其意图就是希望学生经历整个过程,从而锻炼、提升探究能力,领悟、理解其中的思想,实现授人以渔的目的。』

【教学过程】

1.情境创设___________如何建立支架的? 师(提问): 今天在第一排就座的有10 多位同学,谁是我们第一排在座各位中的最高者呢? 师(引导): 大家思考,通常这个任务我们是怎样去完成的? 教师根据学生对问题的回答进行分析。引导学生往古时候比武时常常采用的“打擂台”的方式上想,提示学生可参考电视上经常播放的“挑战主持人”节目。 师生: 打擂的过程可以描述为:

(1) 确定一个擂主(讨论第一个擂主是如何确定的);

(2) 挑战者上台;

(3) 擂主和挑战者比较;

(4) 挑战者胜的话,挑战者做擂主,否则擂主卫冕;

(5) 重复执行(2)~(4) 步骤,直到最后一个挑战者。

师: 在打擂的过程中,我们看到(2)~(4) 步骤是要重复做的,所以我们该怎么办呢? 生: 需要循环结构来实现。 师: 这几个步骤序列重复到什么时候结束呢?由学生讨论结束的办法,很显然,需要在最后加上一个能判断什么时候结束的判断框。

根据讨论的步骤,最后师生共同得出打擂台的算法和流程图(如图1 )。

『作者的引导可以总结为:比身高(学生的回答可能多种多样,也可能偏离预设方向)——比武、“打擂台”(将学生发散出去的思考往预设方向上牵引)——“挑战主持人”节目(进一步将学生的思考引到其头脑中已有的认识上,前提是学生要看过该节目)——用自然语言的方式整理出比赛的规则(即算法的自然语言描述)——得到表示算法的流程图。应该说,这样的引导方式完全可以达到作者的预设目标。』 2.求一般情况下的最大值的算法 师(引导): 如果我们面对的是一堆数据,现在希望我们求出这一堆数据中的最大值该怎么办?通过教师和学生的共同分析,把问题进一步细化为:

(1) 从第一个数据开始看起;

(2) 把第一个数据的值在变量中记下来;

(3) 再取一个数据;

(4) 比较这个数据与变量中记下的数据的值;

(5) 如果这个数据的值比记下的数据的值大,则去掉变量中原来那个数据,记下新数据的值;

(6) 重复执行(2)~(4), 继续比较,直到最后一个数据。

也就是说,计算机的变量始终记着当前比较过数据中的最大者(我们不妨用X 表示它), 当取完最后一个数据时,X 中留下的也就是最大值了。 求最大值的算法设计思想用下图表示。

『教学在上一环节的基础上再做进一步的深入,即扩大数据的比较范围,讨论一般的情况。由于学生已经经历了上一环节的思考过程,因此,再次思考一般性问题的解决方案就变得容易多了,这又是另一维度的“逐步引导和训练”,即具体到一般的过渡。这是作者对教学策略设计的准确实现。』 注意:

a.再次让学生讨论变量的意义,弄清赋值语句的意义。 b.一些物理量用变量表达的意义。如X 表示最大值,X 表示输入的一个值,且每次循环时都用同一个变量X 。

c.为了控制循环结束,必须加入一个控制循环次数的计数器I, 当I 达到一定的次数后,循环工作结束。

『除了对教学目标宏观上的关注与设计之外,也注意到了教学内容细节上的把握。作者在此处提出的三点注意都是编程语言细节上的问题,应该说,这“三点注意”是作者多年或是本案例实践过后总结的教学经验,当然也可能是教师在教学设计时预先设想的教学问题。这些要“注意的点”正是教学实践或设计中的精华所在,也是值得我们借鉴与学习的内容之一。』

3. 回顾小结

师生共同总结算法设计的过程,就是将大脑思维的每一步都记录下来,并且用计算机能达到的功能来实现人解决问题的思路。

『最后带领学生总结本节课的中心思想,即回答“算法设计的过程是怎样的?”这一问题。使整节课有了一个明确的结论。』

推荐第5篇:算法与程序设计思想

《算法与程序设计思想》教学案例1

一、教学目标 1.知识与技能:

求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。 2.过程与方法:

利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。

培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。

3.情感、态度与价值观:

让学生全身心地投入到教学活动中,积极与同伴合作交流,进行探索活动。培养学生良好的思维品质,发展他们的创新思维,并养成积极的学习态度和良好的学习习惯。

创设情境,以激发学生的学习兴趣。努力营造一个可以接纳的、支持性的、宽容的课堂学习环境,让学生置身于民主和愉悦的课堂氛围中放飞思维、潜心研究、快乐创造。

二、教学重点、难点 教学重点:建立求一批数据中最大值的算法设计思想,并将此算法设计思想用流程图表示出来。

教学难点:上述重点问题同样是本课教学的难点。另外,如何把人解决问题的思路、步骤用计算机语言描述出来也是本课的难点之一。

三、教学对象分析

高一年级的学生。他们已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图,学生已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。

四、教学策略及教法设计

利用现实生活中比较一组学生身高这一事件,引导学生去发现求最大值的一种方法。 如何设计求一批数据中最大值的算法?我认为让学生自己去经历整个探究过程,要比直接把现成的算法告诉学生有意义得多。它能迅速、有效地帮助学生建立程序设计思想。在完成这个任务的过程中,教师的循循善诱起到了非常关键的作用。找出一批数据中的最大者,从表面上来看是一个很简单的问题。在比较数的过程中,人因为动用了眼睛,比较大小的思维过程一闪而过,所以能很快求出一批数据中的最大值。而计算机与人不同,它对这些数据看不见、摸不着,怎么来完成这一任务呢?其实,计算机解决问题的关键,就是要把人解决问题的思维过程用计算机语言描述出来,即为大脑思维的每一步“拍照”。这是计算机程序设计教学的一个重点,也是一个难点,需要教师在教学过程中逐步引导和训练学生,使学生逐渐学会分析问题,寻求解决问题的方法和步骤。本案例运用生活中“打擂台”的实例引导学生分析求最大值的方法,通过对这一现象的分析,逐步引出求最大值的算法设计思想。 1 孙朝霞.从生活中探究和建立程序设计思想——《算法与程序设计思想》教学案例.中小学信息技术教育,2005(12)

五、教学过程 1.情境创设 师(提问): 今天在第一排就座的有10 多位同学,谁是我们第一排在座各位中的最高者呢?

师(引导): 大家思考,通常这个任务我们是怎样去完成的? 教师根据学生对问题的回答进行分析。引导学生往古时候比武时常常采用的“打擂台”的方式上想,提示学生可参考电视上经常播放的“挑战主持人”节目。

师生: 打擂的过程可以描述为:

(1) 确定一个擂主(讨论第一个擂主是如何确定的); (2) 挑战者上台;

(3) 擂主和挑战者比较;

(4) 挑战者胜的话,挑战者做擂主,否则擂主卫冕; (5) 重复执行(2)~(4) 步骤,直到最后一个挑战者。

师: 在打擂的过程中,我们看到(2)~(4) 步骤是要重复做的,所以我们该怎么办呢?

生: 需要循环结构来实现。

师: 这几个步骤序列重复到什么时候结束呢?由学生讨论结束的办法,很显然,需要在最后加上一个能判断什么时候结束的判断框。

根据讨论的步骤,最后师生共同得出打擂台的算法和流程图(如图1 )。

2.求一般情况下的最大值的算法 师(引导): 如果我们面对的是一堆数据,现在希望我们求出这一堆数据中的最大值该怎么办?通过教师和学生的共同分析,把问题进一步细化为:

(1) 从第一个数据开始看起;

(2) 把第一个数据的值在变量中记下来; (3) 再取一个数据;

(4) 比较这个数据与变量中记下的数据的值;

(5) 如果这个数据的值比记下的数据的值大,则去掉变量中原来那个数据,记下新数据的值;

(6) 重复执行(2)~(4), 继续比较,直到最后一个数据。 也就是说,计算机的变量始终记着当前比较过数据中的最大者(我们不妨用X 表示它), 当取完最后一个数据时,X 中留下的也就是最大值了。

求最大值的算法设计思想用图2 表示。

注意:

a.再次让学生讨论变量的意义,弄清赋值语句的意义。

b.一些物理量用变量表达的意义。如X 表示最大值,X 表示输入的一个值,且每次循环时都用同一个变量X 。

c.为了控制循环结束,必须加入一个控制循环次数的计数器I, 当I 达到一定的次数后,循环工作结束。

3. 回顾小结

师生共同总结算法设计的过程,就是将大脑思维的每一步都记录下来,并且用计算机能达到的功能来实现人解决问题的思路。

推荐第6篇:算法与程序设计教学探究

算法与程序设计教学探究

【摘要】:《算法与程序设计》是普通高中信息技术课程的选修模块,也是高中信息技术教学的重点和难点,其教学内容相对枯燥,因此教学难度较大。如何在教学过程中选择适当的教学方法以激发和维持学生学习兴趣,对于引导学生学好本课程十分重要。本文结合笔者几年来的教学实践对高中《算法与程序设计》的教学进行探究。

【关键词】:算法,程序设计,教学方法,学习兴趣

一、教学实践中遇到的问题

1、学生差异问题

首先高中学生的起点水平参差不齐。很多学生在升入高中前,并未接触过算法与程序设计的相关知识。我曾做过粗略统计,每班大约都有百分之九十多的学生在高中阶段以前未曾接触过程序设计这方面的内容,因此,学生学习程序设计语言的基础较差。其次,编写程序还涉及到本身的理科基础,特别是数学思维能力,每个学生的思维能力、理解能力是因人而异的。像实验班与普通班、文科班与理科班,他们的接受能力就不同;而同一个班的学生,他们中有的思维敏捷能很快接受新的知识,有的却还需要反复讲解才能接受。现在我们教学要面向全体学生,让全体学生都接受有些困难。

2、内容多,时间紧,教学目标不能很好地完成

《算法与程序设计》模块中包括两大块内容,一是算法部分,一是VB程序设计基础部分,基本上涵盖了程序设计中用到的所有知识,有大量的概念、数据、语句以及其它的过程和函数,这些理论知识学生都必须掌握并能在VB中熟练应用,因此老师需要详细的讲解以及让学生做大量的练习。《算法与程序设计》模块的学时要求是36学时,但是一般信息技术课程最多每周两节课,有的学校甚至每周一节课,加上考试、放假等原因也会耽误一些学时,真正可以上课的课时不多,要学生全面理解算法并学会编程,教学难度可想而知。

3、学习内容比较枯燥乏味,缺乏趣味性,学生兴趣不高

《算法与程序设计》难教、难学是困扰师生的突出问题。对于学生而言,这部分学习内容的理论性和知识性都比较强,并且在编写程序的过程中,需要不断调试、修改程序。这个过程相比起学习一些应用软件而能制作出各种各样

1 有声有色的作品,就显得枯燥乏味,因此学生对于这个模块的学习兴趣不高。对于教师而言,由于算法及编程知识相对枯燥且学生接受能力有差别,不易引发其学习兴趣,这就对教学的推进产生了一定的困难。

二、教学中的实践尝试

面对上述种种问题与困惑,如何在有限时间内合理运用教材,采取恰当的教学方法,激发学生的学习兴趣, 也就是如何提高《算法与程序设计》课堂教学的有效性,我们不妨从以下几个方面去解决:

1、创设情境,激发学生兴趣,提高学生学习信心

兴趣是学习的关键,兴趣决定了教学效果的好坏。在程序设计教学中要从学生的兴趣入手,利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习兴趣。为了激发学生的兴趣,在程序设计中的第一课,我采用“游戏导入”方法,选定“猜数游戏”(见图1)作为切入点,对游戏与教学进行了有益的尝试。以教电脑玩“猜数游戏”作为主线,通过生生之间,人机之间相互玩猜数游戏的活动,将计算机拟人化,激发学生学习程序设计的兴趣。

图1 在第一课的教学中,学生对猜数游戏有了浓厚的兴趣,也有了一试身手的欲望。教师还可以再演示一些由学生自己编写的、有趣的程序,从而吸引学生,并告诉他们学习了《算法与程序设计》的内容后,大家都能够编出这些有趣的小程序。

2、与其他学科相结合,加深学生对知识点的理解,提高教学效果

2 算法初步是高中新课程数学科目中的一项新增内容,在高一第二学期学习,《算法与程序设计》模块与数学课程算法初步部分内容相衔接,而且数学中很多问题都可以用程序设计的思维方法来解决。因此信息技术教师可以从同学们在数学课上已经熟悉的知识点入手,在教学中多举一些这方面的事例,不仅可以提高学生的学习兴趣,而且还能提高学生研究问题、解决问题的能力。

比如,对于著名的“百钱百鸡”的数学问题,大多数学生在解题时,只能利用已知条件,列出两个三元一次方程组,成为“无解”方程。但在讲“穷举”算法时,这个问题就能轻而易举地解决。它的分析过程是:由于100钱最多只能买20只公鸡,因此公鸡数应该在0~20之间;同理可得母鸡数应该在0~33之间;小鸡数应该在0~100之间。这样,利用循环分别对公鸡、母鸡和小鸡进行枚举,可得出题目的解。

这样的事例还有很多,如数学中解二元一次方程的问题,三角形面积计算问题,物理中平抛运动和球做反弹运动问题等。以数学或物理题讲授解析法,用经典的“百钱买百鸡”问题讲授穷举法,教学效果更为显著。

3、采用分层策略设计教学任务

分层教学承认学生的差异,是符合教学中可接受原则和因材施教的原则。分层教学面向全体学生,使教学适合每个学生的发展需要和实际水平,这也符合学生的心理要求,激发他们学习的自信和兴趣,提高他们的学习主动性和积极性。为了使学生乐于编程并学有所得,教师在设臵教学任务时,应改变以往硬性规定、呆板单一的做法,可将任务分为必做任务和自主任务两个层次。必做任务一般为基础问题,主要用于基础知识和基本技能的训练,一般每个同学都基本能够完成,所以要求每个同学必须完成。自主任务则是课堂相关知识的拓展延伸或创新,每个同学可视自己的学习基础量力而为,自主选择是否完成或者完成多少。

例如,在学习完程序设计的三种基本结构后,布臵“编写一个程序求出100以内所有的偶数“这个必做任务外,还可以布臵两道自主任务让学生自由选做:①编程求出1900-2008年之间的闰年。③在数学课本上选一道题,编程解决它。实践证明基础薄弱的学生基本都完成了必做任务,心里也比较满足,而学有余力的学生对自主任务很感兴趣,有些学生不仅编写出求数学问题的程序,还把物理中的问题用程序实现求解。他们的好奇心理更加激发了探究的欲望。

4、打破课本原有的知识结构体系

《算法与程序设计》教材的安排基本是按照“先理论后实践,先语句再程序”的顺序,这就容易导致教师在上课时,先讲基础理论部分,象算法的概念、流程图的画法,再将具体的算法程序,由于大多数学生以前没有接触算法,使得他们学习很茫然,不知道学这些理论有什么用,从而丧失学习兴趣。我们可以改变这种体系,从程序设计学习一开始就应让学生接触功能简单结构清晰的程序,以建立对程序和语句的整体概念,体会各种语句的格式功能,了解语言的有关规定,理解计算机解决问题的一般过程。

5、重视实践教学,培养学生实际动手能力

VB 是一门实践性很强的课程,如果只注重理论知识的学习,纸上谈兵,不注重实际操作,上机练习,是不可能真正学好VB的。在程序设计的实践教学中,选取教学案例时尽可能做到:①贴近生活,或者数学课本上的一些典型例题;②案例还要有趣味性,一个故事、一段相声、一则奇闻等等;③案例问题本身要简单,但包含要学习的算法思想。例如在学习选择程序设计结构时用“猜数”游戏作为案例,就可以调动学生起的浓厚的兴趣,教学效果明显。

巧设情境,布臵任务。在教学过程中设臵一个情景,让学生融入进去,有利于激发学习主动性。在学习随机函数时,我们创设了世界杯足球比赛掷硬币的情景,利用随机函数模拟掷硬币,让他们思考如何编写程序。类似这样的情景是学生们比较熟悉的,而且能引起他们的兴趣。通过学生的上机操作,培养他们的实际动手能力。

三、结束语

通过几年的摸索,笔者对于高中算法和程序设计的教学有了较大的提高,但仍存在若干不足之处。本文提出以上见解,以期起到抛砖引玉的作用。笔者将在今后的教学中,更加注重教学、教法的探究,在实践中不断提高算法和教学设计这么课程的教学能力。

【参考文献】:

[1] 张义兵.算法与程序设计(选修).教育科学出版社.2004 [2] 张义兵.算法与程序设计(选修)教师教学用书.教育科学出版社.2004 [3]《〈算法与程序设计〉模块的教学策略》 李娟

推荐第7篇:算法与程序设计教学反思

1.1计算机解决问题的过程 课堂教学反思

2011年01月07日 10:58:52 来源:隆德县第二中学【字体:大 中 小】 “1.1计算机解决问题的过程”课堂教学反思

本节是对用计算机程序解决问题的基本过程的入门介绍,是体验计算机程序,体验并理解用计算机程序解决问题的基本过程。这个过程包含以下环节:分析问题,设计算法,编写程序,调试运行,检测结果。

学情分析:

1、高中学生已具备了较丰富的计算机使用经验,但接触的多是文字处理、媒体表达等常用工具软件及网络应用等,对于计算机程序只有极少的学生接触过,许多学生只是听说,对于计算机程序的工作过程、设计过程知之甚少。

2、高中学生具有很强的逻辑思维能力,也掌握了较高的数学知识水平,对于初步了解计算机程序困难不很大。

我设计了这样一个问题“农夫带着狼、羊、白菜从河的左岸到河的右岸,农夫每次只能带一样东西多河,而且,没有农夫看管,狼会吃羊,羊会吃白菜。”让同学们设计一解决这个问题的方案,大家立刻讨论起来,不一会儿提出了两种不同的方案,问题解决了,通过这个问题的引入,调动了学生的积极性很自然的引入这节课的内容,起到了比较好的作用。紧接着“韩信点兵问题的设计”学生很自然的想到应用计算机解决,成功地引领学生走进了程序设计的殿堂,让他们有兴趣、有意识地进行更多的实践与探索。这种引导,正是本课的重点,也是本课最成功之处。

本节课的目的是通过激发学生的兴趣,吸引学生自主地体验程序,感受程序解决问题的过程,理解程序的概念,从教学效果来看,学生从一开始就被深深吸引,很主动地投入到教学活动过程中探究体验程序的运行过程。

本节课比较困难的是如何向没有任何程序概念、从未接触过程序语句的学生讲述程序及其作用,如何突破这个难点是本节课的关键。为此设计了先让学生体验“100!”的程序,学生体验到计算机的计算能力和运算速度,并且懂得了程序是由一系列语句组成,运行程序计算机会自动按语句执行。

巧妙设计教学任务,采用任务驱动式的教学过程,学生能够体验到应用计算机解决问题的过程,实现本节课的教学目标。

2008年2月20日上午第4节在高一(4)班上了第一节课《1.1 计算机解决问题的过程》。本节主要结合教材上的“华南太阳能设备厂生产方案选择”的实例讲解和体验计算机解决问题的过程。师姐前去听了课。总体来讲效果不是很好。最大的问题在于没有调动学生的学习积极性。从而导致学生没有跟着我一起思考问题,没有理解透彻例题。练习时虽然布置的任务很简单但做出的人不多。课后师姐对本节课进行了点评。现将得到的启示列举如下:

启示一:要重视学生的课堂反应。关注教学中的学生这个要素。教学最终是为了让学生学到知识,提高能力,而不是为了完成教学进度和任务。当学生对提问反应不热烈,只有个别学生回答时,要考虑放慢节奏,让学生把一个环节搞清楚再进入下一个环节。否则也影响学生的学习积极性。

启示二:批评学生要讲究技巧。本节课学生的纪律没有前几个班好,于是我直接作对比说道:我们四班的纪律没有另外几个班好,这样非常容易引起学生反感,既容易对学生的学习积极性产生消极影响又可能影响课堂满意率。所以尽量不要作班之间的对比批评。对比表扬学生倒是很受用。本节课的批评可以改为这样说:“我们班在新的学期表现出了较好的风貌,没有同学迟到,在课堂上玩其他的也没有,这很好。如果在课堂纪律上再加强一点老师就满意了。这一点以后一定要注意。”这样先褒奖再提要求,同时措辞比较委婉可能学生更容易接受。

启示三:提高学生学习积极性的一点。设置简单的、能出成果的课堂练习。让学生觉得学有所得,这样积极性才能提高,才不会厌学。

程序模块的教学很有难度,要认真备好课,想办法激发学生的学习兴趣,让课堂活跃化。才能获得较好的教学效果及课堂满意率。

2008年2月22日在高一(2)班上了本学期第二节课《1.2 算法和算法的描述》。本节课主要讲授算法的概念、三种描述算法的方法、算法的特征,后面要求学生通过猴子吃桃的课后练习巩固流程图描述算法的方法。总体感觉比较好。学生能跟着一起思考问题,同时保持了较好的课堂纪律。王国汉老师前去听了课,并给予了较高评价。以下是评价要点:

本堂课的优点:多次运用对比,联系前后的知识点及例子,瞻前顾后,显得课堂紧促条理;分总结合,注意对所讲知识点进行小结,再进行下面的环节,可以帮助学生梳理知识点;善于运用课堂激励,不断夸奖和鼓励学生,激起他们的学习动力。

缺点:练习题难度较大,具体问题的算法层面没有讲清楚,部分学生不理解解题步骤,自然无法顺利画出流程图。导致这样的原因是部分学生(优生)讲出了解题思路,于是作为教师我没有细致分析解题思路,学生在这里花费了过多时间。

启示如下:其一,教学要面向绝大多数学生,有时甚至是全体学生,不能被部分优生左右了教学进度。要兼顾大家,考虑大多数学生的情况。其二,继续发扬“捧”、“扬”、“夸”的课堂激励机制,学生在轻松夸奖的气氛下思维会更活跃,同时积极性更高,更愿意配合教学。

要“捧”出好的教学效果,“捧”出高课堂满意率。

保持好的心情去上课。记得——微笑。

2008年2月25日在高一(3)班上了本学期第三节课《1.3程序与程序设计》。本节课主要讲授程序的概念及特征、程序的三种基本结构、程序设计语言的发展及高级语言的分类。彭敏老师前去听了课。本节课讲的比较一般,其中课堂练习的设置也不合理:完成课后的第一章扼要回顾及一道已知三角形三边求其面积的题目。

本节内容以理论为主,基本没有涉及实际操作。学生听课兴趣不大。彭敏的意思是略过不讲,因为学生一节课下来学不到东西,文绉绉的理论学生不可能去记,三种基本结构这个本节课的重点内容在教材后面的章节还要继续学习。有一定的道理。 后面上课的班级课堂练习只布置了已知三角形三边求其面积,画算法流程图这样一道题目,且略去了对能否构成三角形的判断,大多数学生能够当堂完成。

启示:要合理安排教学内容,不能按教材按部就班;要分析学情,力争让他们每节课都有长进,从他们的角度分析课堂的价值。

后上课的班级,要在前面上过的基础上反思,以改进。

第三节 程序和程序设计语言

教学过程:通过浏览“求三角形面积”源文件,认识程序并理解算法和程序之间的对应关系。通过单步运行“点到直线的距离”、“求绝对值问题”、“0到20之间奇数之和”三个程序,理解程序的三种基本结构。

教学反思:本节课在备课时,基本上是按照教材上的活动顺序来设计导学案,只是把活动一中的“个人理财”程序改为水平考试题“求三角形面积”,和活动二中的程序改为“0到20之间奇数之和”。我觉得这此课设计思路较好,通过引导学生分析程序和单步运行程序,并完成导学案上相应的任务,通过将笔记本电脑连到班通上讲课,使学生比较直观的理解了顺序结构、选择结构和循环结构程序,为以后学习程序设计打下了很好的基础,避免了在机房上课学生思想不集中,用班班通操作VB不方便,直接讲课又不直观的缺点。从已经上过的两个来看效果比较好。

这一节上下来,最大的感触就是对讲课的重点突出有了更深的理解。本节内容很多,涉及VB语言的特点、程序的基本构成、数据类型、常量变量、运算符函数表达式及可视化编程环境。什么是重点?数据类型中的整型和单精度实数以及可视化编程环境。其他的都只能是附带讲一下。因为你想,如果你是学生,一节课下来你能学到多少,全部都细讲等于什么都没讲,学生无法接收消化。后面的练习也要围绕重点,求实用。

有时候上课,换位思考学生的感受,很重要。

2008年3月3日在高一(1)班上了本学期第五节课《2.2程序的顺序结构》。本节课主要讲授顺序结构的执行方式、赋值语句、输入数据的函数InputBox、输出Print和msgbox。讲到赋值,同学们觉得难以理解,特别是实现两个变量值的交换。我灵机一动借助讲台上三个喝水的瓶子,说明了交换过程的三个步骤的含义,学生就理解了。

讲到输入时文本框内的默认值,还渗透语文,讲了“默认”和“缺省”两个词的含义。

后来为了为循环结构埋伏笔,还讲了以“s=s+p,p=p*2”为循环体的循环语句执行方式和结果(s=s+p+ 2p+4p+„)。这两个小环节都没有体现在事先的教学设计中。

启示:

1、讲的东西一定要保证绝大部分学生完全理解,不理解就要反复讲。不关注效果的讲课是失败的。

2、要善于运用其他的教学媒体和教学方式,换思维方式讲解。

3、课堂是活的,要把握好,同时根据需要生成一些事先没有准备的环节或其他东西,有时能起到好的效果。

2008年3月7日在高一(1)班、高一(2)班上了本学期第六节课《2.3程序的选择结构——条件格式》。本节由标准体型的判断引入,内容比较多,涉及条件格式的单行完整模式、单行省略模式、多行模式、关系运算和逻辑运算及其运算顺序等。使用了彭老师的课件。该课件制作精美,原课件流程环节较多,自制资源丰富,是他参加青年教师教学基本功大赛的课件。两个班的课堂都比较沉闷。2班怎么都没办法调动起来,1班稍好一点。连一班都这样让我觉得很不正常。深究其原因,竟然是天气使人困乏,同时适逢三八降至,下午第八节学校组织女儿节活动,大家有一部分心思早跑了。

课堂沉闷,没办法我想尽办法调节。说到标准体型不忘一顿自夸“像我这样就是很标准的啦”,部分学生不认真听讲我说道“有些同学的课堂行为很不利于师生关系和谐”,逻辑运算我还说到了与或非跟数学的交集并集、乘和加,物理中的并联与串联电路的相似之处,可谓旁征博引。但都效果一般。学生有的直接说没有学习的动力。怎么办?程序设计的确是不容易让学生产生学习动力的一个模块。

从一下几个方面努力吧,我想:

1、激励。让学生做出东西。多练。增加成就感。

2、调节。一定要想办法调节到满意的课堂气氛再讲,学生精神好了讲一遍比精神不好讲多少遍都管用。所谓磨刀不误砍柴功,刀磨利了再砍不迟。

3、鼓励班干部做好表率。

路漫漫其修远兮,我将上下而求索。

2008年3月12日下午第八节在高一(1)班上了本学期第八节课《2.4程序的循环结构——FOR循环语句》。本节课是我为参加学校青年教师教学基本功大赛上课比赛精心准备的一堂课。从“国际象棋棋盘上的麦粒”案例引入教学,让学生分析实际问题,经历补充程序、程序挑错、阅读程序最终做到独立编写For语句循环结构的程序。环节设计循序渐进,环环相扣。吴和发副校长(历史)、卢昭琼老师(历史科长)、谢黎川老师(语文科长)、明长杰老师(历史)、杨玉蓉老师(综合科长)、欧阳少英老师(物理科长、特级)、王国汉老师(以上为评委)、赵旭华老师、师姐等参加听课。教学效果:吴校长课后对我笑着说了句“可以”,珊姐评价较好,课堂上的编程练习第一题大部分学生编出来了,第二题也有部分学生编出来。学生在课后围上来说听懂了,“上得这么好”。而且还有学生围上来问没弄明白的地方,这在以前没有发生过,好几个男生还不愿意离开电脑室,不过这次的原因可不是想上网玩,而是继续调试VB程序,令我很开心。

成功的总结:

一、多问,这堂课上课前我问了老爸,一位有近三十年教龄的中学教师,问了师姐,他们都对课的设计及实施提出了很多好的建议,也鼓励我放开讲,要相信自己,极大地鼓舞了我的自信心。妹妹(慧)也电话鼓励我放开讲就好。这样我上课时不再紧张,发挥比较正常。

二、学生比较配合,前面的课中渗透了一些本节课的思想和方法,学生聪明,接受这一部分知识较快,学习效果较好。

三、过程经过了精心设计,课前的一天脑子里冒出几个好的与教学相关的幽默素材,用上效果较好。怎么讲也在其他班试过多次,虽然过程和教学方法不尽相同。

四、本身教学具备一定的经验,课堂调控还行。

启示:

1、要充分自信。要充分相信我的学生,好学生。

2、增加一些幽默素材调节气氛。

3、要完全放开。轻松上阵。不背包袱,不要有负担。

4、有激情点。掌控好时间。

不足:

1、有学生课堂嚼口香糖。要注意并加强课堂管理。

2、课堂纪律感觉没有上学期的公开课好。

3、备课还没有充分备学生。教学设计还有可改进的地方。

记住:自信。我很棒!

微笑。用微笑征服世界。

幽默。大家都笑了。

激情。年轻人的本色。

2008年3月21日下午第6节在高一(2)班上了本学期第九节课《2.4程序的循环结构——DO循环语句》。本节课设计为先复习FOR语句,进行一个程序填空的练习:编程求1000以内的正奇数和。然后结合教材“种树”的案例,分析DO循环的特点及语句格式。最后进行练习巩固,完成教材上的实践1:求使累加和S小于30000的最大正整数N。内容少且相对简单,教学效果却并不是很好。

这里要总结的并不是教学设计和实施方面。我发现我在教师素质上还有待进一步提高,我做不到诲人不倦。讲了多次的“循环终止条件要从两个方面分析,一是不能一开始就满足了,如果一开始就满足那么将不进行任何一次循环,二是要在循环体内让循环终止条件逐渐趋向于满足,否则可能一直循环造成死循环。直到后来,我明确提出循环终止条件不是S

突然想起一句话:没有学不会,只有教不会。没有学不好,只有教不好。反思一下,我还是做得不够。信息技术作为一个不参加高考的科目,学生不可能像语文数学一样去学。这是客观事实。那么我要做的应该是想方设法调动他们的学习积极性,吸引他们参与到教学活动中来。而不是严要求,看到与预期差距大的结果就心里不舒服。

作为信息技术教师,大家都一样。心要宽。要提高素质,提高修养,练好脾气。这样才能做一个合格的教师。

第7节课在高一(1)又不一样了,只要题目给出来,何浩彬就立马能给出答案。甚至比我还快。重点班的学生思维还是活一点。我想另一方面也得益于师生关系的和谐。

最后说一说具体教学内容的两点注意:一是教材上关于种树的累加和分析Tree=Tree+Tree+1这个是有问题的。这样事实上曲解题意为每一年种的树都比前面种的所有树数目多一。程序中Tree=Tree+Age-14则是正确的。二,本节课的练习,教材P54实践1求使累加和S小于30000的最大正整数N,直接将循环终止条件写为S>=30000是不符合题目要求的,此处本来就将N多算了一,如果循环体中N=N+1再放在S=S+N的下面,最后输出应该写为print n-2。 程序为:

Private Sub Command1_Click() s = 0 n = 1 Do s = s + n n = n + 1 Loop Until s >= 30000 Print n1 End Sub

《算法与程序设计》的教学反思 标签: 楼梯 案例 算法 结构 教材 分类: 教育随笔 2010-11-05 10:44

在新课程实施过程中,教学反思被视为促进教师专业发展和自我成长的核心要素,学校也倡导教师写教学反思。本人就本学期的教学实践过程中的一些反思小结如下。

1、关于教材

个人认为,新课程标准是进行教学设计的出发点,而教材是进行教学设计的主要依据,也是学生课堂学习的主要依据。 本学期信息技术的选修模块我们学校选择的是教育科学出版社的《算法与程序设计》,当时选择这个模块是考虑到算法与程序设计和老教材衔接的比较紧,一是教师容易上手,二是学校无须添加其它机房设备,第三是为了学生的可持续发展,为今后大学的计算机学习打下基础,为通过计算机二级考试而打下铺垫。

从整体章节结构上来看,本套教材还是符合新课程标准的,但是教材上有一些案例和教材的知识结构在课堂教学活动中还是存在一些问题。

(1)难度大

例如第一堂课讲解的有关“韩信点兵”的案例。按理,这个案例可以极大的调动学生的求知欲,是一个好的例题,但是证明这个定理的难度太大了。尽管在集体备课时大家充分讨论了这个问题的证明方法,甚至还请教了数学教师,但是在课堂教学中还是被学生发现了定理证明过程中的一个漏洞。

漏洞如下:被

5、7整除,而被3除余1的最小整数是70,由此推导出被

5、7整除,而被3除余2的最小整数是70×2;事实上被

5、7整除,而被3除余2的最小整数应该是35。所以需要将前提中的“最小”去掉,变为被

5、7整除,而被3除余1的整数是70。但是前提改了之后定理的证明就不是那么严谨了。

再回过头来看这个案例在课堂中所起的作用,其实是为了说明人脑解决问题的过程,因此个人认为这个案例完全可以不讲,让学生上网去查找有关证明的资料。课堂上讲解一个学生同样感兴趣,也同样能够说明问题的案例,比如说“韩信分油”的问题。

(2)跨度大

例如第二章一开始就要求学生上机编写一个打字测试程序。在此之前,学生仅仅了解了VB的设计界面,刚刚完成了一个简单程序的编写。而打字测试程序中所涉及到的窗体、控件以及对象的属性、方法、事件,包括VB的事件驱动原理,学生在头脑里是空白的。再加上那么多的程序代码,教师看了也会头疼的。学生一下子要感受这么多的新鲜事物,似乎步子太快了,不符合知识迁移的客观规律。

继续回过头来看这个案例在课堂教学中所起的作用,其实是为了让学生初步了解VB程序建立与运行的一般步骤。老教材在说明这个问题的时候就比较容易让学生上手。案例可以改成学生所熟悉的“求圆的周长和面积”或者是“求物体的位移”,明确给出程序建立与运行的五个步骤,一步一步让学生实践、探索,从而完成这方面的知识建构。

(3)知识结构有不合理的地方

最明显的就是教材第三章和第四章的顺序问题。第三章介绍具体的算法,这是教材的重点,包括五种常用算法,解决了“怎么样”的问题。第四章讲程序设计的思想,介绍VB面向对象的程序设计思想,主要是让学生掌握对象的三要素以及VB的事件驱动原理,解决了“为什么”的问题。知识结构不合理在哪?首先,从第二章的内容来看,第二章介绍的是VB的语言规则(语法)和程序的三种基本结构,解决了“是什么”的问题。从人的认知规律来说,了解了“是什么”之后需要了解“为什么”,最后才是“怎么样”。其次,从第三章具体的内容来看,每一种算法的程序实现都需要涉及到对象的三要素以及VB的事件驱动原理,每一个程序都要修改对象的属性,程序代码的编写也都涉及到VB的事件驱动原理。所以,个人认为第三章和第四章在教学过程中需要灵活的调整两者的顺序。

2、关于学生

个人认为,学生能够学好这门课是教师进行教学活动的最终目的。相对于其它选修模块,算法与程序设计稍显枯燥。如何培养学生的兴趣,进而使学生认真学好这门“副课”,这是个人一直考虑的问题。

(1)就算法与程序设计而言,学生处在同一起跑线上,以前都没有学过。尤其是对一些在其它课程学习中有困难的学生来说,这是一次让他们找回自信的机会。个人一直感到很遗憾,没有在第一节课的时候向学生介绍比尔·盖茨,包括国内的许多IT人物的的传奇经历,让他们一开始就拉近与这门课的距离。

(2)要让学生重视这门“副课”,教师先要重视你的学生。如何让学生感受到呢?个人做了一些尝试,但感觉远远不够。比如在学生进入机房之前,帮他们开好电脑,一方面确保学生的电脑使用正常,另一方面可以让学生心里知道,教师在这里等着他们;需要经常抽查学生的笔记,看看是否写的认真;每一份学案都作详细的批阅,等等。个人也存在这样的想法,是否每个礼拜都可以安排半个小时的作业量?

(3)活跃课堂气氛,拉近教师与学生的距离。是否在课堂上拉着学生的思路跟着教师走,个人认为课堂气氛是否活跃是一个标志。在讲VB语法的两节课上,学生倒是安安静静的在记笔记,个人却觉得站在讲台上毫无激情,当然这跟教学的内容有一定的关系,但个人觉得这堂课很失败。也有灵光一闪的时候,在讲“走楼梯”的算法时,个人随口说道班里的某某同学在走楼梯时如何如何,问某某同学走完n阶楼梯共有多少种走法时,突然课堂里一下子热闹了起来,个人知道,学生在思考了。

(4)有时惩罚是必要的。一次,下午第一节课,全班集体迟到超过了5分钟,问原因,午觉睡过头了,还有学生甚至说教学任务完不成,索性让他们上网。个人当即回答:做梦!最后教学任务完成了,拖课10分钟。

3、关于教学过程

(1)重视知识的最近发展区理论。一个例题或者一个案例不能涉及过多的新概念。例题或案例的呈现需要有一个循序渐进的过程。

比如在介绍循环结构语句时,因为循环结构语句相对来说比较复杂,是学生在算法与程序设计中遇到的第一个难点,因此学生理解起来也比较困难,如何克服这个学习障碍呢?首先教师要讲明白循环结构语句的格式,然后通过一个最简单的例题,比如说求s=1+2+3+„„+99+100,详细讲解循环的各个步骤,接着再举相似的例题进行反复,比如说求s=1+1/2+1/3+„„+1/99+1/100,最后解决求s=1-1/2+1/3-1/4+„„+1/99-1/100的问题。这三个例题都可以套用同一种循环结构,但是前两个例题重点在于循环结构的讲解,而第三个例题是在学生初步掌握循环结构的基础上加以一定的提高:循环体用到了前一节课所学的if语句。

又如在介绍双重循环结构语句时,由于双重循环结构语句是后面具体算法(解析、穷举、查找、排序、递归)的程序结构基础,因此必须要求学生掌握。个人也有体会,掌握起来难度颇大。在教学过程中如何实现由易到难,由简单到复杂呢?个人设计了一个打印图形的五步区:第一步,打印矩形,教师主导,力求讲的清晰明了,学生易于理解;第二步,打印直角三角形,教师修改前一个程序,启发学生,让学生尝试写出程序运行的结果;第三步,打印倒直角三角形,继续启发学生,此时学生为主体,让学生修改程序;第四步,打印奇数行直角三角形,继续启发学生,让学生修改程序;第五步,打印等腰三角形,教师给出提示,让学生参与程序的修改。五个图形环环相扣,程序代码短小精悍,所有代码都套用同一种双重循环结构语句,修改起来较为方便。

(2)尊重学生的思维方式。课堂上需要允许或者鼓励学生发表自己的见解,有时需要对学生意想不到的发现而喝彩。

比如上文所提到的求s=1-1/2+1/3-1/4+„„+1/99-1/100的问题,在教学设计时没有考虑到可以用分支结构语句来实现它,而是这样一段代码:s = s + (1 / i) * (-1) ^ (i + 1);幸运的是一开始没有给出以上代码,而是让学生来填写这条循环体代码。结果就有学生给出了分支结构的循环体代码:if int(i/2)=i/2 then s=s-1/i else s=s+1/i;个人思考了五秒钟,立即对这种解法给予了充分的肯定,课堂上讲解的内容进行了及时的调整。课后想了想,确实是学生的解法更符合他们的思维习惯,通过条件判断解决正负号的问题,所用的代码正是上一个课时所教授的if语句。个人思考,教学相长,是有道理的。

(3)让枯燥的程序算法转变为贴近生活、有趣味性的实际中来。例如在讲解分支结构的select case语句时,由于是刚过年不久,个人想到了一个有关年货打折的案例,要求学生参考教材上的程序代码进行改写。在最近的复习课上,学生仍然对这个案例记得很清晰。再如上文所提到的“走楼梯”的算法、“韩信分油” 的算

算法与程序设计作为信息技术课程中的选修模块,其内容在广度和深度上都具有较高的要求。课标中对本模块的教学目标表述为“体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。”这一表述包含了两方面的要求,即知识目标与能力目标,同时也是两种不同层次的要求。显然,“体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用”是知识目标也就是第一层次的目标,强调的是“体验”和“了解”。“能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题”是能力目标也就是第二层次的目标,强调的是“应用”和解决问题的能力。从课标的行文表述中可以看出,第二层次的目标即能力目标才是本模块教学的落脚点和最终目标。但以个人的教学经验来看,我们的教学大多还徘徊在第一层次上,极少能达到第二层次的高度。作为选修模块的教学,这样的情况是值得我们深思的。

推荐第8篇:浅谈《算法与程序设计》教学策略

浅谈《算法与程序设计》教学策略

安徽宿州泗县一中 许大伟

摘要:高中信息技术课程改革到今年已走过了四年时间,在选修模块教学中有《算法与程序设计》和《多媒体技术应用》可供选择。选修《算法与程序设计》模块教学的学校不多,我们学校就是其中之一。原因是算法的学习比较抽象、枯燥,很难调动学生学习兴趣。本文就结合自己四年的教学实践经验同大家共同探究一下选修模块《算法与程序设计》如何进行有效的教学。

关键词:算法 程序设计 教学方法 教学策略 信息技术 高中

一、算法与程序设计概述

信息技术课中,《算法与程序设计》师信息技术课程的一门选修课,是选修的一个分支。在我们学校,采用了广东教育出版社的教材,学习VISUAL BASIC语言。VISUAL BASIC程序设计语言是WINDOWS环境下快速开发应用程序的可视化工具。它简单易学,功能强大,用它开发图形用户接口(GUI,Graphical User Interfaces)的应用程序方便、快捷,可以自动生成32位的脱离开发环境而直接执行的应用程序,且运行速度更快、更安全,适合在多任务环境下运行。VISUAL BASIC语言功能强大,具有良好的简单性、面向对象性,可视化的集成开发环境,面向对象的程序设计思想,交互式的开发环境的特点。

计算机的发展速度很快,学生上机的条件和平台已经发生了巨大的变化,上机方便,程序编译器的功能强,使得我们可以很好的去学习VISUAL BASIC。在平时注意对现有的程序代码进行分析,多读程序,俗话说:读遍唐诗三百首,不会做诗也能吟。学习程序语言也是这样,多读程序自然你就会写一点程序了。教师在教学中就要从以下几个方面入手。

二、努力培养学生学习兴趣

爱因思坦说“兴趣是最好的老师”。兴趣相当程度上决定了教学效果的好坏。如何培养学生学习程序设计的兴趣,我认为可以从以下几个方面入手。

1.让学生认识到学习程序设计在提高自身素质的突出作用。提高自身素质,可以培养学生的思维品质,培养学生发现问题、思考问题和解决问题的能力;学习程序对其他学科的学习有积极的影响。

2.程序设计教学中要从学生的兴趣入手,利用学生对事物的好奇心,选择学生身边的,学生感兴趣的、有实际意义的程序,激发学生的学习兴趣。比如:第一堂课讲VB界面设计,可设计一个QQ登录界面。

3.一定要分层次教学。现在各个学校的平行班设置恐怕都有文科班和理科班、实验班,教学内容在难度上要有所变化。一个班级布置作业时也要根据学生的能力分层次。

4.深入浅出,消除学生们对程序设计的畏难心理。在教学时,低起点,从一个个简单实例出发,让学生们从自身的实践中感受到这个的确很简单,从而迎合了学生渴望成功的心理特点。前两节课千万不能罗列过多的概念,让学生不知东西,打击学生的学习兴趣。

三、适当调整教材结构,立足具体实例,讲解基本概念

VB程序设计概念比较多,如何让学生较容易按受、理解是我在最初的教学中较为头痛的问题。刚接触程序设计的学生,对程序设计充满了好奇,如果把一开头还用不上的许多的控件、属性放在前面,一下子引入大量抽象的名词、概念,就会让不少学生望而生畏。因此要想让学生领会这些抽象的概念,教学中我选择的方法是先少讲控件。结合数学课本已学的知识,先复习、巩固、提高基本知识。从数据类型,基本运算,讲到三种基本控制结构后,然后再讲基本的控件。这时,控件用于程序设计的例子就可以讲明白了。但是,仍然不要把控件的每一个属性都细讲。突出按问题需要设计界面来选用控件,以一个个鲜活的具体实例为切入点,在每个例子中适时、适量地渗透一些相关的概念和知识,使学生在完成任务的过程中,逐渐地、很自然地去体会控件、对象、事件的概念。教学中要安排足够的课时把这些控件的用法渗透到一个个程序实例中,由浅入深地逐渐介绍,让学生在编写程序的过程中总结控件的用法。

四、加强程序设计教学中的引导变通

1.引导学生对语句变通,加强语句和三种基本结构语句的理解和灵活应用

在程序设计的初始阶段,要注意学生对某些语句的功能还不甚了解的实际,不失时机在从一些典型的例题入手,及时纠正编写程序时所出现的语法错误和逻辑错误,引导对已编程序的某些语句或语句中的某些变量作简单的变通。学完选择结构、循环基本结构后,引导学生对程序设计方法的变通,以加强横向联系,启发学生自己进行总结,达到理想的教学效果。

例如对典型的求和问题:S=1+2+3+„„+100

S=0

For i=1 to 100

S=s+i

Next i

可以做:

(1)如求S=100+99+„„+1应作哪些变更?

(2)如求S=2+4+6+„„+100,需要修改哪些地方?

(3)如求S=1*2*3*„*10,需要修改哪些地方?

(4)如求S=1+1/2+1/3„„+1/n应作哪些变更?

(5)如求S=12+22+32+„„+1002,应修改哪个语句?

通过以上一系列角度不同的变通,学生对每一个语句的认识加深了,对语句中确定每一个变量更加谨慎了。

2.引导学生对结构变通,加强语句和三种基本结构语句的理解和灵活应用

又例如:求出下式中n的最大值:s=1+1/2+1/3+„„+1/n

5先向学生提问:用什么循环语句来设计程序?

通过讨论,学生自己得出结论:用for语句无法设计;只能使用 do „loop until与do while„„loop两种循环设计;同时再次对do „„loop until和do while„„loop 两种循环中的布尔表达式之间的关系有进一步的认识,具体程序如下:

最后通过教师设问:什么情况下用for语句? 什么情况下用DO循环?学生可以自己得出结论: 对于能确定循环次数,使用for语句最合适了;对于循环次数不能预先确定,宜使用DO语句,用DO 语句时注意死循环问题。通过如此的引导变通,使学生对循环结构的三条语句使用得心应手,在编程过程中能够灵活应用,同时也培养了学生发散性思维。

五、切实落实以学生为中心,学生为主体,教师为主导的新课改思想

信息课教师绝大部分为青年教师,无论教学理论和教学经验上都相当缺乏。特别是在程序设计内容时,自觉不自觉地还是走向了教师为主的教学模式。教师与学生缺乏互动,课堂气氛沉闷。在课堂教学中,要鼓励学生质疑是激发学生的主体性、培养学生思维能力和创造能力的起点。学生的主体性主要体现在学习过程中能掌握学习主动权,能够主动、自觉、积极地学习。因此,在教学过程中特别要注意设置恰当的问题,通过启发引导,体现教师的主导作用。集中学生的注意力,促进学生主动思考、主动探索,可以使学生在学习的过程中成为主体。

六、结束语

程序设计教学的主要目标是为了使同学们了解编程的基本思想、培养分析问题、解决问题的基本能力。围绕着这个目标,在VB程序设计的教学实践中,改革旧的教学模式,结合学生实际情况,不断探索切合实际的教学方法和手段。按照他们的认知规律组织教学,一切有效的教学方法都可以在我们的教学过程中加以运用,进而使综合素质得到整体提高,这是程序设计课程教学的最终目标。

参考文献:

[1]杨俊宇.浅谈VB程序教学方法[J]. 科技资讯,2009,(16): 211-212

[2]孙秀.VB 教学方法改革的探索与实践[J].辽宁师专学报.2010(4)

[3]刘辉.VB程序设计教学方法初探[J].大庆师范学院学报.2010(2)

[4]康丽萍. VB教学的几点体会[J].农业网络信息,2011(09): 45-46

推荐第9篇:VB程序设计的常用算法教案

VB程序设计的常用算法教案

算法(Algrith):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采 取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何 安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。

一、计数、求和、求阶乘等简单算法

此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条,更要注意用来表示计数、和、阶 乘的变量的初值。

例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,,6,7,8,9,0的 数的个数并打印出来。

本题使用数组来处理,用数组a存放产生的确100个随机整数,数组x来存放个位上的数字分

别为1,2,3,4,,6,7,8,9,0的数的个数。即个位是1的个数存放在x中,个位是2的个数存放在x中,…… 个位是0的个数存放在x。

将程序编写在一个GetTput过程中,代码如下: PubliSubGetTput

DiaAsInteger

DixAsInteger

DiiAsInteger,pAsInteger

\'产生100个[0,99]范围内的随机整数,每行印出来

Fri=1T100

a=Int

Ifa

Fr1PrintSpae;a;

10个打

Else

Fr1PrintSpae;a;

EndIf

Ifid10=0ThenFr1Print

Nexti

\'统计个位上的数字分别为1,2,3,4,,6,7,8,9,0的数的个数,并将统计结果保存在数组x,x,,x中,将统计结果打印出来

Fri=1T100

p=a

d

0

\'求个位上的数字

Ifp=0Thenp=10

x=x+1

Nexti

Fr1Print&qut;统计结果&qut;

Fri=1T10

p=i

Ifi=10Thenp=0 Fr1Print&qut;个位数为&qut;+Str+&qut;&qut;+Str)+&qut;个&qut;

Nexti EndSub

二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:

对于已知两数,n,使得>n;

除以n得余数r;

若r=0,则n为求得的最大公约数,算法结束;否则执行;

←n,n←r,再重复执行。

例如:求=14,n=6的最大公约数

n

r

0 =inputBx n=inputBx n=n* If

r=dn

Dhile

=n

n=r

r=dn

Lp

Print&qut;最大公约数=&qut;,n [1]

[2]

[3]

[4]

[]

[6]

[7]

下一页

推荐第10篇:《算法与程序设计》教学探析 期

【摘 要】在高中“算法与程序设计”模块教学中,算法的设计以及运用程序设计解决问题的方法与思路,与学生原有的知识结构和解题经验有较大差异,使得学生的学习存在较大困难。教师应从生活实例出发,激发学生的学习兴趣;降低编程起点,提高学生的学习信心;引导学生通过程序阅读,学习他人编程经验;强化算法的分析与设计,培养学生分析问题与解决问题的能力。

【关键词】算法与程序设计;教学探析

【中图分类号】G40-057 【文献标识码】A 【论文编号】1671-7384(2013)11-0050-03 “算法与程序设计”是普通高中信息技术课程中难度较大的一个选修模块。照本宣科的讲授只能使学生死记硬背程序,这种缺乏理解的学习导致了学生进一步学习的困难,更谈不上对所学知识的灵活运用。因此,如何改变学生的思维方式、如何组织教学以使学生真正理解算法并学会运用程序设计解决实际问题,值得我们探索和研究。

从生活实例出发,激发学生的学习兴趣

从教育心理学的角度来说,兴趣是一个人倾向于认识、研究并获得某种知识的心理特征,是可以推动人们求知的一种内在力量。学生对某一学科有兴趣,就会专心致志地钻研它,从而提高学习效果。以下案例正是从学生兴趣出发,激发了学生参与的热情。

案例1:遥控机器人

窗体上是一张机器人图片以及“ 向上”、“ 向下”、“向左”、“向右”四个按钮。怎样让机器人听从我们的指令动起来呢?以向上为例,我们看到机器人图片的Top属性是1000,在“向上”按钮的单击事件中,可以写这样一句代码:Picrobot.Top = 900。运行程序,单击“向上”按钮,机器人听从指令向上挪了一部分。再按一次,机器人怎么没有反应?怎样修改程序才能让机器人根据指令不断地向上移动呢?学生思考,得出程序代码:Picrobot.Top = Picrobot.Top-50。

对于机器人,学生都有种神秘感,往往觉得不可思议,但是又想探索。在教师的引导下,学生的本能兴趣转化为内在学习动力,在实现对机器人控制的过程中,加深了对控件、赋值语句和变量概念的理解。

降低编程起点,提高学生的学习信心

没有人在学习程序设计的初始阶段就能成为编程高手。然而在程序设计教学中,教师常常一开始就要求学生编写完整的程序。导致很多学生无从下手,学习的自信心受到了严重打击。因此,我们应降低编程起点,将学生引入门。一方面,在问题的选择上,尽可能使用学生能够通过已有知识和经验分析出解决方法的问题;另一方面,可以采用案例教学法,从模仿典型程序开始,在代码模板上补充关键代码后即可调试运行,从而体验成功的喜悦,增强学生学习的信心。下面就是一个使用案例教学法的例子。

案例2:循环结构 [1] 针对s=1+2+3+„„+100问题,引导学生观察累加求和的过程:s=s+数字。引出如果用变量i表示数字,整个计算过程是在重复执行若干个同样的操作:s=s+i。如何让计算机自动重复上述过程呢?教师呈现用循环语句解决问题的程序,接着让学生模仿累加程序,完善计算s=100+101+„„+200、

s=12+22+32+„„+10

2、p=1*2*3*„„*9四个式子程序空白处的代码。4个任务的难度依次递增,第1题要求分析出循环的初值、终值;第2和第3题要求分析出循环体;第4题要求同时分析出循环的初值、终值和循环体。学生完成后,教师展示学生程序,引导学生归纳总结出For循环结构的一般格式。然后提出“计算s=10+20+30+„„+100”的任务,让学生在一般格式的指导下,独立编写程序解决问题。

牛顿说过:我之所以能取得现在的成就,是因为我站在巨人的肩膀上。在案例教学法中,案例和代码模板就是“巨人的肩膀”,学生通过补充程序模板中的关键代码,逐步认识For循环结构,并在多个“个”的尝试中,找出隐藏在“个”背后的规律性内容,归纳出For循环结构的一般格式,进而在一般格式的指导下编写程序,解决重复执行“类”问题。在此过程中,学生的编程思维和分析能力获得了快速的提高,提高了学习程序设计的信心。

通过程序阅读,学习他人编程经验

学习程序设计,一个重要而有效的方法就是阅读。阅读书中的例题、软件开发环境中的范例、网络中的开放源代码以及自己编写的程序。克努特曾说过:通过阅读他人的程序获得技巧,是极其重要,但在许许多多的计算机课程中,这样的训练却可悲地被忽视了,因此导致了计算机被极其糟糕地低效使用。通过阅读大量的“示例”程序,可以加深对各种语句语法和语义的理解,从中发现、总结别人解决问题的方法,积累编程的经验以及实现基本算法的代码段。

怎样阅读程序呢?对于一篇文章,通常首先采用粗读的方式进行整体认知,了解文章主要写的是什么,留下总的印象;然后再进行精读,深入到文章的局部,留心遣词造句,赏析精彩语段,揣摩文章的谋篇布局。阅读程序和阅读文章有相通之处,对于一些较为复杂的程序,应该先进行整体分析,从整体上摸清程序的架构,再对各个部分的代码逐一进行跟踪阅读。

1.整体分析

这一阶段,相当于文章的粗读,需要从整体上把握程序的组成部分、各个部分的大意以及连接方式。我们如何去了解一个语句块的作用呢?主要有三种方法:一是依据经验,也就是我们已经掌握的各种算法和语句的关键点来判别;二是看注释,一个高品质的代码都会有注释,对我们理解语义有方向性的指导作用;三是靠猜测,我们根据过程名以及参数名,能对这个过程的作用略知一二。如果有必要,则可以到过程的定义中,找到某些具有特征的操作,以证实自己的猜测。[2]任何一个复杂的程序都可以分解为三种基本结构:

顺序结构、选择结构和循环结构。每种结构只有一个入口和一个出口,而各个结构之间的连接方式有两种:积木式连接和嵌套式连接。积木式连接是一个结构的出口与另一个结构的入口连接;嵌套式连接是在一个结构的内部嵌套另一个结构。一般来说,我们应先分析出程序中积木式连接结构,再找出这些结构中的嵌套式连接结构。借助于流程图、伪代码等描述算法的工具,可以根据源程序画出反映程序结构的流程图,这对理清思路、分析程序结构有很大的帮助作用。[3] 下面我们先用整体分析法阅读一段代码:

案例3:

Private Sub cmdGcd_Click() Dim a As Integer Dim b As Integer Dim r As Integer a = Val(InputBox(\"输入a\")) b = Val(InputBox(\"输入b\")) Do While b 0 r = a Mod b a = b b = r Loop Print \"最大公约数为:\"; a End Sub 从命令按钮名和输出提示信息可以知道,这是一个求两个数的最大公约数的程序,程序结构如图2所示。

2.跟踪阅读

如果要详细了解各个部分是如何运行的,就要对语句进行跟踪阅读,相当于文章的精读。跟踪阅读就是用人脑模拟计算机的执行过程。对于顺序结构,阅读不成问题。对于选择结构,关键是要搞清条件和语句的关系,当有两个选择结构连接时,要分清楚是积木式连接还是嵌套式连接。对于循环结构,可以通过对循环体内的语句逐一跟踪阅读,分析循环结构的执行过程。这时,可以借助于纸笔,用列表的方法将循环执行过程中各变量的值一一记录下来。[4] 在案例3中,当输入48,28(即a=48,b=28)时,程序执行的过程如下表所示:

程序阅读的关键是代码的积累。“读书破万卷,下笔如有神”,程序读多了,自然容易借鉴别人的编程经验和方法。

强化算法设计,培养学生解决问题的能力

程序设计的核心是算法,语言只是表达工具。用程序设计解决问题,关键是要找到解决问题的算法。只要算法正确,就可以用任何一种语言编写程序。对于初学程序设计的学生来说,接触的问题并不复杂,相应算法也较简单。很多学生看到问题后,不进行细致的分析和设计,粗粗一想就开始动手,很简单的问题往往写出一大堆代码,自己也说不清解决问题的方法和过程。

案例4 : 编写程序, 实现成绩统计功能。通过InputBox函数输入50个学生成绩。当成绩大于等于85时,为“优秀”等级;成绩大于等于60且小于85时,为“及格”等级;当成绩小于60时,为“不及格”等级。要求统计优秀人数、及格人数及不及格人数。

学生解决这个问题的过程,往往只是按照题目的表面意思进行处理,首先执行一次循环输入数据;然后扫描三次数组,分别统计优秀、及格和不及格人数。

俗话说:磨刀不误砍柴工。我们应该怎样进行算法设计呢?在这个案例中,重复扫描使得程序效率不高。其实,最简单的算法是只循环一次,输入数据后立即使用多分支选择结构对输入的数据进行判断,分别对优秀、及格及不及格人数进行统计。算法分析前,学生为自己编写的程序沾沾自喜,然而进行算法分析后,学生意识到自己程序的缺陷,较好地体验了算法对提高程序效率的作用,理解和掌握了隐藏在问题背后的知识,提高了解决问题的能力。

综上所述,算法与程序设计教学需要我们在教学实践中不断地总结经验教训,密切结合学生的自身情况,引导学生多阅读、多思考、多实践。让学生在算法的指导下,在不断完善和调试程序的过程中,潜移默化地掌握相关知识,养成缜密严谨的科学态度,进一步提高逻辑分析能力、发散思维能力以及发现并解决问题的能力。

第11篇:面对高考高中算法与程序设计教学

高中算法与程序设计教学

【摘要】《算法与程序设计》是高中信息科技的选修模块,也是高中信息科技教学的重点和难点,其教学内容枯燥,因此教学难度较大。本文结合笔者几年来的教学实践对高中《算法与程序设计》的教学进行探究。

【关键字】算法 程序设计 兴趣 教学方法

《算法与程序设计》是高中信息技术选修课程,学习算法与程序设计就是要使学生在原有基础上进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。在本模块的教学,应注意与学生已有相关知识的衔接,要强调理论与实践的结合,要循循引导学生,激发他们的学习兴趣,引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决这些问题。那么怎样才能上好这门课?下面谈谈我在教学中采取的一些方法。

一、借助游戏教学法,激发学生学习兴趣

兴趣是培养学生程序设计能力的前提,研究表明,让学生在娱乐中学习将更有利于新知识的获得。在学生刚刚介入新知识的学习时,一般会从心理上产生一种新奇感,这是学生在接触新事物时的一般反应。然而随着知识难度的加深,学生的学习积极性很可能会下降,甚至对那些较为枯燥的程序设计产生抵触和畏难情绪。因此,教师应该运用策略使学生保持初学阶段的兴趣和积极情绪。如教材第一章算法概念抽象难懂,过多的课堂讲解会起反作用,因为学生一旦听不懂或觉得太枯燥,就可能抑制他们对这门课的学习兴趣。如在第一课教学中以玩“猜数游戏”作为主线,通过生生之间、人机之间相互玩猜数游戏的活动,将计算机拟人化,激发学生学习程序设计的兴趣。首先让2名同学一组玩“猜数游戏”。学生甲心里想一个0—100之间的整数,让学生乙猜。根据学生乙猜的数进行判断并反馈信息“大了”还是“小了”,直到最终猜中,相互交换角色,看谁能用最少的次数猜中数。其次教师用VB设计的电脑游戏和学生一起玩,玩时注意引导学生思考总结猜数所用的方法,并设法减少猜的次数。引导学生交流讨论,引出算法的概念。通过这样的一节导入课使学生充分认识到学习算法的目的就是通过掌握的程序设计语言来“教”电脑做事情解决具体问题。将游戏与教的方式融入算法与程序设计教学,创设轻松愉快的环境,使学生降低对算法学习的恐惧心理,激发学习兴趣。在第一课的教学中,学生对猜数游戏有了浓厚的兴趣,也有了一试身手的欲望。

教师还可以再演示一些由学生自己编写的、有趣的程序,从而吸引学生,并告诉他们学习了《算法与程序设计》的内容后,大家都能够编出这些有趣的小程序。

二、从学生的已有知识水平出发, 设计教学实例

算法是解决问题的方法和步骤,计算机解决问题,必须严格的按步骤进行,这和学生平时解决问题是有区别的。因此在算法设计中,应将平时解题中没有想清楚的每一步都想清楚,这对学生的逻辑思维能力要求较高,许多学生刚开始可能不太适应。因而在教学中注意引导学生利用已有知识结构,从他们熟悉的或感兴趣的问题出发,进行算法与程序设计的教学。 如在讲解顺序结构中交换两个变量值的问题。老师提出问题:设整型变量A的值为5,B的值为6,如何交换它们的值?学生:我不知道该怎么办,无从下手。老师提示:如果有两盘磁带,里面分别录有外语听力和流行音乐,请你把里面的内容对调,你会怎么办?学生:找个空白的磁带呀!原来这么简单。老师:要求用变量A、B、C来代表三个磁带,把操作的过程表示出来。经过这一类比,同学们毫不费力地就可以画出如下的知识点:

在该案例教学过程中,没有直接提出两数如何交换问题,而是通过磁带互换,培养了学生的思维能力。而后再将知识迁移,通过这样的过程,学生对两数交换的理解和记忆都达到了很高的层次。

如在讲解枚举法时,我引用了我国古代著名的《孙子算经》中的鸡兔同笼问题:今有鸡兔同笼,共有35个头、94只脚,问鸡和兔各有几只?这样一来,学生即有了学习兴趣,又可以根据现实生活中的实际情况来解决问题:由于共有35个头,所以鸡和兔共有35只。每只鸡有2只脚,每只兔有4只脚,脚的总数是94。所以有变量x来表示鸡的数量,x从1到34列举所有可能的情况,然后对列举出的鸡的数量x和兔子数量35-x进行检验,判断是否满足共有94只脚的条件,即x*2+(35-x)*4是否等于94,若满足条件则输出x和35-x。这样一来,学生即解决了问题,又学会了循环结构的程序设计。所以在教学过程中,联系实际,从学生的已有知识水平出发, 设计教学实例作为程序设计的活教材可以收到事半功倍的效果。

三、进行有效的练习与作业评价

算法与程序设计是一门实践性很强的课程。学生通过练习不仅可以及时巩固所学知识,加深对知识的理解,更重要的是把学过的知识加以运用,以形成技能技巧,从面发展自己的智力,培养自己的能力。如何做好这个环节的教学也是十分关键的。在教学中我做过以下几点尝试。第一,让学生从模仿中学习,先设计一个与老师讲解过的例子相类似的题目让学生去完成。例如,在顺序结构教学中,教师举例分析“已知圆的半径,求周长和面积”后,请学生完成“已知长方形的长和宽,求周长和面积”。这样多数同学很快就可以完成,感到有成就感。第二,对于一些较难的题目,教师可以事先完成一部分流程图,引导学生如何进行分析解题,最后主要部分让学生去完成。第三,可以设计多种形式的练习,帮助学生理解程序,学习算法与程序设计。如阅读程序,写出程序运行结果,说明程序的功能;分析问题,设计算法,画出流程图;给出问题算法分析与部分流程图,补充完善流程图与程序。

作业是学生对所学知识的掌握情况及时、真实的反馈,教师通过批改检查作业,可以直接获取学生信息,把握学生知识掌握和能力发展的程度,及时调整教学方案,修改教学行为,确保后续教学的时效性、有效性和针对性。在教学过程中,我对学生的书面作业都是及时批改并反馈,批改的方式有全部批改、重点批改、轮流批改、当面批改、师生共批、学生互批等。因全部逐本批改占据教师大量的时间而影响备课的质量,所以应采取各种类型相结合的方式。不论用何种方式批改,都应注意并记录学生作业错误的数量和性质。通过作业反馈,一方面让学生及时订正,另一方面教师要加强对错误原因的分析,以便在以后教学中有针对性地加以纠正。教师对作业应按质量打成绩,也可写评语,评语以鼓励的话语激励学生把作业做好。应尽量少用负面的标语对优秀或进步较大的作业,教师应给予全班表扬,可以全班传阅,以资互相学习,对差的作业应视具体情况给予指点和帮助。

四、重视生生交流和师生交流活动

交流是人际间的交往、对话、沟通的活动,是人际间增进彼此了解、沟通的重要方式。交流活动在信息技术教学中有着重要地位。一方面,生生之间的交流可以给学生提供表达自己成果的机会,同他人分享学习成果,体验成功快乐。通过与他人的讨论、互助等形式的合作学习,学生可以超越自己的认识,更加全面深刻的理解事物。另一方面,师生之间的交流,可以促进师生之间的感情交流,营造和谐的师生关系。它同时也是围绕学生学习的需要来组织安排的,能使学生主动地学习算法与程序设计知识,而不是被动地接受灌输。

例如在学生已经掌握了s=1+2+3+4+„„+99+100的循环结构程序基础上,来做1-2+3-4+„„+99-100这个程序设计示例的时候,本来教学设计的时候是希望学生在绘制流程图时出现代码:s=s+i*(-1)^(i+1)。但是,在给予学生充分的空间和时间,让他们交流想法,自主编写之后,我惊喜的发现学生编写出了多种方法。(1)学生直接指出了我预先设计的代码过于复杂,可以用初始值n=-1,然后在每次的循环体内取n=-n;s=s+n*i,这样就可以将代码写的更为简洁,我及时的将这部分同学的思想给予肯定;(2)部分同学通过对原始代数式的分析,写出s=s+(i-(i+1)),循环步长step=2。将这个例子拿出来给全班同学看的时候,我特意指出了程序的循环次数少了一半,算法上更为优化,希望能够引导学生今后尽量想出优化的程序;(3)部分学生交流之后采用了循环+分支的结构,通过条件的判断来决定正负号:if I mod 2=0 then s=s-I else s=s+I ,这是一个非常好的方法,根据这个思路,我调整了一下教学安排,让全班的同学参与分析、讨论,也许是因为这种想法源至他们自身,所以非常顺利接受了如何结合循环和分支结构,来完善和增强自己程序的功能。达到了教学相长的效果。

教师通过自己的教学行为来积极引导学生交流,同时也参与到学生的交流之中,从而引起学生学好算法与程序设计的积极态度,激发并满足学生的情感需要,特别是对知识的渴望与兴趣,从而更好地完成教学。

五、合理安排上机实践

在算法与程序设计教学中,不能忽略学生的上机实践,一个好的例题,学生通过上机操作,可以更好的理解知识,教师也可从中挖掘学生的潜能,开拓学生的思维。

在教学中,教师应采用灵活多样的教学方法,充分调动学生学习的积极性,引导学生独立思考,敢于提出不同见解,质难问疑,积极创造条件鼓励学生勇于探索,使他们主动地学、积极地学。我校信息科技课一周两节,第一节课我在教室集中讲授相关算法与程序基础知识,针对讲授的内容布置练习。第二节课学生上机操作,我在布置练习任务时采取由浅至深、逐步递进的方式,刚开始的时候只是让学生模仿书上的流程图和程序完成练习,随着知识的逐步深化,慢慢让学生练习独立绘制流程图和编写简单的程序,再到较为复杂的内容。

在辅导过程中我发现一个可喜的情形就是学生刚开始一遇到问题就急于找老师,让老师帮助解决。但随着课程内容的深入,多次的上机实践后我发现课上这种寻求帮助的声音越来

越少,学生们非常乐于自己修改排除错误。在完成做业后学生脸上洋溢着自信的表情,在这样的过程中学生体验了成功的喜悦,同时也帮助了他们理解程序,尤其是到循环结构以后,这种作用就更明显了,而且这种能力完全可以迁移到今后的学习和生活中去。

六、结束语

通过几年的摸索,笔者对于高中算法和程序设计的教学有了较大的提高,但仍存在若干不足之处。本文提出以上见解,以期起到抛砖引玉的作用。笔者将在今后的教学中,更加注重教学、教法的探究,在实践中不断提高算法和教学设计这么课程的教学能力。

新课程改革对教师的自身发展也提出了更高的要求。信息科技本身最大的特点就是不断发展,所以作为信息科技老师也应该不断地学习,必须不断更新观念,不断地积累教学经验,注重学习新知识,提高终身学习的意识和能力,以适应不断变化的时代对现代教育所提出的更高要求,以便找到合适教学方法来更好地教学。我们要不断培养和发展自己的反思能力,包括反思自己的教育理念与行为,思考各种教育行为的后果,不断自我修正、调整和更新,成为反思型教师。

【参考文献】

1.《上海市中小学信息科技课程指导纲要(征求意见稿)》,上海市中小学课程教材改革委员会办公室编,上海教育出版社,2002年11月

2.上海市高级中学信息科技学科教学基本要求(实验本),中国地图出版社,中华地图学社,2009年1月

3.王爱艳:《算法与程序设计教学之我见》,信息技术教育,2008.2 4.《〈算法与程序设计〉模块的教学策略》 李 娟

In the modern time, mainly in small and medium-sized enterprises, Foshan steel industry is the speed development by leaps and bounds, and have made remarkable achievements in upstream, but also face factors of production such as energy, raw material cost, continuously high indirectly lead to cost preures in iron and steel

第12篇:算法与程序设计VB试题与答案10

VB10

1、打开文件“考生文件夹\\178\\工程1.vbp”,完善Command1_Click事件及fac函数并保存。

实现功能:用递归法求3!+5!+7!的值,将结果输出到窗体上。

Public Function fac(a As Integer) As Integer If a = 1 Then fac = ① Else fac = a * ②(a1) + fib(n1) End If End Function

Private Sub Command1_Click() Dim sum As Integer sum = s(③) Print \"sum=\"; sum End Sub ①1 ②n ③100

6、打开“考生文件夹\\776”中的文件“蜗牛爬竹.vbp”,完善Command1_Click事件代码并保存。

实现功能:青竹高17米,蜗牛从青竹底端慢慢爬向顶端,晴天每天爬1.4米,雨天每天爬1.8米,若蜗牛爬到顶端用了11天,计算晴天、雨天各多少天?(晴天对应文本框text1,雨天对应文本框text2)

Private Sub Command1_Click() Dim x As Single Dim y As Integer y = (171.4) ① = 11 - y Text1.Text = Str(②) + \"天\" Text2.Text = Str(③) + \"天\" End Sub ①x ②x ③y

第13篇:算法与程序设计VB试题与答案08

VB08

1、打开“考生文件夹\\781”中的文件“test4.vbp”,完善Command1_Click事件代码并保存。

实现功能:回文字符串是指一个字符串从左往右读与从右往左读是一样的,如“ABCBA”,“123321”等等。输入一个字符串,若是回文字符串,则输出“Yes”,否则输出“No”。使用文本框Text1输入字符串,使用文本框Text2输出结果。

Private Sub Command1_Click() Dim s As String Dim ok As String Dim i As Integer s = Text1.Text ok = \"Yes\" For i = 1 To ①

If Mid(s, i, 1) ② Then ok = \"No\" Next i ③ End Sub ①len(s)\\2 ②Mid(s, len(s)+1-i, 1) ③text2.text=ok

2、打开文件“考生文件夹\\606\\工程1.vbp”,完善Command1_Click事件代码并保存。

实现功能:当单击“计算1+2+3+…+100”按钮后,文本框Text1显示1+2+3+…+100的值。

Private Sub Command1_Click() Dim s As Integer Dim i As Integer s = ①

For i = 1 To ② s = ③ Next i Text1.Text = Str(④) End Sub ①0 ②100 ③s+i ④s

3、打开“考生文件夹\\779\\test2.vbp”,完善Command1_Click事件代码并保存。

实现功能:输入一个正整数,计算并输出它的各位数字之和。如输入123,则输出6。使用文本框Text1输入正整数,使用文本框Text2输出计算结果。

Private Sub Command1_Click() Dim x As Integer Dim s As Integer x = Val(Text1.Text) ① Do s = s + ② x = x \\ 10 Loop Until x = 0 ③ End Sub ①s=0 ②x mod 10 ③text2.text=str(s)

4、打开文件“考生文件夹\\607\\工程1.vbp”,完善Command1_Click事件代码并保存。

实现功能:当单击“显示”按钮后,随机产生10个属于区间[0,100)的自然数,并保存于数组a中,然后在窗体上显示这10个数及其平均值。(注:学生运算结果有可能跟样图中数值不一致)

Private Sub Command1_Click() Dim a(9) As Integer Dim s As Single Dim i As Integer Me.Cls s = 0 Randomize For i = 0 To ① a(i) = Int(Rnd * 100) Print a(i) Next i For i = 0 To 9 s = ②

Print \"这10个自然数的平均值=\"; s / 10 End Sub ①9

②s+a(i) ③next i

5、打开文件“考生文件夹\\609\\工程1.vbp”,完善Form_Click事件代码并保存。

实现功能:单击窗体时在窗体上打印下面所示的图案。

**** *** ** *

Private Sub Form_Click() Dim i As Integer Dim j As Integer For i = ① To 1 Step -1 For j = 1 To i ② Next j Print ③ End Sub ①4

②print “*”; ③next i

6、打开文件“考生文件夹\\610\\工程1.vbp”,完善Command1_Click事件代码并保存。

实现功能:当单击“显示”按钮后,在窗体上显示下面的图形:

@ @@ @@@ @@@@ @@@@@ @@@@@@

Private Sub Command1_Click() Dim i As Integer Dim j As Integer For i = 1 To 6 For j = 1 To ① Print ② Next ③ Print Next i End Sub ①i

②”@”; ③j

第14篇:C程序设计算法总结举例

C程序设计算法总结举例

1.顺序结构举例

(该类题目,通常输入一些数据,再通过使用一个或几个数学公式求解,通过赋值表达式得到结果,并输出。包括求三角形面积,相关物体体积,求温度,解二元一次方程组、一元二次方程等)

1-1.求温度转换 华氏-摄氏温度转换公式:c=5/9(f-32) #include main() { float c, f; scanf(\"%f\", &f); c = 5.0 / 9 *(fi + 1 ); //pow(x,y)计算x的y次方 } ...3-5.求 s=a+aa+aaa+aaaa+a...a(n个a),a,n由键盘输入!。 如输入a=3 n=5 则 s=3+33+333+3333+33333 ……

k = s = a; for ( i = 1; i = 0; j-- ) { printf( \"%c\", \'A\' + j ); } printf( \"\\n\" );

} }

#include main() { int i, j, n; scanf( \"%d\", &n ); for ( i = 0; i

} }

4.数组

包括:排序、查找、字符串长度、字符串大小写转换、比较字符串大小、字符串连接、字符串拷贝、数列前n项、统计字符串中单词个数、求数组元素最值、二维数组输入、输出、转置、数字(字符串)逆序输出。数组中统计奇数偶数,二维数组对角线元素,行列元素的相关处理。

4-1排序(选择法、冒泡法) 冒泡法

(1)冒泡法排序算法

将一个数字序列存放在数组中,相邻的两个数进行比较,若前一个数大则交换,...一趟下来最大数必然在最后,然后对于剩下元素反复执行上面操作 #include main() { int a[10], i, j, x; for ( i = 0; i a[j + 1] ) { x = a[j]; a[j] = a[j + 1]; a[j + 1] = x; } printf( \"\\n\" ); for ( i = 0; i

编写自定义函数,实现冒泡法排序

#include main() { void qipao( int a[] ); int a[10], i; for ( i = 0; i a[j + 1] )

{

x = a[j];

a[j] = a[j + 1];

a[j + 1] = x; } } (3)选择排序算法

将一个数字序列存放在数组中,假设“剩下的序列中第一个元素”为最小值,将其与数组中其它元素进行比较,找到最小值,将该最小值与“剩下的序列中第一个元素”进行交换,最小元素放到剩下序列的第一个位置,反复做这个操作……

#include main() { int a[10], i, j, m, x; for ( i = 0; i a[j] ) m = j; x = a[m]; a[m] = a[i]; a[i] = x; } printf( \"\\n\" ); for ( i = 0; i

#include main() { void xuanze( int a[] ); int a[10], i, j; for ( i = 0; i

void xuanze( int a[] ) { int i, j, x, m; for ( i = 0; i a[j] ) m = j; x = a[m]; a[m] = a[i]; a[i] = x; } } 4-2查找

顺序查找:数字序列放到数组中,不要求数组元素本身有序,查找x是否在数列中: ……

for(i=0;i

折半查找:1.要求数列必须有序的;2.比较数列中间元素;3.缩小范围,重复2…… 4-3数列前n项

若已知 f1=1,f2=2,f3=3, fn=fn-1+3fn-2+fn-3 n>=4,用数组的方法求数列前n项(n由键盘输入)及前n项和。

#include main() { int f[100], n, i, s; scanf( \"%d\", &n); f[1] = 1, f[2] = 2, f[3] = 3; s = f[1] + f[2] + f[3]; for ( i = 4; i

//输出所有列下标大于行下标的数组元素 for ( i = 0; i i ) { printf( \"\\n行标: %d,列标: %d,元素: %d\", i, j, a[i][j]); } //数组f里元素均初始化为0 for ( i = 0; i

//求所有能被2,3,5整除的数组元素的平方和 for ( i = 0; i

//将二维数组赋值给一维数组,并输出 n = 0; for ( i = 0; i

#include #include main() { char a[100], b[30], c[4][100]; int i, j, k; //编程序实现gets函数功能如下: puts( \"请输入字符串a:\\n\" ); i = 0; while (( a[i] = getchar()) != \'\\n\' ) { i++; } a[i] = \'\\0\'; puts( \"输入的字符串是:\\n\" ); printf( \"%s\", a );

//编程序实现strlen函数的功能: i = 0; while ( a[i] != \'\\0\' ) { i++; } printf( \"%s\", \"输入的字符串长度是:\\n\" ); printf( \"%d\\n\", i );

//编程序实现strcat函数的功能: i = j = 0; puts( \"请输入字符串b:\\n\" ); gets( b ); while ( a[i] != \'\\0\' ) { i++; } while ( b[j] != \'\\0\' ) { a[i] = b[j]; i++; j++; } a[i] = \'\\0\'; puts( \"连接后字符串为:\\n\" ); puts( a );

//编程序实现strcmp函数功能: i = 0; k = 0; puts( \"\\n请重新输入两个字符串:\\n\" ); gets( a ); gets( b ); while ( a[i] != \'\\0\' || b[i] != \'\\0\' ) { if ( a[i] >b[i] ) { k = 1; break; } if ( a[i]

5-5编程序实现函数strcat(str1,str2)函数的功能:该函数实现将两个字符串(分别存放于str1,str2中)连接。

#include void scat( char a[], char b[] ) { int i, j; i = j = 0; while ( a[i] != \'\\0\' ) //定位字符串a的结尾 i++; } while ( b[j] != \'\\0\' ) //实现字符串连接 { a[i] = b[j]; i++; j++; } a[i] = \'\\0\'; //连接产生的新字符串末尾添加字符串结束标识 }

main() { char a[100], b[30]; puts( \"请输入字符串a,b:\\n\" ); gets( a ); gets( b ); scat( a, b ); //函数名做为参数 puts( \"连接后字符串为:\\n\" ); puts( a ); } 5-6编写函数实现:输入一维数组求数组中元素的最大值,输入a,b,c,d求最小值 #include //此例子中求最值分别采用条件表达式和选择结构实现,请仔细比较二者使用方式 int f1( int a, int b ) { return a >b ? a : b; }

int f2( int a, int b ) { int c; if ( a

main() { int a, b, c, d, s[10], i, max, min; scanf( \"%d,%d,%d,%d\", &a, &b, &c, &d ); for ( i = 0; i

max = f1( f1( f1( a, b ), c ), d ); min = s[0]; //假设min是数组中任意元素 for ( i = 0; i

5-7函数要求掌握的算法实现:

排序、查找、字符串求长度,连接,复制,比较大小,输入,输出,以及前面讲过的各种算法通过函数调用实现,求素数,求闰年,最大公约、最小公倍数等等。

5-8变量的作用域和生存期

变量的作用域分为:局部变量和全局变量函数。局部变量作用范围是定义它的函数内,全局变量作用范围是从定义点开始到程序结束。

#include int s = 3; //s全局变量 int a( int x ) { int c = 1, s = 2; //c,s,x局部变量 return c + s + x; //t不起作用 }

int t = 6; //t全局变量 main() { int x, y; //y,x局部变量 x = 5; y = a( x ); printf( \"%2d,%2d,%2d\", s, y, t ); }

变量的生存期:静态变量和动态变量

#include int a( int x ) { static int c = 0; //c静态变量,始终存在;c=0 仅仅执行一次 ,其值保留上次运行结果

int i = 1; //i动态变量,每次调用分配内存空间,每次都重新赋初始值1 c++; i++; return c + i + x; } main() { int x, y = 0; for ( x = 1; x

y=c+i+x y=(1+2+1)+(2+2+2)+(3+2+3)+(4+2+4)+(5+2+5).....+(10+2+10)=130

6编译预处理命令

#include #define n 5+3

....printf(\"%5d\",n*n); 其结果是?

答案 23 理由:纯粹置换! n*n---5+3*5+3

第15篇:算法与程序设计学业水平考试复习[定稿]

学业水平考试复习博观而约取,厚积而薄发 算法选择题部分( 算法选择题部分(共 35 题)

1、下列哪一个不是用于程序设计的软件 ( )。 A、BASIC B、C 语言 C、Word D、Pascal [答案] C

2、程序设计语言的发展阶段不包括 ( )。 A、自然语言 B、机器语言 C、汇编语言 D、高级语言 [答案]A [解析]自然语言可描述算法,不是程序设计语言。

3、在现实生活中,人工解题的过程一般分为 ( )。 A、理解分析问题->寻找解题方法->用工具计算->验证结果 B、寻找解题方法->理解分析问题->用工具计算->验证结果 C、用工具计算->验证结果->寻找解题方法->理解分析问题 D、用工具计算->验证结果->理解分析问题->寻找解题方法 [答案] A

4、下列关于算法的特征描述不正确的是 ( )。 A、有穷性:算法必须在有限步之内结束 B、确定性:算法的每一步必须有确切的定义 C、输入:算法必须至少有一个输入 D、输出:算法必须至少有一个输出 [答案] C [解析]算法是描述问题解决的步骤或方法,可用自然语言、伪代码、流程图等表示。算 法的基本特征由有穷性、确切性、输入、输出、可行性。

5、下列不属于算法基本特征的是 ( )。 A、可执行性 B、确定性 C、有穷性 D、无限性 [答案] D

6、以下描述中最适合用计算机编程来处理的问题是 ( )。 A、确定放学回家的路线 B、计算某个同学其中考试各科成绩总分 C、计算 100 以内的奇数平方和 D、在因特网上查找自己喜欢的歌曲 [答案] C [解析] 适合用计算机编程来处理的问题特征:烦琐但有一定的规律可利用。

7、下面不属于算法描述方式的是 ( )。 A、自然语言 B、伪代码 C、流程图 D、机器语言 [答案] D

8、流程图是描述( )的常用方式 ( )。 A、程序 B、算法 C、数据结构 D、计算规则 [答案] B

9、流程图中表示判断框的是 ( )。 A、矩形框 B、菱形框 C、圆形框 D、椭圆形框 [答案] B [解析] 椭圆形框表示开始、结束;平行四边形表示输入、输出;矩形表示处理; 菱形表示判断;箭头表示流程(流向);圆形表示连接点。

10、下列可以作为合法变量名的是 ( )。 A、a-3 B、7a C、a$ D、text2 [答案] D [解析]合法变量名可由字母、数字和下划线组成,以字母开头。

11、结构化程序设计由三种基本结构组成,下面哪个不属于这三种基本结构( )。 A、顺序结构 B、输入、输出结构 C、选择结构 D、循环结构 [答案] B 学业水平考试复习博观而约取,厚积而薄发

12、以下属于程序的基本控制结构的是 ( )。 A、星型结构 B、选择结构 C、网络结构 D、平行结构 [答案] B

13、VB 语言中,下列各种基本数据类型说明符中表示整型数的是 ( )。 A、Boolean B、Integer C、Single D、String [答案] B [解析]Boolean:逻辑型;Single:单精度浮点型数据;String:字符串类型。

14、在程序设计过程中,使用字符串运算符"+",可以将几个字符串合并成一个字符串, 如:"ab"+"cd"的运算结果是"abcd",那么"27"+"23"的运算结果是 ( )。 A、"50" B、"2723" C、"27+23" D、FALSE [答案] B [解析]字符串合并运算。

15、下列选项中不是字符串常量的是 ( )。 A、"ab" B、"你好" C、"2006" D、1235 [答案] D [解析]双引号引起来的字符是字符串常量。

16、以下运算符中运算优先级最高的是 ( )。 A、+ B、C、>= D、* [答案] D [解析] vb 中运算符优先级 算术>字符串连接运算符>比较>逻辑,还有从左到右。 例如:6+5*4=?

17、穷举法的适用范围是( )。 A、一切问题 B、解的个数极多的问题 C、解的个数有限且可一一列举 D、不适合设计算法 [答案] C [解析] 穷举法就是把所有的情况全都列举出来,一一尝试是否合适。

18、下列可以作为合法变量名的是 ( )。 A、a7 B、7a C、a-3 D、8 [答案] A

19、下面属于逻辑运算符的是 ( )。 A、or B、FALSE C、TRUE D、[答案] A [ 解析]Not、And、Or

20、模块化程序设计方法反映了结构化程序设计思想的( )基本思想。 ( )。 A、自顶而下、逐步求精 B、面向对象 C、自定义函数、过程 D、可视化编程 [答案] A

21、下列程序执行后 A、B 的值是 A=30 B=40 A=A+B:B=A-B:A=A-B" ( )。 A、30、40 B、40、40 C、40、30 D、30、30 [答案] C [ 解析] “:”冒号的意思是“一行可书写几句语句”

22、执行下列程序段后,变量 X 的值为 x=3:y=77 Do while x

23、要实现变量 M 的值与变量 N 的值进行交换,可用语句 ( )。 A、X=M:M=N:N=X B、M=N:N=M C、M=N D、N=M [答案] A

24、已知变量 x 和 y 的值分别是 6 和 5,那么以下运算结果为 True 的表达式是 ( A、Not(x>y) B、(x6) C、(x>=6)And(y>=5) D、Not(x>4) [答案]C [解析] vb 中运算符优先级算术>比较>逻辑,还有从左到右。

25、以下程序段运行时语句 k=k+1 执行的次数为( )次.K=-10 do k=k+1 loop while k=0 ( )。 A、11 B、无数次 C、9 D、10 [答案] [解析]没有正确答案,只执行一次。

26、编程求 1+2+3+……+1000 的和.该题设计最适合使用的控制结构为 A、顺序结构 B、分支结构 C、循环结构 D、选择结构 [答案] C [解析] )。 ( )。 Dim sum as integer For i=1 to 1000 Sum=sum+i Next i Print sum

27、结构化程序设计由顺序结构,选择结构和循环结构三种基本结构组成,其中某程序中 三个连续语句如下: a=1 b=2 c=b+a 它属于( )。 A、顺序结构 B、选择结构 C、循环结构 D、以上都不是 [答案]

28、下列程序段中,循环体执行的次数是( )。 y=2 Do While y

29、下列程序运行后,变量 Value 的值是( )。 X=20 if x>=10 then Value=5*x Else Value=4*x ( )。 A、100 B、80 C、40 D、20 [答案] A

30、下列程序执行后 A、B 的值是 A=5 B=6 A=A+B:B=A-B:A=A-B ( )。 A、

5、6 B、

6、6 C、

6、5 D、

5、5 [答案] C

31、在 VB 程序设计中交换变量 x 和 y 的值,就使用的赋值语句组是 ( )。 A、t=x:y=x:y=t B、x=y:y=t:t=x C、x=y:y=x D、t=x:x=y:y=t [答案] D

32、如果 X=-25,则运行 x=Abs(x);x=sqr(x)后,x 的值是 ( )。 A、5 B、-5 C、25 D、-25 [答案] A [解析]函数 abs()求绝对值;sqr()求算术平方根。

33、由语句:Dim K(11) As Long,判断下列结论中错误的是 ( )。 A、语句定义了数组 K,它的下标从 0 到 11 B、数组 K 共有 12 个分量 C、数组 K 的各个分量都是长整型数 D、数组 K 的各个分量的值将从小到大的顺序自动排列 [答案] D [解析]K(0)、K(1)、……K(11)共 12 个。

34、下面是用 VB 编写的求 1+1/2+1/3+……+1/100 和的程序,该程序循环终止时 i 的值是 多少? Private Sub Form_Activate() Dim i As Integer, sum As Integer sum = 0 For i = 1 To 100 sum = sum + 1 / i Next i End Sub ( )。 A、i=102 B、i=100 C、i=101 D、无法判断 [答案] C

35、下列程序段运行后,变量 max 的值为( ) a=5 b=10 max=a IF b>max Then max=b ( ) A、5 B、10 C、5 和 10 D、以上三项都不是 [答案] B

第16篇:高中《算法与程序设计》教学中的探索与思考

高中《算法与程序设计》教学中的探索与思考

株洲市第二中学 刘辉琴 杜新宇

【摘要】

《算法与程序设计》是高中信息技术课程中的选修一模块。本模块是高中信息技术教学的重点和难点。《算法与程序设计》本身枯燥、难懂,理论性、实践性强,教学难度大。笔者在教学实践中不断思考如何找到一些比较新颖的教学方式,在教学中因材施教,激发学生兴趣,指导学生学习程序设计,培养学生的逻辑思维能力、抽象思维能力和创新能力。 【关键字】

算法与程序设计 Visual Basic 处理教材 整合 创新思维 实例教学法 小组互助 【正 文】

“万事开头难”,程序设计尤其如此。首先,对于几乎没有相关知识背景的高一学生而言,编制一个完整的程序必须先了解程序的基本结构,掌握常量、变量和表达式等概念,学会输入、输出、赋值等语句的格式,这些内容枯燥而难以记忆。其次,由于计算机在计算方面的独特优势,使计算机解决问题的技术思维方式和学生一向习惯的数理逻辑思维方式有所不同,这也给学生的学习带来了困扰。

针对上述问题,笔者做了如下尝试:

1、大胆处理教材,整合课本知识,激发学生的学习兴趣

笔者所在地区信息技术学科使用粤教版教材,高中《算法与程序设计》选修模块中选用Visual Basic语言描述算法。VB中的对象主要用于构建界面,而具体程序功能的实现则要编写代码行,因此任何一个完整的应用程序都不可能只用对象或只用语法。教材中第二章《程序设计基础》讲述VB语言基础知识和程序的基本结构及相关语句的格式。第三章《可视化编程》讲述VB中对象的使用。笔者认为在讲授时不宜将两者分开,要把VB面向对象的程序设计方法,事件驱动的编程机制贯穿于整个教学过程中。将这两块内容有机结合起来展开教学。在教学过程中,笔者始终坚持以学生已有的知识为基础,打破以课本知识的逻辑结构为顺序组织课堂教学的模式,先不讲基本概念,改用从简单的实例人手,通过让学生观看、模仿,在实际操作中去探究和领悟这些概念,并适时地加以归纳总结,让学生在轻松愉快的气氛中接受新知识。比如,在讲到循环结构中DO——LOOP语句和FOR——NEXT语句的用法时,我用DO——LOOP语句的4种形式和FOR——NEXT语句实现求解N!的过程,让学生去观察、领悟它们的异同。

2、重视实践活动环节,通过实例教学法训练学生的创新思维,培养学生的创新能力。

创新思维是指人们在提出问题和解决问题的过程中,能够产生新成果的思维活动。发散思维、类推思维、求异思维等都是行之有效的创新思维形式。

VB 是一门实践性很强的课程,实例教学法是笔者在本模块教学中的常用方法。以教学的内容为依据,选择一些接近学生的生活,有趣的、有实际意义的小程序为实例。通过对实例进行理论分析,指导学生模仿,通过知识再现达到在实践中领悟知识,开拓设计程序的思路。在V B编程中,循环结构是程序设计中学起来很费劲但不可或缺,对于多重循环更不容易弄清其流程。这时可以在课堂上以现实中的问题为例子向学生提问,例如:时针每走过一格,分针将会走过多少格?秒针又会走过多少格?根据日常生活中的情况,可以形象地把分针、秒针和时针的运动打比方,这就是三重循环嵌套。

教师鼓励学生针对实例独立思考解决问题的算法,逐步引导他们改变以往单一的、逻辑的、线性的思维方式,多角度、多侧面、多方位地考察问题,并在实践活动中,借助程序的编译反馈信息检验思维成果。通过设计程序解决问题是培养学生的创新思维的途径之一。例如:在排序算法一节的教学过程中,就可以让学生思考对一组数据进行排序的多种方法(冒泡排序,选择排序,快速排序等等)从而训练学生的创新思维,培养学生的创新能力。程序设计算法中的枚举法、分治法、递推法、递归、动态规划法等等,都是对学生创新思维的有效的训练方法。

3、采用小组互助的学习方式,培养团队精神,提高协作能力。

将学生分为若干组,安排一些小组的任务,让多人在一起协商、协作来完成任务,学会团队协作、集体决策,不仅适用于《算法与程序设计》的学习,还适用于日常后生活与其他学科的学习。组织学生进行研讨,在思想的碰撞中往往会产生智慧的火花。

如:学习过程的定义与调用

教师在上机课时采用小组互助的学习方式,让组内同学互相帮助,共同提高。

教师给出上课时的教学任务:编写一个判断素数的公有过程,调用素数过程,实现(1)产生一个三位随机素数数组x(10);(2)验证一个大于2的偶数可以表示为两个素数之和;(3)找到四位正整数中的超级素数。

这些任务数量较多而互相有关联,小组成员内部分工,每两位同学至少独立完成其中一个小任务,然后小组成员将小任务汇总,积极讨论难点,共同攻克,使得大家不断提高能力与学习效率。

基本流程:

1.教师下达任务后,学生完成组内分工。

2.学生6-8人一组,每位学生首先完成所自己所分配到的任务,如组内成员遇到难点,要求组内其他同学相互协作,提供必要的帮助,如果互相讨论之后还是无法解决,则应由组长请教老师,再由组长教给其他组员。3.各小组成员经过任务汇总,完成整个教学任务。 4.各小组推选代表展示成果。

5.课后小组成员可以继续深入讨论学习。

采用小组互助式教学,营造出自由宽松的氛围,学生拥有高度的参与性、自主性,激发了学生的学习兴趣,调动了学习积极性。小组成员互相学习、互相沟通、互相帮助、互相督促。让学生在学习中学会了怎样与人交往;学会正确认识自我,尊重关心他人;学会取人之长,补己之短;学会宽容、忍让、分享。能做到倾听别人的正确见解,并予以采纳;能了解别人的困难所在,并给予帮助;能发现别人的优点,并不吝赞赏。学生在学习过程中提高了人际交往能力。

高中程序设计教学的主要目标是为了使同学们了解现代程序设计理论中的面向对象编程和结构化程序设计等基本思想,培养现代程序设计过程中所需要的一些基本能力。教学有法,教无定法,只要教学得法。在保护同学学习积极性的前提下,按照同学们的认知规律组织教学,合理运用多种教学方法,灵活地、创造性地掌握教学过程,激发学生的兴趣,培养学生的逻辑推理思维能力和创造性思维能力。

【参考文献】

[1]《算法与程序设计》,广东教育出版社 [2] 《普通高中信息技术课程标准》

[3] 《信息技术教育学》,周克江,中国电力出版社

第17篇:算法与程序设计《数据类型以及常量与变量》教学案例

《数据类型以及常量与变量》教学案例

【教学课题】数据类型以及常量与变量 【适用年级】普通高中一年级

【所用教材】教科版《算法与程序设计》

【学生分析】本节课教学对象为高一学生,教学内容为程序设计的基础知识,其中数据的部分类型、常量、变量的概念和数学课中有相通的地方,学生具有相关的数学基础,因此学习起来相对要容易。

【教材分析】数据类型、常量与变量是第二章第二节的第一课时的内容,本节课内容基础性强,识记内容比较多,且与数学课程中的相关概念有一定的联系,有数学知识作为基础,因此,难度并不大。 【教学目的】

1、知识和技能:

(1)了解VB中的数据和数学课中的数据之间的异同。 (2)掌握VB的数据类型。 (3)掌握常量、变量的相关知识。

2、过程和方法:

引导学生积极思考和分析问题。

3、情感态度与价值观:

培养学生严谨的思维习惯,激发学习热情。

【教学重点】VB数据类型,变量的命名及声明

【教学难点】对VB中的数据和数学课中的数据之间异同的理解。 【主要教法】讲授、演示、探究等方法。 【主要学法】记忆、尝试、讨论 【教学用具】多媒体微机房 【教学过程】

一、由已知数学概念,引入主题

师:程度设计中,往往要处理各种各样的数据。数据在数学课中指什么? 生:数字

师:在计算机中,所有能被计算机处理的都可称为数据,计算机中的数据包括哪些? 生:数字、文字、图形、声音、动画、视频。

师:由些看来,计算机中的数据和数学课中数据的内涵是不一样的,请同学们加以区分。

二、比较并速记数据类型

师:在VB中为了便于数据的表示与处理,把数据划分为不同的类型。课本中提供了VB中常用数据类型。哪些类型是你熟悉的?

生:整数、日期型

师:请同学们仔细观察“取值范围”,思考前四种类型有什么共性? 生:整型、长整型、单精度型、双精度型都是数值型,只是取值范围不同。 师:“1234”是什么数据类型?

生:应该是字符串,因为用双引号括起来的。 师:同学们注意到日期型的格式了吗? 生:用一对“#”号括起来。

师:理解了七种数据类型?回想一下,你能记住吗?

生:整型、长整型、„„

师:大家速记能力都很强。每一种数据类型都有一关键字和它相对应,所谓关键字就是数据类型的英文表示。请同学们速记七种数据类型的关键字,然后我来问你来答。

三、师生讨论得出常量与变量的概念

师:让我们一起给常量和变量下个定义,老师说,但是你们要注意填空。在程序运行过程中其值不变的量称为什么?

生:常量

师:在程序运行过程中其值变化的量称为什么? 生:变量

四、引导学生理解符号常量的含义

师:常量分数值常量和字符串常量。其中字串常量要用一对双引号括起来。如果有这样一个程序,程序中有100个地方用到圆周率的值3.14,后又要求圆周率的值精确到3.1415926,请大家帮忙想一个高效的办法。

生:查找替换。

师:很好,不过这种方法有没有不足之处?

生:有,就是如果程序中出现不是圆周率值的3.14也会被换掉。 师:有什么办法解决这个问题? 生:用符号常量

师:这位同学对我们将要学习内容进行了预习,而且效果很好。请同学们看课本,看课本上是如何解决这个问题的?

学生自学“符号常量”知识点。

师:请同学们记住定义符号常量的格式,然后告诉我虽然程序中100处涉及到圆周率的值,但是我们仅需要改动几处?

生:一处。就是在定义语句中改动所赋的值就行了。

五、学生自主学习变量的命名接受检测

师:没有规矩不能成方圆,给变量命名时也要遵守一定的规则。请同学们自学课文,了解在VB中给变量命名有哪些规则,然后判断下面的变量名哪些是合法的,哪些是不合法的。

姓名

A

3b

_df

dim_ dimas

print

生:错误的有:3b

_df

print

六、变量声明的方法

师:你在借用别人的东西之前是否要先征求主人的同意?有人要盖房子是否先打个报告?有人要做生意,是否要有营业执照?我们在使用变量时,也应该先声明后使用。请同学们自学变量声明的方法,比较定义符号常量和声明变量有哪些不同之处?

生:第一,关键字不同,定义符号常量的关键字是“const”,变量声明的关键字是“dim ”;第二,定义符号常量时需要给符号常量名赋一个值,而变量声明时不需给变量赋值;第三,作用不同,一个是定义常量,一个是定义变量。

师:归纳得非常好,请同学们看下面这个语句: Dim dtmbegingtime As Date ,dtamendtime As Date 符合规则吗? 生:不符合。

师:这种格式也是对的,是一行中定义多个变量的格式。仔细观察,这种格式的特点是什么? 生:两个语句中间用逗号分隔,第二个语句省略了“DIM”。

七、讲练结合,巩固知识

1、和学生一起讨论求5!的程序,使学生理解每行代码的作用以及该程序的算法,然后让学生通过运行该程序来验证算法。

2、要求学生上机运行求10!和100!的程序。如果出错,错在哪?应该怎么改? 师:运行程序时出错,错误的根源在哪? 生:定义数据的类型不当。

生:这三段程序中,把X都定义为双精度型就都不会出错了。 师:不同的变量类型占用内存不一样,因此尽量选择合适的变量类型。

八、师问生答,共同小结

师:通过学习,同学们能明确计算机中的数据和数学课上数据的区别吗?

生:数据在数学课中主要指数字,在计算机中是指能被计算机接受并处理的所有数字、文字、符号、图形、声音等的总称。

师:VB中的数据主要有哪几种类型?

生:整型、长整型、单精度型、双精度型、字符串型、布尔型、日期型 师:VB中变量的命名规则有哪些?

生:以字母或汉字开头;只能由字母、汉字、数字和下画线组成;字符个数不得超过255个;变量名不能用VB中的保留字等。

师:同学们只有掌握了这些基础的知识,在以后的编程中才可以得心应手地加以应用。

【教学反思】本节课教学内容为数据类型、常量和变量的知识,主要是对基本概念的描述,因此学法以理解、识记为主。本节课以师生对话为主,辅以学生的识记和实践。对于这些基本概念,通过对话的形式,教师引导学生讨论、分析、归纳、识记和应用。在识记不同的内容时,为了避免枯燥,采用不同的方法。在识记数据的类型和关键字时,加入一些强化剂——让学生当堂识记后,然后用“我来问你来答”的方式刺激学生加强记忆;在理解并识记变量的命名规则时,通过判断变量的真伪来加强识记和应用;定义符号常量和声明变量的格式,是通过比较两者的异同来加强记忆和加深理解。

本节课不足之处为:对课本练习求阶乘程序的处理不当。做练习之前向学生补充讲解阶乘的含义,因为学生还没有系统学习循环结构,对循环部分只要求学生知道这段语句是用来求阶乘就可以了。但是,在练习过程中,不断有学生问这段代码是什么意思?我粗略进行了讲解,仍有一大部分学生一知半解。希望在以后能找到更恰当的方法进行处理。

第18篇:高中信息技术 算法与程序设计教案 粤教版选修1概要

2.3 选择结构第一课时教学设计 【教学内容】

(1 教材模块:《算法与程序设计》 (2 年级:高中一年级

(3 所用教材出版社:上海科技教育出版社 (4 所属的章节: 第二章第三节 (5 课时数:2课时 【内容分析】

选择结构是VB程序设计三个基本结构之一。是学生学习VB程序入门,掌握程序语言的重要内容。

【教学目标】

知识

1、掌握条件逻辑表达式的构成

2、掌握简单IF语句的格式及其含义

技能

1、通过自主探究学习、编写程序,让学生掌握简单if语句 的语法格式和使用方法。

情感

1、形成良好的程序程序书写格式。

2、学会自主学习和养成独立解决问题的能力。【学生分析】

县级城市学生大部分来自农村,80%以上的学生在学校没有受到正规的计算机入门教育,大部分学生对编程一无所知,还有一部分学生英语基础特差,但通过一个学期的信息技术必修课学习后对电脑简单操作有一定认识,因为选择结构是程序设计基础中的一节重要内容,所以本节课分二个课时进行教学,第一课时主要讲IF语句的简单结构和标准结构,第二课时讲多重分支与多重选择语句。

【教学重点和难点】

重点:简单选择结构和标准选择结构的语法和逻辑运算。 难点:选择结构算法的实现。 【教学策略设计】 【教学过程设计】 1.教学过程

教学环节 教师活动 学生活动 设计意图 导入 新课 5分钟

活动1:给出特定关键词“小学生、公共汽车”,要求学生用“如果…… 就……”句型造句; 活动2:要求学生用以上关键词,使 用“如果……就……否则就……”句型造 句; 活动3:由于现在公共汽车都是无人

售票,公交公司想要设计一款自动检票的 设备,该设备能够自动测出身高并确定是 否需要买票。假定机器自动测出乘客的身 高为H,请大家想想计算机该怎么判断乘 客需要买什么票?用你自己的语言说出 判断过程。并试着翻译成英语。 学生思考并积 极回答 大部分学生会 造句:如果小 学生身高小于 1.2米,就不用 买票.如果H

极思考,激发学生学习兴趣,想像力和继续探 讨的热情和期待。 新课 教学 20分钟

1.师生一起画出活动3的流程图 2.探究学习:写出该程序

学生自己看书学习IF语句的语法 并试着写出该程序

3.展示部分学生作品并小结IF语句 的简单格式。(有的同学可能用简单格式 有的可能用标准格式,这里一起讲评 4.完善作品

(提醒学生程序的书写格式 5.小结IF语句语法格式

1、IF 条件 THAN 语句块 END IF

2、IF 条件 THAN 语句块1

ELSE 语句块2 END IF 学生一起画 学生自学教材 并试着写出程 序

找两位做得最 好的同学上台 讲解他的程序 并介绍选择实 现的方法 未做完的或程 序有错误的同 学进一步完善 作品,已经完 成的同学作为 小老师指导其 他同学。

请两位同学上 台小结IF语句 的格式。 在学生使用“如 果……就……否则 就……”造句,并翻译 成英语的基础上学生 很快会形成“IF…… THEN……ELSE……”概 念,通过自己学习教材 的IF语句语法格式从 而将模糊的想法转化 成严格的程序语句定 义,再通过程序实践、老师点评、小结和自己 改正、完善作品从而内 化为自己的知识。

课堂 任务

1、书64页课本例题填空。完成

全部学生必须

通过二个任务强化IF语句的练习,并 练习12分钟

任务

2、会考后老师要把会考成绩转 化成是否合格,凡是60分及以上的就“合 格”,低于60分的就“不合格”,请你帮 老师写一个电脑自动判断的程序。 任务

3、在任务2中如果还想增加一 档超过85分的给“优秀”评价,该怎么 做?如果再分细一点,比如40分以下, 40—59,60—70,71—80,81—90,91以 上,又该怎么做呢? 全体学生要求 完成

在完成前面二 个任务的基础 上思考并试一 试

通过扩展任务引起同 学们的思考,并引出下

节课要讲的内容。

学生 作品 展示 5分钟 在课堂练习开始后几分钟就会有学 生上交作品,老师可以开始对学生作品进 行评价。力争评价所有作品,学生看到老 师在点评学生作品会激发他们做好作业 的激情。

展示部分有特色、有代表性的学生作 品。

在评价阶段如 果有做得好的 学生提醒其他 同学向其学习。

学生自己展示 并解说,老师 适当点评 通过投影不断展 示已经交作业的同学 作品,激发其他同学的

热情。学生把上台展示 自己的作品当成一种 荣耀每节课选择尽量 多的同学上台展示能 提高学生的学习热情。

课堂 总结 3分钟 请一位学生小结本节课的学习内容 老师提醒学生注意IF语句的书写格式和 逻辑表达式的构成。同时提示要解决任务 3有二种方式。 学生总结IF语 句的语法和使 用方法

课后作业看书上多重选择结构并试着完成任务3。提出问题为下节 课上课做准备。 【教学反思】

1、通过分解本节课的教学内容大部分学生可以通过自主学习掌握教学内容。

2、基础好的学生能够很快完成任务甚至是拓展任务,他们完成任务后老师要求他们去辅导其他遇到问题的同学有的学生能高兴接受有的学生不太愿意,怎么处理老师是一个考验。

第19篇:算法描述与设计教案

课型:新课 《算法与程序设计》(选修)人教版

教学目标:

1.进一步理解什么是;算法,知道算法的多样性

2.能够对设计的算法做简装的评价

3.学会利用自然语言、流程图和伪代码来描述算法

教学内容

1.了解什么是算法及其特征 2.学习三种描述算法语言

教学重点:通过例子设计算法

教学难点:三种描述算法语言的使用

课时数:1课时

正课讲解

一、算法是“灵魂”

1.算法存在于人们生活中,如:上街购物、顾客付款、营业员(主)找银等。

2.“韩信点兵问题”有不同的求解过程,就有不同的算法。

有N个人,除以3,5,7,分别余2,3,2,求N。

3.算法——解决问题的方法和步骤。

算法是尼克劳斯.沃斯(N.Writh)提出的,他指出:算法+数据结构=程序。

(即算法不能单独构成程序,它必须和数据结构合二为一)

4.算法的发现

时间:公元前3000年~公元前1500年 地点:巴比伦

巴比伦人求解“算法”的过程:先用解代数方法,再计算实际数目,最后写上一句短句“这就是一个过程”。

5.算法的特征

我们曾在必须修课中提过一点算法,如:冒泡排序法。

例:计算1+2+3+„„+100=?

分析:这个算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性。计算此算法可以用纸笔、算盘、运算器

和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行性、确定性。

计算方法:

⑴把这100个数按顺序相加。

⑵用凑数法:1+99=100,2+98=100,3+97=100,„„,49+51,最后只剩下50和100。

⑶令S=0,使1≤n≤100,先执行S=S+n ⑴,再执行n=n+1 ⑵

n=1,S=0时,S(0)=1 n=2,S=1时,S(0)=3 n=3,S=3时,S(0)=6

n=4,S=6时,S(0)=10 n=5,S=10时,S(0)=15 n=6,S=15时,S(0)=21„„

算法的另外一个特征:输入、输出。

练习:水仙花数问题,如153=1^3+5^3+3^3,分析它应满足什么条件才能使用此方法?

二、如何描述算法

1.用自然语言描述算法

⑴自然语言——人们日常生活中使用的语言。

⑵此种语言的特点:通俗语易懂,缺乏直观性和简洁,且易产生歧义。

使用此种语言的注意事项:描述要求尽可能精确,详尽。

例:用自然语言描述凯撒密码的原理

第1步:输入26个英文字母,它们分别对应1~26个数学。

第2步:令a=1,k=3,n=26。

第3步:使a的取值范围为1≤a≤26,F(a)=(a+k) mod n,转第5步。

第4步:a=a+1,转第3步。

第5步:输出F(a)相对应的数字。

第6步:把数学转化成相当的字母,输出字母。

第7步:累计字母出现顺序,转第4步。

练习:现有一串字母“PROGRAM”给它加密,请设计算法,用自然语言描述。

2.用流程图描述算法

⑴特点:描述算法形象、直观,容易理解。

⑵流程图符号

3.用伪代码描述算法

特点:描述的算法简、易懂,修改容易,容易转化为程序语言代码。

例:分析课本经9页算法描述

第一个条件:y mod 4=0

判断闰年的条件:⑴y不能被100整除;⑵y能被400整除且y能被400整除。

判断不是闰年的条件:⑴y mod 4=0 且y mod 100=0,但y不能被400整除;⑵y不能被4整除。

表示条件判断语句 表示循环处理语句:

IF 条件 THEN 执行语句一 Do While 条件循环语句

ELSE执行语句二 Loop

END IF

条件语句中可以包含多个子语句

实践:用表格比较自然语言、流程图和伪代码3种描述方法的优缺点。

第20篇:浙教版高一《算法与程序设计》第二章解析算法的教学案例

浙教版高一《算法与程序设计》第二章解析算法的教学案例

浙江象山中学 黄琴

一、设计思想

本课设计打破教材编写顺序,将本教材中的第二章的算法与第五章的程序实现结合起来组织教学,通过理论结合实践,让学生更容易理解各种算法的基本设计思想,体验编写程序的成功感受,同时又能掌握解析思想。“解析算法”思想是:找出问题前提条件与结果之间正确得数学表达式。那么如何把解析思想体现在算法中,用程序语言实现呢?。我在教学过程中对整堂课的设计上的思路是:通过具体情境认知主题——体验主题——实现主题——拓展主题——这几个阶段层层深入的递进式方法使学生充分掌握解析算法。

算法课一般与枯燥,晦涩,难懂,逻辑等字眼联系在一起,往往难以激发学生兴趣。如何打破这种局面?如何激发学生兴趣,使学生情不自禁的,自主的去学习算法呢?

新课程倡导“人文与生活”,在了解学生的身心发展特点前提下,尊重学生的学习、生活、兴趣,真正以学生为主体,有创造性地设计信息技术教学环节。本课作的设计除了遵循算法自顶而下,逐步求精的思想之外,新意之处在于根据电影情节别出心裁创设了一个情境,由计算男女主角相遇时间导入,在故事中不留痕迹地渗透了教学内容,完成由简单到复杂的教学任务。

二、教材分析

本节课是《算法与程序设计》第二章《算法实例》第二节的内容,主要任务是学会使用解析算法设计简单算法流程图,并掌握用程序设计语言VB来实现有关解析算法的实例。解析算法来源于生活,生活中的很多问题都是用解析算法解决的。解析算法注重学生逻辑思维能力的训练,同时它也充分体现了用计算机解决实际问题的思想,是设计算法的一种重要方法。教材中引用了“计算n个电阻并列后的总电阻值”和“储蓄顾问”两个例子让学生体验解析算法思想及其储蓄实现,我觉得可能对学生的兴趣的激发可能不够,所以试想能否沿用上节课的情境,让学生维趣。

三、学情分析

1、在前面的教学中,学生已经理解了算法的特点,学习了算法的三种表示方式,理解了顺序、选择、循环三种基本结构,并通过参与活动手册中的实践,对程序有了初步的认识。

2、通过枚举算法两课时的学习,重点深化了流程图,基本上会设计流程图,并根据流程图写出相应的代码并通过自己编制程序上机实践来体验。那么在课堂分析过程中,学生将从听课——理解——体验——探究这些过程中全面掌握解析算法的设计思想,并能用此算法来解决日常生活问题及与其他学科有所关联的一些简单问题。

3、这节课授课的对象是象山滨海中学(三级中学)高一普通班级,所以在任务设计时适当地化简了,考虑了学生的整体水平。

四、教学目标

1、知识目标:通过具体实例的求解,让学生了解什么是解析算法;

让学生亲身体验并理解解析算法解决问题的基本思想; 用流程图形式来表示解析算法解决问题的思路;

2、能力目标:通过具体例子分析,让学生理解如何用三步法来解决实际问题;

学会使用解析算法解决简单问题;

3、情感目标:通过情景创设,激发学生学习兴趣;

通过小组合作增进学生间的学习交流,培养合作能力,激发学习能动性;

五、重点与难点

教学重点:通过对“相遇时间”的计算,让学生理解解析算法的思想,进一步培养学生运用三步法来解决实际问题; 教学难点:解析算法思想的理解与实现(流程图转化为代码并上机实践)

六、教学策略与手段

1、教师教法:情景创设法、演示法、讨论法

2、学生学法:自主学习、合作探究学习

七、课前准备

1、教师的教学准备:

准备“向左走 向右走”电影片段 准备解析算法的Visual Basic演示程序

2、教学环境 多媒体机房

八、教学过程

第一步 创设情境,认知主题

【教师】:课前播放电影片段《向左走 向右走》。

提问:刚才看的是那部电影中的画面?

【学生】:《向左走 向右走》并且简述电影的主要情节。

【教师】:电影“向左走 向右走”中,讲述了金城武饰演的一位小提琴家和梁咏琪饰演的一位翻译家之间唯美爱情故事。两人居住在同一幢公寓,中间只隔了一堵墙,却因为两人彼此习惯不同,一个习惯向左走,一个习惯向右走,总是不断擦身而过未曾相遇。电梯一上一下、在月台上分站两旁„„

画面停留在男女主角各自向左走向右走的画面,如图。

教师:导演编排得也太整人了,今天老师来当一回编剧,让他们两个有缘人能相遇。

相遇问题:今天,金城武和粱永琪各自以自己的速度围着游乐公园(矩形,公园周长为25km)一个向左走,一个向右走,经过多少时间,可以相遇呢? 【学生】:思考 【教师】:激励,两条平行线,也会有交汇的时候,什么时候能相遇呢? 【教师】:如果相遇,有一个条件?

【学生】:走过的路程和是整个公园的长度,S1+S2=S 【教师】:S1?S2? 【学生】:S1=V1*t,S2=V2*t 【教师】:金城武在t时间内走过的路程为:S1=V1*t

梁咏琪在t时间内走过的路程为:S2=V2*t 【学生】:一步步分析得出:

【教师】:刚才我们一步步分析问题的条件与结果之间的关系的这个过程就是解析算法的过程。

解析算法基本思想:用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。 【学生】:理解解析算法思想 【教师】:解析算法的关键是什么呢? 【学生】:找出数学表达式 【教师】:算法关键:找出的正确的数学表达式。 【设计意图】:引导学生都进入了电影情景中,融入情节,使每个学生似乎都有了情感目标要,要让对方相遇,所以听得特别认真,这时水到渠成地提出解析算法的基础知识,学生不知不觉就学习着解析算法的相关知识。接下去深入学习解析算法的实现过程。这个导入显得贴切,稳妥。

第二步 学习新课 体验主题

1、自然语言转化成流程图 【教师】:我们将刚才分析的结果转化成流程图。

根据学生的分析,一步步展示流程图

教师与学生一起分析程序实现所需的变量: v

1、v2的单位(千米每小时,km/h),千米每小时是常用单位,一般不用米每秒。所以时间t的单位小时,h) 【教师】:如果t=1.002 (小时)情况怎么办? 【学生】:截掉小数位, 【教师】:t=0.75 (小时)情况怎么办? 【学生】:将单位化成分或者秒,然后再截掉小数位。 【教师】:一般情况下用分,,相遇的时间用秒作单位过于精确了。 【学生】:t=fix(t*60) 【教师】:分析得出变化后的流程图:

变量分析:

v

1、v2:分别存储两人行走速度 (单位:千米每小时,km/h) t:存储所用时间(单位:小时,h) m:存储所用时间(单位:分钟,m)

【设计意图】分析时层层深入,将问题一个个迎刃而解,并且让学生重新理一遍变量,为程序实现作铺垫。

2、流程图转化成代码

学生根据流程图,转化成代码,教师适当提示:

Private Sub Command1_Click() Dim v1, v2, t As Double Dim m As Integer V1=val(text1.text) V2=val(text2.text) t=25/(v1+v2) m=Fix(t*60) text3.text = Str(m) End Sub 第三步 学以致用 实现主题 【教师】:下面我们就付诸实施,利用计算机帮助我们计算相遇时间。

实践活动一:相遇时间,后附。 展示完成后的程序效果,如图。

展示程序设计的界面,让学生先完成基本的程序界面,再编写代码(通过提供不完整代码,有针对性的给予提示),调试成功后,可再对程序界面进行美化,这样可以使学生在完成教学任务的同时拓展知识。 教师先调试一遍,注意输入的速度,提示学生一般人的行走速度在10km/h左右。 【学生】:操作实践。 【教师】:教师巡视,给予个别指导。 【设计意图】:刚才分析相遇时间,是老师学生一起实现的,通过这个过程学生已经基本上掌握了解析算法。这里给学生自己实践机会,对解析算法进行独立应用,巩固相关知识。

第四步 逐步深入 拓展主题

【教师】:两个人相遇之后,在一起,开始为以后的生活作打算,梁咏琪开始琢磨起储蓄计划,准备去银行存钱但是她算术不够好,总是要问正在创作小提琴曲谱的金城武。 下面是梁咏琪和金城武之间的几次对话: 粱:如果我存1000元,想得到本息额1100元,应该要存多少年? 为简单起见,假定银行公布的储蓄规则为:(PPT展示)

1、存期以年为单位,存款以元为单位;

2、不论存期的长短,年利率均为4.5%;

3、不计复利。【学生】:3年

【教师】粱:如果我存5000元,想得到本息额6000元,应该要存多少年啊? 【学生】:5年

【教师】粱:如果我存20000元,想得到本息额24000元,应该要存多少年啊? 学生思考有点慢了。

【教师】:梁咏琪还要无休止地问下去,金城武能不能安心创作? 【学生】:不能。

【教师】:有没有什么办法呢?如果大家帮金城武设计了一个能完成刚才问题的程序,问题是不是就可以解决了。

1、提出问题:请你帮金城武设计一个计算机程序,帮梁咏琪解答疑问,使金城武可以专心创作。

2、分析问题

提炼问题:M元钱需要存多少年,可以得到K元本息? 按照银行的储蓄规则,一笔数量为M元的存款: 【教师】:1年后到期的本息为? 【学生】:M+M*0.045 【教师】:2年后到期的本息为? 【学生】:M+M*0.045+ M*0.045 【教师】:3年后到期的本息为?

【学生】:M+M*0.045+ M*0.045 + M*0.045 【教师】Y年后到期的本息为? 【学生】:M+Y*(M*0.045) 【教师】:一笔M元 M+Y*(M*0.045)= K

Y= (K-M)/(0.045*M)

钱的存款,需要存Y年,才能得到至少K元本息:

【教师】:如果Y年是小数? 【学生】:Y=Fix( Y )+1

3、自然语言转换成流程图

4、流程图转化成程序代码 Private Sub Command1_Click() Dim M, K, Y As Double M=Val(Text1.Text) K=Val(Text2.Text) Y=(K?) / (0.045 * m)

If y >Fix(y) Then y =?+ 1

Text3.Text = \"存款应为:\" + Str(y) + \"年\" End Sub

Private Sub Text1_Click()

Text1.Text = \"\": Text2.Text = \"\": Text3.Text = \"\" End Sub 拓展:改进应用程序“梁咏琪的储蓄顾问”

问题1:如果K

算法与程序设计教案模板
《算法与程序设计教案模板.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档