当前位置:文档之家› 教科版高中信息技术选修一《算法与程序设计》选修教案.doc

教科版高中信息技术选修一《算法与程序设计》选修教案.doc

教科版高中信息技术选修一《算法与程序设计》选修教案.doc
教科版高中信息技术选修一《算法与程序设计》选修教案.doc

学习必备欢迎下载

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

一、教学目标

1、知识与技能

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

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

手操作能力。

2、情感、态度、价值观

学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学

生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。

二、教学重点难点

重点:算法概念的理解

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

三、教学策略与手段

以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动

探讨,通过 Flash 演示材料,比较直观地把抽象的问题简单化,使学生的思考

逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主

探究学习的能力。

四、教学过程( 1 课时)

(一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。

【问题一】天下真的有“不要钱的午餐”吗?

某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来

的顺序都坐一遍,以后来吃饭就可永远免费” 。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢?

学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题

的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一

个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任

一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位

只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需

要吃120次才有可能吃上免费午餐。

【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的

任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉

的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。学

生:学生讨论回答。

〖展示步骤〗

①两个妖怪先过河,一个妖怪回来;

②再两个妖怪过河,一个妖怪回来;

③两个和尚过河,一个妖怪和一个和尚回来;

④两个和尚过河,一个妖怪回来;

⑤两个妖怪过河,一个妖怪回来;

⑥两个妖怪过河。

【F lash 动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和

人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。(二)【课件展示】算法的概念:

1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使

用算法,只是没意识到罢了。如:洗衣机的使用说明书是操作洗衣机的算法,

菜谱是做菜的算法等等。

2、在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序

和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。【小试身手】按照这样的理解 , 我们可以设计出很多由具体数学问题解决一类数

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

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

【设计意图】求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二

元一次方程组的方法来求解鸡兔同笼问题。

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

第二步:将方程组中的第一个方程两边乘- 2 加到第二个方程中去,得到,得到 y=7;

第三步:将 y=7 代入( 1)得 x=10。

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

【师生合作】老师带领学生共同书写规范的算法的具体步骤,最后引出算法使

用的范围:能解决一类问题,并且能重复使用。

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

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

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

所适从。

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

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

【教学总结】

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

2、课堂教学的效益取决于学生对所学知识理解了多少,能否用所学知识来解决一些实际问题。本节课的设计突出讲与练的结合,培养学生的动手能力,并且

引出学生对下一节课的内容的思考,比较顺利的完成了本节课的教学任务。

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 余

设所求的数为X,

2,

则 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 题的经验,很快会写出和第一题类似的算法。如下:

分析问题 ( 找出已知和未

知、列出已知和未知之间

的关系 )

写出解题步骤

1、令X 为1。

设所求的数为

X 应满足:

X整除 3余1

X整除 5余2

X整除 7余4

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

X整除5余2,

X整除7余4,

X整除 13 余 6,

X整除 17 余 8,则记下这

X。

X 整除

X 整除

13余 6

17余 8

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

教师:“程序编好以后,通过键盘输入计算机,并运行程序查看结果这个过程叫调试程序。”

(五)观摩

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

(六)交流

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

关于求解问题的方式讨论记录

求解问题的方式相同点不同点

人工求解问题

用计算机求解问

教师提问 2~3 个小组的讨论结果,并引导出大致如下的形式结果:

求解问题的方式相同点不同点

对题目进行解答、运

人工求解问题分析问题、设计算法、算速度慢、不需要计

得出结果、验算结果算机等

用计算机求解问等编写程序、调试程序、

题运算速度快等

第三课算法与算法的描述

一、教学目标

1、知识与技能

(1)了解算法的定义及其表达方法;

(2)认知流程图的六种基本符号;

(3)理解计算机解决问题的一般过程。

2、方法与过程

(1)理解用不同的表达方法描述算法的优缺点;

(2)掌握用流程图描述简单的算法。

3、情感态度和价值观

以生活中的实例引入算法,激发学生的学习兴趣,培养学生的主动探究能力。

二、重点难点

(一)教学重点

1、算法的定义;

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

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

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

(二)教学难点

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

6、用流程图描述算法。

三、教学过程( 2 课时)

教学内容预期目标新课内容:

一、对算法的初步了解

的加速度。

根据在物理课中学过的知识,要解决这个问题有

多种方法:

方法一:

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

标明判定)但同时只能

