当前位置:首页 >> 其它课程 >> 《算法与程序设计》选修教案

《算法与程序设计》选修教案


第一课
一、教学目标 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 个学习小组,每个小组的同学一起探究、讨论问题。利用已学过的数学知识找出题目 已知什么求什么、明确已知和未知之间的关系和写出求解问题的解题步骤。并填写《计算机解决问题的 过程》教学活动表中的“探究问题记录表”。如下:

4

探究问题记录表 分析问题(找出已知和未知、列出 写出解题步骤 已知和未知之间的关系) 结果

学生讨论,教师在这过程中到各学习小组中,引导个别学习小组分析问题、写出解题步骤。教师 提问 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 X 整除 5 余 2 X 整除 7 余 4 2、如果 X 整除 3 余 1, X 整除 5 余 2, X 整除 7 余 4,

5

X 整除 13 余 6 X 整除 17 余 8

X 整除 13 余 6, 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) b) c) 测量出物体的质量 m、拉力 F 和滑动摩擦力 f 将测量所得的数据输入计算机 根据牛顿第二定律 F-f=m*a,计算出加速度 a
8

预期目标

d)

输出所得的结果

方法二: a) b) c) d) 测量出物体从静止开始移动的距离 s、时间 t 将测量所得的数据输入计算机 利用公式:s=a*t*t/2 计算出加速度 a 输出所得的结果 引入物理学中的例子, 激发 学生的学习兴趣, 有助于学 生理解算法的概念

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 Enabled 标题 决定对象是否响应用户生成 事件 Visible 决定对象是否可见 Picture 显示的图形
13

Default Style

决定窗体的默认命令按钮 控件的外观

事件 Click KeyPress 单击 字符键被单 击 Drag Move 拖动 移动

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

15

第五课
一、教学目标 1、知识与技能

vb 语言及程序开发环境

掌握 VB 定义的常用的基本数据类型,常量与变量的定义方法,运算符、函数和表达式的描述。 熟悉 VB 程序设计语言的开发环境,能调试简单的 VB 程序。 2、方法与过程 本节涉及到基础知识较多,所以要一个一个问题解决,从一个简单的求圆的面积的程序入手, 从中分析 VB 程序一般包括的四部分,基本数据类型、常量与变量,运算符、函数和表达式,而且 结合练习来加强对这些新知识的巩固。通过介绍 VB 程序的开发环境中的菜单、常用工具和常用窗 口等,再通过上机操作运行一个程序,让学生更容易上手。 3、情感态度和价值观 这一节是学习 VB 程序的重要的入门课,授课时要注意结合学生的思路,逐个问题解决,不可 一蹴而就。 二、重点难点 1、教学重点 (1) (2) VB 常用的的基本数据类型,常量与变量,运算符和表达式 VB 程序的开发环境

2、教学难点 把本节的内容加以运用 三、教学过程(3 课时) 导入: 以下是一个“求半径为 r 的圆的面积”的程序, 请你注意观察程序的组成结构及其功能, 并思考如下的问题: (1)程序有多少行,每一行的作用是什么? (2)如果按语句的作用区分,这个程序包含几个部分? Private sub command1_click() Const pi as single=3.14 Dim r as single,s as single r=inputbox(“r=”,”请输入半径”) s=pi*r*r print “圆的面积 s=”;s ‘定义名为 command1_click()的事件过程 ‘说明程序中 pi 是常量∏ ‘定义半径 r 和面积 s 为单精度实型 ‘输入 r 的值

‘把表达式 pi*r*r 的值赋给 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 中,常用的运算符有算术运算符、字符串运算符和逻辑运算符等。 ①算术运算符有: 运算符号 含义 + 加号 减号 * 乘号 / 除号 ^ 乘方 \ 整除 MOD 取余数

算术运算符的运算规则和数学中相同,如果意义不明确时,可以加上括号使其看起来更明白。 中只使 VB 用一种括号“ ” (),它可以多次嵌套。 ②字符串运算符有:& VB 中的字符串运算符是 “&” 该运算符主要用于连接两个或更多的字符串, , 例如: "abcd"&"efg"” “
18

