《算法与程序设计》选修教案.pdf
《《算法与程序设计》选修教案.pdf》由会员分享,可在线阅读,更多相关《《算法与程序设计》选修教案.pdf(114页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 第一课 初识算法与程序设计 一、教学目标 1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力;(2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评 价信息、表达呈现信息的能力,进一步提高其信息素养。二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过 Flash 演示材 料,比较直观地把抽象的问题简单化,使学生的思
2、考逐步深入,从而总结出算法的概念,学会如何设计 和选择算法,培养学生自主探究学习的能力。四、教学过程(1 课时)(一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。【问题一】天下真的有“不要钱的午餐”吗 某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来宾必须凑够五个人,五人 每次来就餐必须按照不同的顺序坐,直到把所有可能的顺序都坐一遍,以后来吃饭就可永远免费”。于 是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了于是他就叫上自己的朋友参加这项 活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢 学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得
3、出了破解问题的步骤:第一个座位 个人都有坐的机会第二个座位只有个人中的任一个有坐的机会(一个人不能同时坐两 个座位)第 三个座位只有个人中的任一个有坐的机会第四个座位只有个人中的任一个有坐的机会第五个座 位只有个人有坐的机会计算:得出结论:需要吃次才有可能 吃上免费午餐。【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果 妖怪的人数大于和尚的人数,那么和尚就会有被吃掉的危险。你能不能找出一种安全的渡河方法呢请 1 写一写你的渡河方案。学生:学生讨论回答。展示步骤 两个妖怪先过河,一个妖怪回来;再两个妖怪过河,一个妖怪回来;两个和尚过河,一个妖怪和一个和尚
4、回来;两个和尚过河,一个妖怪回来;两个妖怪过河,一个妖怪回来;两个妖怪过河。【Flash 动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和人解决问题一样需要有清晰 的解题步骤。算法就是解决问题的程序或步骤。(二)【课件展示】算法的概念:1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使用算法,只是没意识到罢 了。如:洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。2、在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤 必须是明确和有效的,而且能够在有限步之内完成。【小试身手】按照这样的理解,我们可以设计出很多由具体数
5、学问题解决一类数学问题的算法.下面看一 个例子:(要求学生自己考虑并写出具体的算法)鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有17 个头,48 只脚,鸡和兔各有多少只试 设计一个求解的算法。【设计意图】求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求 解鸡兔同笼问题。第一步:设有小鸡 x 只,小兔 y 只,则有 第二步:将方程组中的第一个方程两边乘2 加到第二个方程中去,得到,得到 y=7;第三步:将 y=7 代入(1)得 x=10。【变一变】在笼中有鸡、兔若干,已知有头 a 个,有脚 b 只,求各有多少只鸡和兔。【师生合作】老师带领学生共同书写规范的
6、算法的具体步骤,最后引出算法使用的范围:能解决一类问 题,并且能重复使用。(三)【课件展示】算法的基本特征 有穷性 确定性 不唯一性 有效性(逻辑性)2 1、有穷性:一个算法应该包含有限个操作步骤,而不能是无限的。2、确定性:算法的每个步骤都应该是明确无误的,不能含义模糊,使执行者无所适从。3、有零个或者多个输入,有一个或者多个输出 4、有效性:算法中的每一步都应该能有效地执行,执行算法最后应该能得到确定的结果。【教学总结】1、本节课通过一些生活中看似简单问题的解决方法和步骤,使学生比较轻松的接受了生活算法的概念,进一步理解了计算机算法的概念。2、课堂教学的效益取决于学生对所学知识理解了多少,
7、能否用所学知识来解决一些实际问题。本节课的 设计突出讲与练的结合,培养学生的动手能力,并且引出学生对下一节课的内容的思考,比较顺利的完 成了本节课的教学任务。3、如何优化算法,找到算法的形式和用算法解决问题的效益的最佳结合点,还尚需探讨。3 第二课 用计算机解决问题 一、教学目标 (1)让学生了解算法、穷举法、程序设计语言、编写程序和调试程序等概念。(2)让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述。(3)让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用。二、重点难点 重点用计算解决问题的过程中的分析问
8、题、设计算法、和上机调试程序等步骤。用计算机解决 问题的过程中的分析问题、设计算法也是本节的难点。三、教学过程(2 课时)(一)引入 教师:“在科技发达的今天,我们到处都可以看到计算机的踪影,感受到计算机给学习、生活带来 的方便。然而,在惊叹计算机的神奇和享受的欢乐的时候,你是否了解计算解决问题的基本过程有没 有思考过其中的奥妙呢下面我们先看一个古典的问题:”学生观看的电视剧汉刘邦片断,内容大致如下:“韩信是我国西汉初着名的军事家,刘邦得天下,军事上全依靠他。韩信点兵,多多益 善,不仅如 此,还能经常以少胜多,以弱胜强。在与楚军决战时韩信指挥诸侯联军,在垓下十面埋伏,击败楚军,楚霸王项羽因此自
9、杀。”片断结束时屏幕出现“韩信点兵”问题:“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每 3 人一列余 1 人、5 人一列余 2 人、7 人一列余 4 人、13 人一列余 6 人。刘邦茫然而不知其数。你 呢”(二)问题 教师:“下面我们先助刘邦解决一个简单的问题。”“韩信点兵”问题 1:求整除 3 余 1、整除 5 余 2、整除 7 余 4 的最小自然数。(三)探究 把全班分成 16 个学习小组,每个小组的同学一起探究、讨论问题。利用已学过的数学知识找出题目 已知什么求什么、明确已知和未知之间的关系和写出求解问题的解题步骤。并填写计算机解决问题的 过程教学活动表中的“探究问题记录表”。
10、如下:4 探究问题记录表 分析问题(找出已知和未知、列出 写出解题步骤 结果 已知和未知之间的关系)学生讨论,教师在这过程中到各学习小组中,引导个别学习小组分析问题、写出解题步骤。教师 提问 23 个同学,从中逐渐引导出类似如下的分析问题和解题步骤,并给出算法的概念。分析问题(找出已知和未知、列出 写出解题步骤 已知和未知之间的关系)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 整除
11、7 余 4 4、如果算出,则结束;否则跳转 2。5、写出答案。教师解释第 3 步“另 X 为 X+1”并指出它与数学中的区别,并从上面的解题步骤中总结出穷举的算法。教师:“刚才有些同学把题目解出来了,答案是 67,韩信作为大将军,统率士兵当然不止 67 人,下 面我们来解决一个数据量稍大的问题。”展示题目:“韩信点兵”问题 2:求整除 3 余 1、整除 5 余 2、整除 7 余 4、整除 13 余 6、整除 17 余8 的最小自 然数。学生分析上述问题并写出算法,不用计算。学生有了第 1 题的经验,很快会写出和第一题类似的算 法。如下:分析问题(找出已知和未知、列出 写出解题步骤 已知和未知之
12、间的关系)设所求的数为 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 万,人工计算要很长时间,在科技发达的今天,你想到什么”(用 计算机解题)(四)用计算机解决问题 教师:“计算机怎么样解决问题用计算机解决问题,同样要经过分析问题、设计算法两步骤
13、。”在讲授过程中展示人工解题中分析问题和设计算法这两个步骤。用计算机解题,是不是输入上面的算法?上面用自然语言描述的算法,计算机不懂,必须翻译成计算机的语言,这就是程序设计语言。”本例用 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
14、 If End If X=X+1 Loop Until Y 0 Print 韩信统御士兵数:;Y End Sub 教师:“程序编好以后,通过键盘输入计算机,并运行程序查看结果这个过程叫调试程序。”6 (五)观摩 根据前面编制的程序,启动 Visual Basic 程序设计环境,输入程序代码,进行调试,最后 得到运行 的结果。要求同组内先完成的同学帮助还未完成的同学。帮助的时候不能代劳,只能动口不动手。(六)交流 教师:“前面我们学习了用计算机解决问题的过程,它和人工解有什么关系呢同一学习小组的同 学一起探讨人工求解问题和用计算机求解问题的异同,并把讨论结果记录在计算机解决问题的过程 教学活动表
15、的“讨论记录”表中。如下:关于求解问题的方式讨论记录 求解问题的方式 相同点 不同点 人工求解问题 用计算机求解问题 教师提问 23 个小组的讨论结果,并引导出大致如下的形式结果:求解问题的方式 相同点 不同点 对题目进行解答、运算速度 人工求解问题 慢、不需要计算机等 分析问题、设计算法、得出 结果、验算结果等 编写程序、调试程序、运算 用计算机求解问题 速度快等 7 第三课 算法与算法的描述 一、教学目标 1、知识与技能 (1)了解算法的定义及其表达方法;(2)认知流程图的六种基本符号;(3)理解计算机解决问题的一般过程。2、方法与过程 (1)理解用不同的表达方法描述算法的优缺点;(2)掌
16、握用流程图描述简单的算法。3、情感态度和价值观 以生活中的实例引入算法,激发学生的学习兴趣,培养学生的主动探究能力。二、重点难点 (一)教学重点 1、算法的定义;2、算法的三种表达方法;3、流程图的六种基本符号;4、用流程图描述简单的算法。(二)教学难点 5、算法的描述(三种);6、用流程图描述算法。三、教学过程(2 课时)教学内容 预期目标 新课内容:一、对算法的初步了解 1一个简单的物理问题:求物体在恒力作用下的加速度。根据在物理课中学过的知识,要解决这个问题有多种方法:方法一:a)测量出物体的质量 m、拉力 F 和滑动摩擦力 f b)将测量所得的数据输入计算机 c)根据牛顿第二定律 F-
17、f=m*a,计算出加速度 a 8 d)输出所得的结果 方法二:a)测量出物体从静止开始移动的距离 s、时间 t b)将测量所得的数据输入计算机 引入物理学中的例子,激发 c)利用公式:s=a*t*t/2 计算出加速度 a 学生的学习兴趣,有助于学 d)输出所得的结果 生理解算法的概念 2算法的定义 这种为解决某一问题而设计的确定的有限的步骤称为算法。二、算法的描述 要把解决问题的步骤表达出来,有多种方法可以表达算法。引导出算法的概念 1用自然语言表达 用自然语言表达算法,就是把算法的各个步骤,依次用人们熟悉 介绍三种算法的表达方式,的自然语言表示出来。并对它们进行比较,分析优 优点:容易理解
18、缺点。缺点:书写较烦、不确定性、对复杂的问题难以表达准确、不能 被计算机识别和执行 给出流程图的基本符号,2用图形符号表达 对其功能和使用情况加以 用图形符号表达算法必须要有一组规定统一、含义确定的专用符 说明,以便今后在具体运用 号。中的正确使用。常用的“流程图”所用的基本符号 图形符号 符号名称 说明 流线 起始、终表示算法的开起始框:一流出线 止框 始或结束 终止框:一流入线 输入、输框中标明输只有一流入线和一 出框 入、输出的内流出线 容 处理框 框中标明进行只有一流入线和一 什么处理 流出线 判定框 框中标明判定一流入线两流出线 条件并在框外(T 和 F 9 标明判定后的)但同时只能
19、一流 两种结果的流出线起作用 向 流线 表示从某一框 给出流程图的作法,通过详 到另一框的流 细的解释说明使学生初步 向 掌握流程图的使用和基本 连接圈 表示算法流向一条流线 画法。出口或入口连 接点 优点:直观、形象 缺点:不能被计算机识别和执行 例 6-1-1:“物体在恒力作用下的加速度”的算法用下图表达。开始 M=m F1=F F2=f a=(F1-F2)/M 输出 a 结束 3用程序实现算法 用计算机能理解和执行的程序设计语言把算法表示出来,然后把 了解计算机解决问题的一 程序输入到计算机并执行,计算机才能按照预定的算法去解决问 般过程,为今后用编程解决 10 题。实际问题打下基础。不
20、同类型的计算机能够识别的指令和语言不尽相同,即使对同一 种计算机语言,不同类型的计算机对该语言的解释程序也有差 异。因此,用程序表示算法时,必须按照程序设计语言适用某类计算 机的具体规定来进行。例:用 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
21、 三、用计算机解决问题的一般过程 使用计算机解决一个问题,一般包括四个过程 1需求分析 “需求分析”是指对要解决的问题进行详细的分析,弄清楚问题 的要求,包括需要输入什么数据,要得到什么结果,最后应输出 什么。“需求分析”就是确定要计算机“做什么”。2设计算法 弄清楚要计算机“做什么”后,就要设计计算法,明确要计算机 “怎么做”11 解决一个问题,可能有多种算法。例如,数学题常常有“一题多 解”。这就是说,解决一个问题的算法可能不止一种。这是,应 该通过分析、比较、挑选一种最优的算法。3编写程序 计算机只能接受并执行计算机程序设计语言编写的程序。当我们 为解决一个问题确定了算法后,还必须将该算
22、法用计算机程序设 计语言编写程序。这个过程成为“编码”或“编程”。4上机调试与维护 编写完成的程序,不一定完全符合实际问题的要求,还必须在计 算机上运行这个程序,排除程序中可能出现的错误,才能得到结 果。这个过程称为“上机调试”。即使是经过调试的程序,在使用一段时间后,仍然会被发现错误 或不足之处。这就需要对程序做进一步的修改,使之更加完善。这个过程称为“维护”。在实际解决问题时,上述四个步骤可能会根据不同的问题有所侧 重。12 第四课 程序与程序设计语言 一、教学目标 1、知识与技能 使学生知道什么是源代码,并理解算法、程序设计、程序设计语言之间的关系,了解程序设计语言的发 展及种类。2、过
23、程与方法 使学生初步体验编程乐趣,了解如何编辑程序、编译程序和连接程序。3、情感态度与价值观 让学生进一步领会算法和程序设计在解决问题中的地位,体会编写出程序的魅力,从而培养学生学习编 程的兴趣。二、重点难点 (1)重点:了解代码所包含的算法思想;(2)难点:计算机是如何编辑程序、编译程序和连接程序的。三、教学过程(2 课时)正课讲解 (一)尝试用 VB 编写程序 1、么是 VB VB 是一种基本 BASIC 语言的可视化程序开发工具。2、编写程序 从桌面上启动 VB,弹出“新建工程”对话框,从“新建”页面中选“标准 EXE”,然后“打开“按 钮,建立”标准 EXE 工程。注:为了避免打开时总
24、是出现“新建工程”对话框,在首次启动时,勾选“不再显示这个对话框”。单击工具箱“CommandButton”的按钮,在Form1 窗体中拖出一个“Command1”按钮。Command1 是命令按钮,它有 6 个属性、2 个事件和 4 个方法。属性 Caption Default 标题 决定窗体的默认命令按钮 Style Enabled 控件的外观 决定对象是否响应用户生成 事件 Visible Picture 决定对象是否可见 显示的图形 13 事件 方法 Click Drag Refresh 单击 拖动 刷新 Move KeyPress SetFocus 移动 字符键被单设置焦点,将当前焦
25、 击 点强制设置到文本 框对象上 选中此按钮,从属性窗口中将 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 从“运行”菜单中“单击”启动命令,运行程序。运行后,单击“韩信点兵”按钮。注:运行时,不能修改程序代码。实践题:从“调试”菜单中点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法与程序设计 算法 程序设计 选修 教案
限制150内