后的两种一流出线起作

结果的流用

流线表示从某

一框到另

一框的流

连接圈表示算法一条流线

流向出口

或入口连

接点

优点:直观、形象

缺点:不能被计算机识别和执行

例 6-1-1 :“物体在恒力作用下的加速度”的算法用下图表达。开始

M=m

F1=F

F2=f

a=( F1-F2 )/M 了解计算机解决问题的一般过程,为今后用编程解决实际问题打下基础。

3.用程序实现算法

用计算机能理解和执行的程序设计语言把算法表示出来,然后把程序输入到计算机并执行,计算机才能按照预定的算法去解决问题。

不同类型的计算机能够识别的指令和语言不尽相同,即使对同一种计算机语言,不同类型的计算机对该语言的解释程序也有差异。

因此,用程序表示算法时,必须按照程序设计语言适用某类计算机的具体规定来进行。

例:用 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.设计算法

弄清楚要计算机“做什么”后,就要设计计算法,明确要计算机“怎么做”

解决一个问题,可能有多种算法。例如,数学题常常有“一题多解”。这就是说,解决一个问题的算法可能不止一种。这是,应该通过分析、比较、挑选一种最优的算法。

3.编写程序

计算机只能接受并执行计算机程序设计语言编

写的程序。当我们为解决一个问题确定了算法

后,还必须将该算法用计算机程序设计语言编

写程序。这个过程成为“编码”或“编程”。

4.上机调试与维护

编写完成的程序,不一定完全符合实际问题的

要求,还必须在计算机上运行这个程序,排除程

序中可能出现的错误,才能得到结果。这个过程

称为“上机调试”。

即使是经过调试的程序,在使用一段时间后,仍然

会被发现错误或不足之处。这就需要对程序做进

一步的修改,使之更加完善。这个过程称为“维

护”。

在实际解决问题时,上述四个步骤可能会根据

不同的问题有所侧重。

第四课程序与程序设计语言

一、教学目标

1、知识与技能

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

2、过程与方法

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

3、情感态度与价值观

让学生进一步领会算法和程序设计在解决问题中的地位,体会编写出程序的魅力,从而培养学生学习编程的兴趣。

二、重点难点

(1)重点:了解代码所包含的算法思想;

(2)难点:计算机是如何编辑程序、编译程序和连接程序的。

三、教学过程( 2 课时)

正课讲解

(一)尝试用 VB 编写程序

1、么是VB?

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

2 、编写程序

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

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

⑵单击工具箱“ CommandButton ”的按钮,在 Form1 窗体中拖出一个

“Command1”按钮。

Command1 是命令按钮,它有 6 个属性、 2 个事件和 4 个方法。

属性

Caption标题Default决定窗体的默认命令按钮

Enabled 决定对象是否响应用Style控件的外观

户生成事件

Visible 决定对象是否可见Picture显示的图形

事件方法

Click单击Drag拖动Refresh刷新

KeyPress 字符键被Move移动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,看看它的值有什么变化,为什么会这样变?

(二)算法、程序设计与程序设计语言之间的关系

⑴算法

提出问题:什么是算法?算法有哪些特征?⑵程序设计——寻求解决问题的方法,并将其实现步骤写成计算机可执行

的程序的过程。

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

算法是程序设计的前提,它包含方法和步骤;

程序是实现算法中的思想的过程;

程序设计语言把算法转化为计算机认识的语言。

(三)认识程序设计语言

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”为后缀。

执行过程:

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

一、教学目标

1、知识与技能

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

2、方法与过程

本节涉及到基础知识较多,所以要一个一个问题解决,从一个简单的求

相关主题
文本预览
相关文档 最新文档