连接后结果为"abcdefg"。 (2)函数 在 VB 中有两类函数,分别是内部函数和自定义函数转换函数。常用的内部函数有数值函数、字符 函数、时间/日期函数和其它函数等,如表 2-2 所示,自定义函数是由程序员根据需要定义的函数。

在程序中要使用一个函数时,只需要给出函数名和一个或多个参数,就能得到函数值。调用函数 的格式如下: (3)表达式 表达式是指某个求值规则,它由运算符和配对的圆括号将变量、常量、函数等操作数以合理的 形式连接起来的式子。例如在上述的程序中,式子 pi*r*r 是合法的表达式。 四、练习 (1)下列数据属于字符串常量的是( ) A.bcda B."kfjf" C.’fksj’ D.”j_hjh” 函数名(参数表)

(2)在 VB 语言中,下列数据中合法的长整型常量是() A.09B B.2738940 C.99.7800 D.8.12345E12

(3)在 VB 语言中,下列变量中合法的变量是() A.b90 B.abc=9 C.print D.8888F1
19

(4)在 VB 语言中,下列表达式中合法的表达式是() A.a+b*|c| B.bct÷9 C.4-2*∏ D. pi*r*r

五、可视化程序的开发环境 前面的学习使我们知道,要较快地学会运行调试 VB 程序,首先需要熟悉 VB 程序设计语言 的开发环境。VB 程序设计语言的开发环境的界面如下图:

VB 程序设计语言的开发环境中,控件工具箱、代码窗口、窗体设计器窗口、工程资源管理器 窗口、属性窗口是一些常用的程序设计与调试工具,这些工具互相协调、互相补充,如果熟练、合 理地使用会大大地减少应用程序的开发难度,提高工作效率。 四、课外拓展 在了解、熟悉了 VB 程序设计语言的开发环境以后,你肯定跃跃欲试,一显身手。好吧,就让我们 一起来体验 VB 程序的运行调试吧! 求 s=1×2×3×?×n 问题的 VB 程序: private sub form_load() n=inputbox(“请输入 n 的值:, ”“输入”) s=1 for i=1 to n s=s*I next I msgbox “s=”+str(s),0,”计算结果” end sub 当 N=22 时,运行的结果是:
20

第六课
一、教学目标 1、知识与技能

程序的顺序结构

理解程序顺序结构的执行流程,掌握赋值语句和输入输出语句,能够编写简单的顺序结构的程序, 以解决生活中的一些计算问题。 2、方法与过程 本节从简单的问题入手,如求圆的面积,让学生初步掌握赋值语句和输入输出语句的使用方法及其 功能。进而转入较为复杂的问题,如编写程序使从键盘上输入一个三位数,然后反方向输出,并且运用 到上一章所学的运算符、表达式等,对知识进行巩固,课程安排形成循序渐进的梯度,充分挖掘学生潜 力,让有余力的学生可以有更大空间。 3、情感态度和价值观 程序设计选取的题目与高一所学的数学、物理中学到的新知识有密切的联系,从而激发学生对程序 设计的追求和向往。 二、重点难点 1、教学重点 (1) (2) (3) 2、教学难点 根据题目写出正确的程序 三、教学过程(2 课时) 导入:演示求圆的面积这道题的程序,让学生明白通过程序可以解决数学中的问题,也给学生展示完整 的程序代码,这道程序的功能就是靠这些代码来控制的,引起学生的注意,激发他们的求知欲。 一、演示上述的程序,并把程序代码中的各行代码的作用解释一遍,顺便把程序的执行流程说明一下, 编写的程序与设计的算法是一致的。 Private sub command1_click() Const pi as single=3.14 Dim r as single,s as single r=inputbox(“r=”,”请输入半径”) ‘定义名为 command1_click()的事件过程 ‘说明程序中 pi 是常量∏ ‘定义半径 r 和面积 s 为单精度实型 ‘输入 r 的值
21

赋值语句和输入输出语句的使用 程序顺序结构的执行流程 能编写程序解决简单的应用题

s=pi*r*r print “圆的面积 s=”;s End sub 二、赋值语句

‘把表达式 pi*r*r 的值赋给 s ‘把 s 的值输出到当前的窗体上 ‘过程结束

在上述的程序中,r=inputbox(“r=”,”请输入半径”),s=pi*r*r 的含义分别是将赋值号右边的函数 inputbox(“r=”,”请输入半径”)的值赋给变量 r, 将赋值号右边的表达式 pi*r*r 的值赋给变量 s。它们的作用 都是将表达式的值赋给左边的变量,这种语句称为赋值语句。 赋值语句的基本格式是: 变量=表达式 这里的“=”是赋值符号,它的含义是将表达式的值赋给左边的变量。 观察下列赋值语句的作用: (1) (2) (3) A=B,它是将变量 B 的值赋给变量 A,但 B 的值并未改变。 A=123 表示将数值 123 赋给变量 A。 A=A+10 表示将变量 A 的值加 10 后,再赋给变量 A。如果原来 A 的值为 30,则执行 此语句后,A 的值为 40。 (4) 如果 A=30,B=40,则依次执行语句 T=A,A=B,B=T 后,A、B 两个变量的值发生 交换 A=40,B=30。 三、输入数据的函数 Inputbox()是提供从键盘输入数据的函数,利用它可产生一个对话框,提示用户输入数据并单击命令 按钮。该函数返回值是字符类型。利用这个函数,上述程序中的 r=inputbox(“r=”,”请输入半径”),所 以在程序运行时,从键盘上输入数据赋值给变量 r。 Inputbox()的语法格式为: Inputbox(提示信息,标题,默认值,位置) 其中: 提示信息:指对输入数据的提示,显示在对话框中,不能省略。 标题:指运行此函数后弹出的对话框的标题。 默认值:指默认的输入数据值。 位置:指运行此函数后弹出的对话框的左上角在屏幕上的位置与提示信息和标题是用引号引起来的 字符串。例如:执行下面的程序运行情况: Private Sub Command1_Click()
22

A = InputBox("A=", "输入", 12, 100, 20) End Sub 运行该程序,屏幕上窗口的左上角将位于坐标为(100,20)的位置,标题为“输入” ,窗口的提示信息 为“A=” ,而在输入栏内会出现默认的数据 12。如下图所示:

四、输出数据的方法 Print 是输出数据、文本的一个重要方法。在求圆的面积程序中,print “圆的面积 s=”;s 就是利 用 Print 方法将计算出来的圆的面积 s 的值输出到窗体上。 Print 方法输出数据的基本格式是: Print 输出内容 在这里,输出内容可以是数、变量、表达式,也可以是用引号括起来的字符串。 说明: (1)如果输出的内容是数、变量、表达式,则输出的是数、变量、表达式的值。如果是引号 引起来的字符串,则原样输出。 例如:语句 Print 3 的结果为 3 语句 Print 2+2 的结果为 4 语句 Print “你好” 的结果为 你好 (2)输出内容可以是一个或多个。如果是多个输出内容,则各输出内容之间可以用逗号或分 号分隔;如果用分号,则后面一个输出内容紧跟前一个输出;如果是逗号,则按照分区格式输出。 例如:A=5,B=3 Print “A=” ;A, “B=” ;B 输出结果为:A=5 A=5,B=3 Print “A=” ;A; “B=” ;B 输出结果为:A=5B=3 (3)如果输出内容后面没有符号,则表示下一个 Print 换行输出;如果 Print 中没有输出内容, 则表达输出一个空行。
23

B=3

例如:A=5,B=3 Print “A=” ;A Print “B=” ;B 五、练习 问题 1:已知长方体的长、宽、高,编写一个程序,求长方体的全面积和体积。 (1) 分析问题

设长方体的长、宽、高分别为 A、B、C,由于长方体的六个面的面积两两对应相等,所以长方体的 全面积为:S=2*(A*B+A*C+B*C) ,体积为:V=A*B*C。 (2)设计算法 ① ② ③ ④ 输入 A、B、C 的值 计算 S=2*(A*B+A*C+B*C) 计算 V=A*B*C 输出 S,V 的值

(3)编写程序

Private sub command1_click() Dim A as single,B as single,C as single,S as single,V as single A=Inputbox(“A=”,”输入”) B=Inputbox(“B=”,”输入”) C=Inputbox(“C=”,”输入”) S=2*(A*B+A*C+B*C) V=A*B*C Print “全面积 S=” ;S, “体积 V=” ;V (4)调式程序 六、小结 在以上的程序中,执行时按语句出现的顺序执。即当执行第一条语句后,必然从第二条语句 继续,顺序执行所有的语句,直到执行完最后一条语句为止。像这样的控制结构称为程序的顺序结 构。顺序结构的最大特点是在这个结构内按由上到下的的书写顺序执行,它只有一个入口和一个出 口。这是一种最简单、最基本的结构。如图

24

五、课外拓展 试编写程序从键盘上输入一个三位数,然后将它反方向输出。例如输入 456,输出应为 654。

25

第七课
一、教学目标 1、知识与技能

程序的选择结构

理解程序选择结构中的条件选择语句的执行流程,掌握条件选择语句和多种选择语句的使用方法, 能够编写简单的选择结构的程序,以解决生活中的一些计算问题。 2、方法与过程 本节从简单的问题入手,通过一道求一个数的绝对值的题目,让学生明白条件选取择语句的执行流 程及使用方法。进而再做类似的练习,加强学生的理解,课程安排形成循序渐进的梯度,充分挖掘学生 潜力。 3、情感态度和价值观 程序设计选取的题目都是生活中遇到的例子,加强学生利用本学科解决日学生活中的问题的意识。 二、重点难点 1、教学重点 (1)条件选择语句和多重选择语句的使用 (2)程序条件选择结构的执行流程 (3)会使用条件语句和多重选择语句编写程序解决简单的应用题 2、教学难点:根据题目写出正确的程序 三、教学过程(2 课时) 导入:演示求一个数的绝对值这道题的程序,让学生明白通过程序可以解决数学中的问题,也给学 生展示完整的程序代码,这道程序的功能就是靠这些代码来控制的,引起学生的注意,激发他们的求知 欲。 一、演示上述的程序,并把程序代码中的各行代码的作用解释一遍,顺便把程序的执行流程说明一下, 编写的程序与设计的算法是一致的。 程序 2-3 Private sub command1_click() Dim A as single ‘定义名为 command1_click()的事件过程

‘定义求绝对值的数 A 为单精度实型 ‘输入 A 的值

A=inputbox(“r=”,”请输入半径”) If A>=0 then Print “Y=”;A Else

‘如果 A>=0 ‘输出 A 的值

26

Print “Y=”;-A End if End sub 二、条件语句

‘输出-A 的值

‘过程结束

在解决问题的过程中,常常需要对事物进行判断和选择,如上题中,求一个数 A 的绝对值,如果 A>=0, 则这个数的绝对值为 A,否则为-A。在程序设计中,如何实现判断和选择呢?在上述代码中,有一个用 if 开头的语句,这就是条件语句。 (一)条件语句的基本格式是: if 条件 then 语句组 1 else 语句组 2 或 if 条件 then 语句组 1 else 语句组 2 end if 其中,条件是一个逻辑表达式,语句组是一组 VB 的语句。 (二)条件执行语句的执行过程 条件语句的执行过程是:当条件成立时,执行 then 后面的语句组 1,否则执行语句组 2,条件语句的执 行流程图如下图所示。

在条件语句的基本格式中有时可以省略 else 和语句组 2, 这时条件语句的执行过程是当条件成立 时,执行 then 后面的语句组 1,否则退出条件语句,执行下面的语句。 (三)关系表达式
27

在程序 2-3 中,程序的第三行是一个条件语句,其中的条件 A>=0 表达式,一般称为关系表达式, 关系表达式是用关系运算符连接起来的式子。 关系运算符号有: 运算符号 含义 = 等于 > 大于 >= 大于等于 < 小于 <= 小于等于 <> 不等于

当关系表式成立时其值为真(Ture),当表达式不成立时其值则为假(False) ;关系表达式的值既不 是数值型量,也不是字符型量,而是一种新的数量类型——逻辑型。逻辑型只有两个可能的值:假 (False)和真(Ture) 。 关系表达式的值定义如下: (1)对数值型的数据比较,是按照数值的大小来进行比较。如 13>6 的值为真。 (2)对其它类型数据的比较,则按照其序号进行比较。如"D">"B"其值为假。2<X< (四)逻辑表达式 在实际问题中, 对于一些复杂的条件, 还需要几个关系表达式组合起来才能表示。 例如, 条件 2<X<9 就需要用 2<X 和 X<9 这两个表达式来表示.将多个关系表达式用逻辑运算符连接起来的式子称为逻 辑表达式,逻辑表达式的运算值为逻辑型。逻辑运算符有: Not(非)取操作数相反的值。即当操作数为假时,结果为真;当操作数为真时,结果为假。 And(与)当两个操作数都为真时,结果才为真。 Or(或)当两个操作数都为假时,结果才为假。 (五)逻辑运算的顺序 (1)当条件中只有逻辑运算符时,运算的顺序为 Not、And、Or (2)当条件中既有算术运算符,又有关系运算符和逻辑运算符时,运算顺序是:算术运算符,关 系运算符,逻辑运算符 例如: a+b>c+d and a>=5 or not c>0 or d<0 当 a=5,b=7,c=2,d=1 时,运算结果是真。

三、练习 四、练习 问题 1:某商场为了对苹果进行促销,规定购买 2 千克以上可以在原价每千克 1.5 的基础上打 8 折。 请设计一个程序计算购买 x 千克苹果的应付款。
28

(1)

分析问题

设买苹果的重量为 x 千克,应付款为 y 元,如果 x>=2,则 y=1.5*x*0.8,否则 y=1.5*x。 (2)设计算法 ① ② ③ ④ 输入 x 的值 如果 x>=2,则 y=1.5*x*0.8 否则 y=1.5*x 输出 y 的值

(3)编写程序

Private sub command1_click() Dim x as single x=Inputbox(“请输入购买苹果的重量”) if x>=2 then y=1.5*x*0.8 else y=1.5*x end if Print “应付款” “元” ;y; (4)调式程序 五、多重选择语句 问题 2:输入一个成绩,如果 90 分以上,则输出“优秀” ;80-89,则输出“良好” ;70-79, 则输出“中等” ;60-69,则输出“及格” ;60 分以下则输出“不及格” ,请编写程序。 如果这道题使用 if 语句来编写程序的话,程序如下: 程序 2-4 Private sub command_click() X=inputbox(“请输入一个分数”) If X>=90 then print”优秀” If X>=80 and X<89 then print”良好” If X>=70 and X<79 then print”中等” If X>=60 and X<69 then print”及格”
29

If X <60 then print”不及格” End sub 在程序 2-4 中,使用了 5 个 if 语句来处理 5 种情况。这样的程序在可读性和效率方面都是比较差的, 如果再多一些情况,它的缺陷就会暴露得更加明显,如何处理这个问题呢? (一)多重选择语句格式 在 VB 语言中,设置了一个处理多种情况的语句,称为多重选择语句,它的基本格式为: select case 表达式 case 表达式列表 1 语句组 1 case 表达式列表 2 ?? case else 语句组 N+1 end select 其中 (1)表达式和表达式列表可以是数值型或字符型,表达式列表还可以是多个用逗号分开的表 达式。 (2) (3) ① ② ③ 表达式列表与表达式的类型必须相同。 表达式列表又称值域,它有如下三种形式: 表达式 1,表达式 2,?? 表达式 1 to 表达式 2 Is 关系表达式

(二)多重选择语句的执行过程 多重选择语句的执行过程是: 当表达式的值为表达式列表 1 时,执行语句组 1; 当表达式的值为表达式列表 2 时,执行语句组 2; ?? 当表达式的值为表达式列表 N 时,执行语句组 N; 当表达式的值不是上述值时,执行语句组 N+1; 有了多重选择语句,对于多种情况的选择问题,就可以利用它来解决。运用多重选择语句编
30

写问题 2 的程序如下: Private sub command_click() X=inputbox(“请输入学生成绩”) Select case X Case Is>=90 Print”优秀” Case 80 to 89 Print”良好” Case 70 to 79 Print”中等” Case 60 to 69 Print”及格” Case else Print”不及格” End select End sub (三)练习 问题 3:我们把字符作如下的分类:大写字母:A?Z;小写字母:a?z;数字:0?9;其它字符。 编写程序,根据上述分类的方法,输入一个字符,报告该字符所属的类型。 六、小结 与顺序结构相比较,选择结构就是程序的执行不再完全按照语句的顺序执行,而是根据某种条件是 否成立来决定程序执行的走向,它进一步体现了计算机的智能特点。 在 VB 语言中,选择结构通过 if 语句和 select case 语句这两个条件语句来实现,运用条件语句的关 键是条件的表示,如果能够正确地表达条件,就可以简化程序,在多重选择的情况下,使用 select case 语句,可以使程序更直观,更准确地描述出分支的走向。 四、课外拓展 问题 4:编一个程序,输入三个数,输出其中的最大数。 问题 5:自已上网查资料,搜集有关气象风级表的资料,比如说 0 级是属于无风,12 级是属于飓 风等,试编写程序,输入一个风级,输出相应的概况,名称,速度等。

31

第八课
一、教学目标 1、知识与技能

程序的循环结构

掌握循环结构编程的一般步骤及特点。 (1)掌握 VB 语言的 FOR 循环语句、语句的格式、功能和执 行过程; (2)掌握 VB 语言的循环嵌套的规则。培养和提升学生:(1)学会使用 VB 语言的 FOR 循环语 句来实现循环控制结构,解决实际问题; 初步掌握程序调试运行的方法。 (2 2、方法与过程 采用“问题解决教学法” 。 3、情感态度和价值观 (1)经历用计算机解决问题的过程,体验成功的快乐。 (2)在老师的指导下,与同学共同探究问题,让学生体验自主学习、协助学习的乐趣。 二、重点难点 让学生学会使用 VB 语言的 FOR 循环语句来实现循环控制结构,解决实际问题。 三、教学过程(for 循环结构)(2 课时) 教学环 节 从袁隆平的超级水稻研究的故事入手,又到 学生边阅读边倾听。提问:有同学 教师活动 学生活动

“输出 100 以内的所有偶数的算术平方根”的的 试图用以下方法解决: 问题出发,激发学生学习的兴趣和热情,拉开了 本节教学的序幕。 情意 Print 导入 …… Print Sqr(100) Sqr (6) Private Sub Command_Click( ) Print Print Sqr (2) Sqr (4)

End Sub 由此老师引入今天的循环问题:即问题 中包含有重复执行的处理。 1.通过组织学生探究“输出 100 以内的所有 新课讲解 偶数的算术平方根”的问题、设计算法、编写程 算法、编写程序、调试程序等用计算机
32

1.学生对问题展开分析问题、设计

序、调试程序等用计算机解决问题的过程: Private Sub Command_Click( ) For I=2 To 100 Step 2 Print Sqr (I) Next I End Sub 让学生感到用 VB 提供的循环结构语句,能 很简便地解决循环问题 2.通过师生共同分析“输出 100 以内的所有 偶数的算术平方根”问题的程序,归纳总结 VB 语言的 FOR 循环语句的格式、功能、执行过程, 以及书写的注意事项,归纳总结 VB 语言的 for 循环特点。 For 值 语句组 Next 循环变量 循环变量=初值 To 终值 Step 步长

解决问题的探究活动。 2.学生在教师的指导下,阅读、分 析、归纳,完成实践任务。

3. 学生对老师所提问题 (分别求甲、 乙、丙三位同学的语文、数学、英语三

3.老师提出上机实践问题:分别求甲、乙、 科的平均分) 展开分析问题、 设计算法、 丙三位同学的语文、数学、英语三科的平均分。 编写程序、调试程序等用计算机解决问 要求学生展开分析问题、设计算法、编写程序、 题的探究活动。 调试程序等用计算机解决问题的探究活动。

4.学生在教师的指导下,阅读、分 4、要求学生课堂练习:指出所列程序中的错 误,加强知识学习和把握。 5、上机练习: (1)P53 实践 2 (2)求 1×3×5×……×19 的值。 析、归纳,完成实践任务。 5、要求学生完成上机练习,老师巡 视帮助学生完成任务。 6、要求学生上机练习 P56 的实践

6、由问题“已知 m 个学生进行 n 个科目的 (1) 、 考试,请计算每个同学的平均分。 ”引出循环嵌 套的问题,帮助学生分析学会嵌套的技巧与方 (2) 老师巡视帮助学生完成任务。 ,

33

法: ? ? Private Sub Command1_Click() Dim m As Integer, n As Integer, i As Integer ? Dim fen As Single, sum As Single, average As Single ? ? ? ? ? ? m = InputBox("请输入学生人数:") n = InputBox("考试科目数:") For i = 1 To m sum = 0 For j = 1 To n fen = Val(InputBox("请输入第" + Str$(i) + "个同学第" + Str$(j) + "科")) ? ? ? ? ? ? sum = sum + fen Next j average = sum / n Print "第"; i; "同学平均分:"; average Next i End Sub

通过对以上程序的分析和程序执行过程,使 学生能真领会和把握这一编程技巧。

拓展

由 图形的输出问题加深学生对循环嵌套的问题的 把握,帮助学生分析学会嵌套的技巧与方法:

要求学生求 的图形。老师巡视帮助学生完成任务。

34

小结 练习

VB 语言的 FOR 循环语句、格式、功能和执行过程,以及 for 循环嵌套。 教师在布置课本的练习:P59(1)(2) 、 ,指导学生根据本节所学的知识,分析问题,设 计算法,编程求解问题。

(Do 循环结构)

一、 重点难点 让学生学会使用 VB 语言的 do 循环语句来实现循环控制结构,解决实际问题;以及几种不同 do 循 环结构的比较异同。 二、 教学过程(Do 循环结构)

教学环 节 情意

教师活动

学生活动

从“陈婷植树”的故事入手,激发学生学习 的兴趣和热情,拉开了本节教学的序幕。

学生边阅读边倾听。

导入 1.通过组织学生探究“陈婷植树”的问题、设 计算法、编写程序、调试程序等用计算机解决问 题的过程: ? ? Integer ? 新课 讲解 ? ? ? ? ? ? Age = 17 Tree = 3 Do Age = Age + 1 Tree = Tree + Age - 14 Loop Until Tree >= 100 Print "到"; Age; "岁时种到"; Private Sub Command1_Click() Dim Age As Integer, Tree As 1.学生对问题展开分析问题、设计算 法、编写程序、调试程序等用计算机解 决问题的探究活动。 2.学生在教师的指导下,阅读、分析、 归纳,完成实践任务。

Tree; "棵树!" ? End Sub 3. 学生对老师所提问题展开分析问题、
35

2.通过师生共同分析“陈婷植树”问题的程序,

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

出一个最大整数 N,使得 S<50000。要求学生展 归纳,完成实践任务。 开分析问题、设计算法、编写程序、调试程序等 用计算机解决问题的探究活动。 4、上机练习:P54 实践(1)(2) 、 5、 对几种 DO 循环的比较分析: 归纳总结出各自 不同的特点的把握要素,使同学们能运用自如。 5、要求学生上机练习共同探讨 P58 的 交流, 得出使用 DO 循环的技巧和心得。

设立一些由人力解决较困难的问题,要求学生运 拓展 用所学编程知识去解决,比如:判断一个大数是 否为素数等问题。 小结 练习 编程求解问题。

要求学生能设计出算法及编写出程序。

VB 语言的 DO 循环语句、格式、功能和执行过程,以及几种不同 DO 循环的比较。 教师在布置课本的练习:P59(5) ,指导学生根据本节所学的知识,分析问题,设计算法,

36

第九课
一、 教学目标

模块化程序设计

(1)理解自顶而下、逐步求精的程序设计方法; (2)掌握 VB 语言的过程与函数的定义和调用方法。 (3)理解模块化程序设计的基本思想。 二、 重点难点 教学重点: 让学生学会使用 VB 语言的过程与函数的定义和调用方法。 教学难点: 理解模块化程序设计的基本思想,并运用于程序设计中。 三、教学过程(2 课时) 教学环 节 从歌德巴赫猜想的故事入手, 验证歌德巴赫 猜想, 激发学生学习的兴趣和热情, 通过先看 P61 情意 的程序 2-9A 观查此程序有没有功能重复的地方, 导入 如何才能省略书写……并且反复调用同一功能 的程序代码呢?拉开本节教学的序幕。 1.通过组织学生探究“验证歌德巴赫猜想”问 题,引导学生经历分析问题、设计算法、编写程 序、调试程序等用计算机解决问题的过程;归纳 总结自顶而下、逐步求精的程序设计方法; 2.通过师生共同分析“验证歌德巴赫猜想”的 新课 讲解 另一个程序,归纳总结 VB 语言的过程与函数的 定义和调用方法。 1. 学生对 “验证歌德巴赫猜想” 问题展开分析问题、设计算法、 编写程序、 调试程序等用计算机 解决问题的探究活动。 2. 学生在教师的指导下, 阅读、 分析、归纳,完成实践任务。 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<10 天的桃子数为 tao(n)那么 tao=10 n=1 tao(n)=(tao(n+1)+1)*2 n<10 我们能不能这样设一个函数: 算法描述: 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(month - 1) + tu(month - 2) End If End Function

阅读 思考、 分析、 讨论,

尊重学生的个 体发展,让学 生进行自主探 究学习,使用 学主动、积极 的学习新知 识,培养他们 的自学能力。

编程实 现。

培养学生分析 问题、解决问 题能力,煅练 学生“数学建 模”建构主义 的学习观认 为:学习不是 被动接收信 息,而是主动 地建构意义, 以自己原有的 知识经验为基 础对外部信息 进行主动地选 择、加工和处 理,人而获得 自己的意义过 程。 培养学生分析 问题、归纳、 梳理知识的能 力,通过两种 算法的对比, 让学生深入体 会递归算法的 魅力。加深对 本节课所学知 识的理解。

深化 知识

阅读教材的循环结构实现, 比较讨论两种算法的区别 和特点

学生讨 论

42

课堂 小结

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

达成共 识

布置 作业

巩固和发展本 节课的学习内 容。

43


更多相关文档:

《算法与程序设计》选修教案

《算法与程序设计》选修教案_其它课程_高中教育_教育专区。高中信息技术算法教案 第一课一、教学目标 1、知识与技能 初识算法与程序设计 (1)理解算法的概念,培养...

教科版《算法与程序设计》教学设计集

教科版《算法与程序设计》教学设计集_计算机软件及应用_IT/计算机_专业资料。高中信息技术算法与程序设计(选修)案例点评本模块是信息技术选修模块之一。 学生在《信息...

算法与程序设计全 教案

算法与程序设计全 教案_院校资料_高等教育_教育专区。高中信息技术选修模块《算法与程序设计》全部教案 算法与程序设计 教案 1-1节一、 1、 (1) (2) (3) 2...

《算法与程序设计——程序的选择结构》教学设计

《算法与程序设计——程序的选择结构 教学设计 教材分析 1. 课程标准对本节课的要求是会使用程序设计语言实现程序的选择结构; 而本节内容, 正是学生已经学习了...

《算法与程序设计》教学设计

《算法与程序设计》教学设计_其它课程_高中教育_教育专区。科教版 算法与程序设计(选修)案例点评本模块是信息技术选修模块之一。 学生在《信息技术基础》的“信息...

高中信息技术 算法与程序设计教案 沪教版选修1

高中信息技术 算法与程序设计教案 沪教版选修1_初二政史地_政史地_初中教育_...信息技术选修 1《 算法与程序设计》 2、 年级:高一年级 3、 所用教材出版...

算法与程序设计-For循环语句教学设计

算法与程序设计-For循环语句教学设计_其它课程_高中教育_教育专区。高中信息技术(选修1)算法与程序设计高中信息技术(选修 1) 算法与程序设计 《For 循环语句》教学...

科教版 算法与程序设计-教案

科教版 算法与程序设计 教案 1-1节一、 1、 (1) (2) (3) 2、 (1) ...教材选用《广东省 普通高中信息技术选修一:算法与程序设计》第三章第一节,建议...

“算法与程序设计”教学设计案例

“算法与程序设计”教学设计案例设计者 案例名称 适应范围 课时 江逸军 单位 漳州一中 从身边的问题看算法与程序设计的关系 《信息技术选修 1 算法与程序设计》第...

高中信息技术 算法与程序设计-选择结构教案 教科版

高中信息技术 算法与程序设计-选择结构教案 教科版_...中选修模块之一, 本模块旨在使学生进一步体 验算法...标准实验教科书《算法与程序设计》 第二章第三节的...
更多相关标签:
算法与程序设计 教案 | 算法与程序框图教案 | 算法设计与分析 教案 | 算法与程序设计 | 分形算法与程序设计 | 算法与程序设计ppt | 高中算法与程序设计 | 程序设计的典型算法有 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com