收藏 分销(赏)

广东版高中教材教学指导用书+算法与程序设.doc

上传人:xrp****65 文档编号:7693616 上传时间:2025-01-12 格式:DOC 页数:33 大小:663.50KB 下载积分:10 金币
下载 相关 举报
广东版高中教材教学指导用书+算法与程序设.doc_第1页
第1页 / 共33页
广东版高中教材教学指导用书+算法与程序设.doc_第2页
第2页 / 共33页


点击查看更多>>
资源描述
第二章 算法与程序设计 “算法与程序设计”是高中信息技术课程的选修模块,以问题解决与程序设计为主线,揭示利用计算机解决问题的过程。学生通过本模块的学习“体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法、解决问题。” ① 中华人民共和国教育部. 普通高中技术课标准(实验). 人民教育出版社,2003,19页 “本模块的教学,应注意与数学课程中有关内容的衔接,要强调理论与实践的结合,引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决这些问题。教师要注意发现对程序设计有特殊才能的学生,根据具体情况为他们提供充分的发展空间。本模块强调的是通过算法与程序设计解决实际问题的方法,对程序设计语言的选择不作具体规定。” ② 同上,1页 课程标准中,本模块主题组成结构如下: 程序设计语言初步 算法与程序设计 计算机解决问题的基本过程 算法与问题解决例举 图2.1 “算法与程序设计”主题结构图 本教学指导在沿用课程标准中主题内容的前提下,为进一步增强对实际教学的指导作用,对主题结构作了些调整,两者的关系如图2.2所示。 利用计算机解决问题的基本过程 算法与程序实现 程序设计基础 程序设计思想和方法 计算机解决问题的基本过程 程序设计语言初步 算法与问题解决例举 图2.2 调整前后主题间的关系图 调整后的模块由四个主题组成,四个主题在知识结构上以螺旋上升方式展开。 “利用计算机解决问题的基本过程”主题旨在呈现人是如何利用计算机解决问题,解决问题需要经历哪些基本过程。教学中应注意让学生结合生活与学习提出问题,从身边简单问题入手亲历分析问题、设计算法、编写程序、解决问题的过程。应注意结合数学课程中算法这一部分知识,让学生进一步了解算法,学会用不同的方法描述算法,了解算法、程序、程序设计语言之间的关系,认识算法和程序设计的地位和作用。本主题是整个模块学习的引入,为过渡到其它主题的学习打下基础。 “程序设计基础”主题旨在呈现如何用计算机语言进行程序设计。教师可以根据学生需要选择一种语言,并以该语言为载体,让学生理解数据在计算机中是如何表示与处理的,了解程序设计基本方法,初步掌握顺序、选择、循环三种基本结构,体验程序设计的实践过程,同时了解程序设计语言的编译程序、连接程序等基本知识。 “算法与程序实现”主题旨在通过解析法、穷举法、排序和查找、递归等常用算法的程序实现,让学生进一步理解算法,进一步掌握程序设计基础知识,在体验算法思想与程序设计过程中,培养逻辑思维能力,塑造良好的认知结构。可以组织学生探讨需解决的问题与其相应算法之间的关系,尝试归纳算法与程序设计应用的一般规律,讨论使用计算机程序设计解决问题的优势和局限性等。 “程序设计思想和方法”主题是对前三个主题内容的提升,旨在引导学生理解结构化程序设计思想,探究如何用结构化程序设计方法解决问题。了解面向对象程序设计的思想、方法和关键技术。通过引导学生亲历软件的开发过程,对算法与程序设计的思想与方法形成一个相对完整且比较准确的认识,为将来的学业发展奠定基础。 在教学过程中,应注意“知识与技能”、“过程与方法”、“情感态度与价值观”三维课程目标的相互联系与相互渗透,进而提升学生的信息素养,促进学生信息技术能力的立体发展。 第一节 利用计算机解决问题的基本过程 课程内容标准 1.结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。 2.经历用自然语言、流程图或伪代码等方法描述算法的过程。 3.在使用计算机解决实际问题的过程中,通过观看演示、模仿、探究、实践等环节,了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。 程序设计语言产生与发展 问题的认识和形成 算法的概念、特征与作用 算法的描述 程序和程序设计 算法与程序设计关系 利用计算机解决问题的基本过程 问题和算法 算法和程序 程序和程序设计语言 问题的分析与算法设计 一、 内容结构图 图2.3 “利用计算机解决问题的基本过程”主题内容结构图 二、学习目标细目表 学习内容 学习结果的行为指标(当学生获得这种学习结果时,他们能够) 问题的认识和形成 ·结合生活与学习的实例说明利用计算机解决问题的必要性 ·从已有的知识与经验中例举出人工解决困难而利用计算机能够快捷解决的问题 问题的分析与算法设计 ·了解利用计算机解决问题的基本过程 ·了解问题分析与算法设计间的关系 ·模仿分析简单问题的已知条件、要解决的问题以及问题与条件之间的关系,写出输入、求解、输出过程的步骤 算法的概念、特征与作用 ·结合数学课程中学习的算法知识,说出自己对算法的理解 ·说出算法的五种特征,举例说明算法特征的含义 ·了解算法特征在解决问题过程中算法选择的作用 算法的描述 ·结合数学课程中学习的算法知识,用自然语言、流程图、伪代码描述算法 算法与程序设计关系 ·用自己的语言描述算法与程序设计间的关系 程序和程序设计 ·描述程序概念和解释程序的作用 ·结合实例描述顺序、选择、循环三种基本结构的单步程序执行方式 ·画出三种程序基本结构的流程图 程序设计语言产生与发展 ·说出程序设计语言产生与发展过程 ·了解程序设计语言的功能,针对简单问题设计一套可以解决该问题的人工语言(不超过5条指令) ·例举出三种以上高级语言的名称 三、重点难点分析 (一)重点分析 1. 利用计算机程序设计解决问题的必要性,建立问题意识。 程序设计是运用计算机解决问题的一种方式,有些问题,如:数值、逻辑等问题适合于通过程序的方式解决。教学中应注意引导学生从生活与学习实例出发,认识与举证可以通过运用计算机程序设计得到高效解决的问题,让学生深切地感受利用计算机程序设计解决问题的必要性,引发学习本模块的兴趣和动机。 2. 利用计算机解决问题的过程。 提出问题 分析问题 设计算法 编写程序 调试程序 得到结果 图2.4 利用计算机解决问题流程 利用计算机解决问题流程如图2.4所示,教学中选择一个学生运用已有知识能够解决的实例,教师通过演示等手段协助学生亲历实例问题的分析、设计算法、把所要解决的问题转化成的程序输入到计算机、经调试后让计算机执行这个程序,最终达到利用计算机解决问题的过程。让学生了解和体会流程中每一步骤的含义,为展开整个课程学习打下基础。 3. 算法的基本概念,使用自然语言、流程图、伪代码描述算法。 学生通过高一数学知识的学习,已有算法知识的储备,结合计算机工作方式,让学生进一步了解算法,进一步学会使用自然语言、流程图、伪代码描述算法。 4. 程序的基本结构 学生通过高一数学知识的学习,已经了解了算法的三种逻辑结构和流程图,程序的基本结构与之相对应,是程序设计的基础。让学生尝试体验程序三种结构的计算机执行方式,加深对三种基础结构的了解。 5. 程序设计语言 程序设计语言是人利用计算机解决问题的载体,让学生充分认识程序设计语言,通过计算机语言的发展历程,感受计算机技术的发展。 (二)难点分析 1. 算法的特征 算法的特征对初学者而言较难理解,教学中尽可能通过具体问题的算法分析、程序分析,让学生感悟出算法的特征,为进一步学习分析问题、选择算法打下基础。 2. “好”算法的标准 算法设计除正确性外,还应考虑其高效性、可读性、健壮性,学生在开始时是做不到的,但可以让学生知道需要从不同角度分析问题,才能不断改进算法,并通过实践形成这种良好习惯。 四、教学活动建议 本节是算法与程序设计课程的入门。学生通过对“信息技术基础”部分的学习,已经具备了一定的信息加工、处理与交流的基础,知道使用计算机解决问题的方式多种多样,而程序设计是其中的一种。学生在高一数学课程的学习中,也已经学习了一些算法的基础知识。因此,本节的教学应注意在学生原有知识与学习经验基础上,引导学生进一步学习算法、程序设计的相关知识,体会算法与程序设计在计算机解决问题过程中的地位与作用,比较完整地认识利用计算机解决问题的过程。在教学过程中应注意活动方式的多样性,通过比较、探究、讨论、交流等活动激发学生的学习热情,培养学生的学习兴趣,引导学生学会自主创新学习,培养良好的学习方法与学习能力。 (一)通过例举生活与学习中需要用计算机解决的问题,如有关数值、逻辑等方面的问题,让学生认识问题,形成问题意识,感受利用计算机解决问题的必要性。 案例2.1 感受计算机解决问题的必要性 教师:提出线性方程组问题,不断增加方程数量,让学生解决。 现象:当方程数量少时,学生能够通过人工方法求解,但随着方程数量的增多,人工求解显得无能为力。 教师:展示计算机高效求解方程组的过程。 教师:提出8 皇后问题,让学生找出符合条件的方案。 现象:学生能找出一些符合条件的方案,但要找出所有符合条件的方案显得无能为力。 教师:展示计算机高效地找出所有方案的过程。 教师:提出生物课中学到的遗传基因问题,为什么生物课人工只分析到第二层或第三层? 教师:展示遗传基因问题的计算机分析过程。 学生活动:尝试从生活与学习提出需要用计算机解决的问题,展开讨论。 教师:回归主题,感受利用计算机解决问题的必要性。 分析:案例中教师没有直面告知学生利用计算机解决问题的必要性,而是通过实例让学生不断地感受人工求解问题的局限性与计算机求解问题的优势,并通过学生的充分讨论,让学生潜移默化地感受到利用计算机解决问题的必要性。 (二)利用计算机解决问题过程的教学是课程入门阶段,教师需要根据学生特点把握好度,为学生后继学习打下基础。教学中要注意的问题是:人在计算机解决问题过程担任什么样的角色;如何利用计算机解决问题;利用计算机解决问题与人解决问题有何区别;利用计算机解决问题的优势是什么;算法与程序设计解决什么样的问题。因此,选择什么样的问题切入是教学成功与否的关键所在。 案例2.2 利用计算机解决问题的过程教学设计参考 教学线索:选择问题à让学生体验利用计算机解决问题的过程à展开讨论 1.选择问题:选择问题的难易程度应根据学生的整体水平,由于是开篇教学,不宜太难,应源自学生已有的知识与经验,并能与后继内容的学习形成呼应。 例1:求一元二次方程ax2+bx+c=0的根。该问题比较简单,利用计算机解决问题过程的每一阶段易于理解。 例2:“韩信点兵”问题,“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1 人、5人一列余2 人、7人一列余4 人、13人一列余6 人……刘邦听后茫然不知其数,你能说出有多少兵士?”该问题能够体现利用计算机解决问题的特点及相对人工解决问题的优势,当条件少时可以人工求出,当条件多时利用计算机解决就显示出其优势。 例3:借助高一学生正在学习函数图像知识的背景,从演示画学生熟悉的y=x2函数图像的程序入手,提出如何利用计算机画各种函数图像的问题。该问题从学生已有的知识和人工画图经验出发,引导学生理解计算机画图的过程,唤起学生的求知欲望和学习兴趣。 分析:对初学者而言,例2、例3利用计算机解决的过程有一定的复杂性,教学中需要循循善诱,把握好教与学的互动关系。 2.让学生体验利用计算机解决问题的过程 (1)引导学生探究 分析问题的已知条件、隐含条件、要解决什么、它们之间的关系,通过分析问题,写出问题的求解过程,将其步骤化,设计算法。 (2)让学生体验利用计算机求解过程 给出对应于算法的程序,引导学生打开并执行程序,体验计算机运行程序的过程。 (3)引导学生画出利用计算机解决问题的流程图。 3.展开讨论 (1)讨论人与计算机在利用计算机解决问题的各个阶段中各自扮演的角色; (2)讨论编写程序解决问题与使用现成软件解决问题的差别,针对不同问题选择不同的解决手段; (3)讨论生活中解决问题的过程步骤,让算法思想溶于日常生活中。 (三) 对初学者而言,理解算法的概念、特征、作用需要一个过程。可以通过呈现一组比较简单的现成算法,让学生逐步掌握算法的思想。通过一个问题的不同算法的比较,让学生感悟算法的特性。 案例2.3 算法的基本概念 1.算法的概念与特征 (1)提出问题:求两个正整数的最大公约数。 “更相减损之术”算法程序 Private Sub Form_Click() Dim m As Long, n As Long, r As Long m = Val(InputBox("输入整数1")) n = Val(InputBox("输入整数2")) If m < n Then r = m: m = n: n = r r = m - n Do While r <> 0 If r < n Then m = n n = r Else m = r End If r = m - n Loop Print "最大公约数为:"; n End Sub 给出两个正整数12、16,如何求它们的最大公约数?大家可以口算出最大公约数是4,如果给出的两数是2678945、465,又如何求呢? (2)通过介绍解决问题的经典算法,让学生体验算法思想 “更相减损之术”及其算法思想:我国古代数学家对公约数求解问题进行了研究并提出了算法,称之为“更相减损之术”,其方法是以两数中较大的数减去较小的数,获得的差与原先较小的数构成新的一对数,再以大的数减去小的数……如此循环,用同样的方法操作,直至产生一对相等的数,该数即为最大公约数。 以求12、16这两个数的最大公约数为例,具体操作如下: (12,16)à(12,4)à(8,4)à(4,4) 4是12和16的最大公约数。 “辗转相除法”及其算法思想:古希腊数学家对公约数求解问题研究提出的算法称为“辗转相除法”(欧几里得算法)。具体方法是用较大的数除以较小的数,余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则较小的数就是最大公约数。 “辗转相除法”算法程序 Private Sub Form_Click() Dim m As Long, n As Long, r As Long m = Val(InputBox("输入整数1")) n = Val(InputBox("输入整数2")) r = m Mod n Do While r <> 0 m = n n = r r = m Mod n Loop Print "最大公约数为:"; n End Sub 以求288和123的最大公约数为例,具体操作如下: (288,123)à(42,123)à(42,39)à(3,39) 3是288和123的最大公约数。 (3)引导学生用自然语言描述完成两种算法的思想 设给定的两个正整数为m和n,“更相减损之术”算法描述如下: ①输入两个正整数m和n; ②若m<n,则交换m和n; ③以m减去n,令所得的差为r; ④若r=0,则输出结果n,算法结束;否则继续; ⑤若r<n,则令m=n,n=r;否则令m=r,返回步骤③继续进行。 “辗转相除法”算法描述如下: ①输入两个正整数m和n; ②若m<n,则交换m和n; ③以m除以n,令所得的余数为r; ④若r=0,则输出结果n,算法结束;否则继续; ⑤令m=n,n=r;返回步骤③继续进行。 (4)让学生体验运行根据两种算法编写的程序,比较效率 让学生打开程序,输入以下3组数据比较两程序的运行效率: ①12,16 ②356727,58263 ③264062214,39 可以发现对于第3组数据,“辗转相除法”算法程序效率明显高于“更相减损之术”算法程序效率。让学生思考为什么? (5)分析算法特征 算法的特征,对初学者来说不容易理解的,通过本题的不同算法、程序实现及程序运行效率比较过程,指导学生分析出下列结论: ①算法思想是建立在对问题的数学分析基础上(分析上述两种算法的数学思想区别); ②算法的描述是将问题的解决过程用有限的步骤实现之(分析问题的描述过程); ③算法具备特征:有穷性、确定性、有输入与输出、可行性; ④程序设计的过程实质上是算法设计的过程,程序只不过是选择某个特定的计算机语言表达算法; ⑤解决同一个问题的算法不是唯一的,选择不同的算法编写的程序,计算机运行的效率会有很大的差异。 2.组织学生开展探究活动,了解算法在解决问题过程中的地位和作用,如探究分析例题中解决同一问题的两个算法程序的不同效率等。 分析:案例通过学生非常熟悉的 “求两个正整数的最大公约数” 问题,引出前人研究的两种经典算法。没有让学生自己去推导算法,一则降低了学生学习的难度,二则让学生了解了算法思想。并让学生通过比较两种算法程序的运行效率,体验算法的特征。将教学准确定位在让学生通过对算法的体验来了解算法思想与特征。 (四)课堂教学可以呈现多样化的形式,充分利用各种资源与手段展开教学,尽可能让学生主动参与,建构知识。 例:了解计算机程序设计语言的教学,教师可以直接提供或指导学生通过网络搜索相关学习资料的方式,指导学生认真阅读和讨论交流,帮助学生了解程序设计语言的产生与发展,了解机器语言、汇编语言、高级语言的特点、优势与不足,了解程序语言的计算机执行过程。 第二节 程序设计基础 课程内容标准 1.了解并掌握一种程序设计语言的基本知识,包括语句、数据类型、变量、常量、表达式、函数。学会使用程序设计语言实现顺序、选择、循环三种控制结构。 2.初步掌握调试、运行程序的方法。 3.了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。 程序开发工具 程序开发环境 编程的一般步骤 数据表示与处理 变量、常量、数据类型 运算符、函数、表达式 程序基本结构的实现 顺序结构程序设计 选择结构程序设计 循环结构程序设计 程序设计语言基础 程序的编辑和翻译 程序的编辑和翻译 一、内容结构图 图2.5 “程序设计基础”内容结构图 二、学习目标细目表 学习内容 学习结果的行为指标(当学生获得这种学习结果时,他们能够) 程序开发环境 ·在集成开发环境中,打开程序、保存程序、编辑程序、运行程序,初步掌握程序调试的基本手段 ·如果使用的是可视化程序开发工具,能够理解控件、对象、属性等基本概念 编程的一般步骤 ·说出程序编写的一般步骤与程序框架结构,能够完成给定程序的输入、调试与运行 ·如果使用的是可视化程序开发工具,则能够设计简单的程序界面 变量、常量、数据类型 ·知道数据类型、变量、常量的含义,学会定义常量,学会定义变量的数据类型 ·说出程序中的常量、变量与数学中的常量、变量的异同点,能够定义给定程序变量的数据类型,并能说出定义不同数据类型的理由 运算符、函数、表达式 ·知道程序中运算符、函数、表达式的表示方式 ·转换数学表达式为程序接受的表达式,能够借助查表或查找帮助使用函数 顺序结构程序设计 ·正确使用输入语句、输出语句、赋值语句进行顺序结构程序设计 ·对给出的顺序结构问题,写出解决问题的步骤,根据步骤用相应的语句表达,完成整个问题的程序设计 ·上机调试、运行顺序结构程序,正确进行输入,输出正确的结果 ·尝试寻找身边的顺序结构问题,分析问题顺序结构算法,编程解决之 选择结构程序设计 ·理解条件语句、多重选择语句的计算机执行方式 ·正确写出问题中的条件关系表达式与逻辑表达式 ·对给出的选择结构程序,写出程序的运行结果 ·对给出的选择结构问题,写出解决问题的步骤,正确使用条件语句实现之,如果问题可以使用多重选择语句解决,能够正确使用多重语句编程实现之 ·上机调试、运行选择结构程序,能够通过不同的输入数据,调试程序中各条件分支的正确性,输出正确的结果 ·尝试寻找身边的选择结构问题,分析问题算法,编程解决之 循环结构程序设计 ·理解FOR循环语句、DO循环语句的计算机执行方式,总结两种循环语句的不同之处与其适合使用的循环结构问题形式 ·对给出的循环结构程序,写出程序的运行结果 ·对给出的循环结构问题,能够正确分析出问题的循环特点,设计好循环变量的初值、终值与变化方式,正确选择不同的循环语句编程解决问题 ·编写程序解决循环嵌套不多于三重的多重循环问题 ·上机调试、运行循环结构程序,若遇“死”循环现象,能够正确处理 ·尝试寻找身边的循环结构问题,分析问题算法,编程解决之 程序的编辑和翻译 ·说出程序的编辑与翻译过程方法 ·比较编译型语言与解释型语言的优势与不足 三、重点难点分析 (一)重点分析 1. 常量、变量、数据类型等概念 在程序设计中正确使用常量,正确进行变量的数据类型设计,即使学生能够进行简单数据结构的设计,是程序设计教学的一个重要环节。可以让学生通过观察程序中常量、变量的运行结果,比较程序中常量、变量与数学概念中的差异,掌握常量与变量的使用。 2.顺序、选择、循环三种基本结构程序设计方法 建议采用以问题为主体带动整个教学进程的教学方式,让学生掌握程序设计中常用语句与函数的使用,如:输入、输出语句、交互函数、条件语句、多种选择语句、FOR循环语句、DO循环等语句,根据解决问题要求分析设计算法,恰当地使用三种结构程序设计相关语句编写程序,在实践过程中体验程序设计语言的逻辑特点。 (二)难点分析 1.变量的数据类型定义 学生在程序设计初期可能较难接受数据类型的概念,教学注意贯穿每个程序设计样例变量数据类型定义的分析,让学生逐步理解数据类型的含义,学会正确定义变量的数据类型。 2.选择结构程序设计 在选择结构程序设计中,如何分析与表示问题中的选择条件,如何根据选择的结果进行分支走向,如何正确使用选择语句编写程序,是教学中的一个难点,也是学生学习程序设计的一个转折点,这一部分课时可以安排多一些,通过由简到难问题的提出与解决,让学生灵活使用选择语句进行程序设计,掌握程序设计的基本方法。 四、教学活动建议 学生通过第1节的学习与体验,对利用计算机解决问题的过程有了比较完整的认识,在利用计算机解决问题各个环节中,编写程序是其中一个关键的环节.。本节核心问题是:如何设计程序实现算法以解决问题?程序设计=算法+数据结构。最简单的数据结构即为程序设计中的变量及其数据类型。学生由于受常规习惯的影响,比较难理解程序中的常量、变量、数据类型等的含义,可以通过每次的教学活动逐步让学生理解并学会设计。算法的通俗定义是解决问题的步骤,一个有效的算法应该是利用计算机编程解决问题的流程,它需要以数据结构为载体,还需要通过设计程序来实现。对初学者而言,程序设计三种基本结构中的选择结构是一个程序设计学习过程中的关键点,教学设计中应给予足够的重视。教师可以采用“问题解决教学法”展开本节的教学,在问题的选择上,注意选择学生能够通过已有的知识和经验分析出解决方法和得到算法步骤的问题;在程序设计上,注意对照算法的方法和步骤编写;在练习的选择上,注意从模仿例题开始,以降低学习难度,逐步过渡到让学生能够面对问题独立设计算法和程序,从而具备程序设计基本能力。通过本节的教学要让学生知道如何进行程序设计,初步建立起良好的程序设计基本思想与方法的认识结构。 (一)程序设计的学习,不可避免需要使用程序设计开发环境,程序设计开发环境的教学通常安排在“程序设计基础”的第一堂课,应注重让学生在实践中掌握解计算机语言的编辑环境的使用,注意承上启下激发兴趣。 案例2.4 以VB可视化程序开发环境为例 教学线索:程序设计开发环境介绍à体验程序设计开发环境中各工具的使用à可视化程序设计的一般步骤。 1.在第1节体验程序基础上,教师演示VB 开发环境各工具的使用,常用控件的使用,让学生初步了解控件、对象、属性等基本概念及其操作方法。 2.指导学生完成程序的界面制作与程序的输入、调试、运行、保存,在体验中掌握程序开发环境的使用,在体验中感受程序的计算机执行方式与作用。 例1:提供第1节学习过程中问题的程序与程序界面,让学生实践。深化学习过的内容,鼓励学生尝试改变原程序界面,培养个性化思维。 例2:实践一些趣味性程序,激发学生兴趣,鼓励学生探索程序设计语言的集成开发环境下各种工具的使用。以下是VB可视化环境下的几个趣味程序。 ①走马灯 往窗体内拖放一个标签和一个定时器,标签上任写一段话,我们的“走马灯”就是让这一段话从左到右飘移,移出窗体右界后,还能从窗体左边出现。 图4-5 走马灯 Private Sub Timer1_Timer() '让标签右移,就是让它的水平坐标增大 Label1.Left = Label1.Left + 100 '如果水平坐标过了窗体右界4800,标签就移动最左端 If Label1.Left > 4800 Then Label1.Left = -2000 End If End Sub ②调色器 图4-6 调色器 Private Sub HScroll1_Change() Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value) End Sub Private Sub HScroll2_Change() Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value) End Sub Private Sub HScroll3_Change() Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value) End Sub ③正弦曲线 Private Sub Command1_Click( ) Scale (-5,5)-(5,-5) For x= -5 to 5 step 0.01 Y=sin(x) Pset (x,y),vbBlue Next End Sub 3.通过程序的操作过程,总结出可视编程的一般步骤,为后继程序设计的学习奠定操作基础。 分析:案例采用实践教学法,让学生输入与制作曾经解决过问题的程序及其界面,熟悉程序设计开发环境的使用,了解可视编程的一般步骤。突出程序设计理论与实践相结合的特色。同时选择一些趣味性的程序,激发学生兴趣与探索的欲望。 (二) 数据的表示与处理是程序设计中的重要环节,但初学者很难比较快的理解与掌握,需要一个过程。教师可以结合计算机的工作原理,讲解数据类型的含义;比较常量、变量与数学课程中相关概念的异同,以及数学运算符和表达式与程序中的运算符和表达式的异同;常用函数的使用方式,让学生初步了解概念,并通过后续的程序设计学习过程逐步深化理解与正确使用。 教学参考线索:数据类型à常量与变量à运算符与表达式à常用函数。 (三)顺序结构、选择结构、循环结构程序设计是计算机程序设计基础,是学生程序设计学习必须通过的一道关卡,教学方式可以采用问题教学法。教学中应时时关注不同基础的学生,设计不同难度的问题,使不同基础的学生都有自己的收获,让每一个学生都能体验用程序设计方式解决问题的过程与快乐。 三种结构教学参考线索: 顺序结构:问题引领à顺序结构程序设计思想à赋值语句、输入输出语句à顺序结构程序实现à实践解决问题。 选择结构:问题引领à选择结构程序设计思想à条件语句、多重选择语句à选择结构程序实现à实践解决问题。 循环结构:问题引领à循环结构程序设计思想àFOR循环语句、DO循环语句à循环结构程序实现à实践解决问题。 案例2.5 循环结构程序设计教学 1.通过一个比较简单的又能体现循环思想问题。将教学重点放在循环结构的程序实现方式,让学生能够比较轻松地接受循环结构程序设计思想。 例:假如你从今年开始,1月份为“希望工程”存入1元钱,2月份存入2元钱,3月份存入3元钱……依次类推,问:两年时间你将为“希望工程”存入多少钱? 教师:让学生分析问题,写出问题求解的步骤; 教师:分析问题求解步骤中的循环结构,引出FOR循环语句的格式; 教师、学生:用FOR循环语句编写程序,实现问题的解。 教师:变换问题,如果要计算多少月“希望工程”储蓄才能多于500元,该怎样办?引出DO While/Loop语句的使用。 学生:用DO While/Loop语句编写实现程序。 2.通过一个有一定思维难度的问题,让学生进一步体会循环结构的算法与程序设计思想。 例:菲波拉契数列表示的是这样一列数:0,1,1,2,3,5,……,后一项等于前两项的和,输出这个数列的前30项。 教师:引导学生分析问题 设置30个变量:A1,A2,A3,……,A30,表示菲波拉契数列的前30项,设Ai-2,Ai-1,Ai分别表示数列中连续的三项,则 Ai=Ai-1+ Ai-2 由这个递推关系式可知,只要已知这个数列的前两项,就能输出后面的所有项。 教师:引导学生进行算法设计,变量类型的定义,逐渐让学生理解程序设计中变量类型的概念。 解法1:思考使用3个简单变量求得数列各项的值,分析变量初值设置,哪些操作需要反复执行。 解法2:思考使用数组变量存放数列各项,引入数组的使用,分析算法步骤。 学生:画出算法流程图 教师、学生:进行两种算法的程序设计,比较简单变量与数组变量的使用区别,比较两程序实现上的差异及各自程序的优缺点,同一算法思想可以有不同方式的程序实现,每人可以有自己的程序设计风格,激发学生的创新意识。 解法一程序: Private Sub Command1_Click() Dim a1 As Long, a2 As Long, a3 As Long, i As Integer a1 = 0 a2 = 1 List1.AddItem a1 List1.AddItem a2 For i = 3 To 30 a3 = a1 + a2 List1.AddItem a3 a1 = a2 a2 = a3 Next i End Sub 解法二程序: Private Sub Command1_Click() Dim a(50) As Long, i As Integer a(1) = 0 a(2) = 1 List1.AddItem a(1) List1.AddItem a(2) For i = 3 To 30 a(i) = a(i - 1) + a(i - 2) List1.AddItem a(i) Next i End Sub 教师:引导学生进行简单界面设计如图,为了能利用滚动条拉动查看结果,引入listbox控件的使用。 3.学生上机实践程序,解决问题。 分析:案例通过难易不同的两道例题展开循环结构程序设计的教学,既让学生掌握了循环语句的使用,又让学生掌握循环结构程序设计思想。顺序结构与选择结构的教学也可以借鉴这种教学方式。 (四) 设计多种形式的课内外活动,帮助学生理解程序,学习程序设计。教学中可以适当分层,使每一个学生都树立学习的信心。 例1:通过阅读程序,写出程序运行结果,说明程序的功能,上机实践,理解程序。 例2:通过给出问题的算法分析与部分流程图,补充完善流程图与程序,熟悉程序设计过程。 例3:设计与课堂类似问题,模仿分析,设计程序。 例4:对学生的要求,允许有不同层面的掌握:(1)理解三种基本结构程序设计思想与方法;(2)设计程序解决简单的问题;(3)能够透过已有的经验,分析解决较复杂的问题。 课程内容标准 1.解析法与问题解决 (1)了解解析法的基本概念及用解析法设计算法的基本过程。 (2)能够用解析法分析简单问题,设计算法,编写程序求解问题。 2.穷举法与问题解决 (1)了解穷举法的基本概念及用穷举法设计算法的基本过程。 (2)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。 3.查找、排序与问题解决 (1)了解数组的概念,掌握使用数组存储批量数据的基本方法。 (2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。 (3)通过实例,掌握使用排序算法设计程序解决问题的方法。 4.递归法与问题解决 (1)了解使用递归法设计算法的基本过程。 (2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。 第三节 算法与程序实现 一、内容结构图 解析法 穷举法 查找与排序 递归法 解析法基本概念 解析法与问题解决 穷举法基本概念 穷举法与问题解决 排序算法 查找算法 递归概念 递归法与问题解决 算法及程序实现 图2.6 “算法与程序实现”内容结构图 二、学习目标细目表 学习内容 学习结果的形为指标(当学生获得这种学习结果时,他们能够) 解析法基本概念 ·理解解析法基本思想,结合实例说明用解析法设计算法的基本过程 解析法与问题解决 ·运用解析法分析问题,寻找问题中各要素之间的关系,用数学表达式表示它们的关系 ·写出解决问题的解析步骤,编写程序实现,并能通过运行程序求得问题的正确解 穷举法基本概念 ·列举出能够用穷举法解决的问题的特点 穷举法与问题解决 ·分析穷举问题的枚举主线,设计恰当的变量与循环结构进行枚举,正确写出符合问题解的条件判断语句 ·分析不同穷举方案的效率,选择效率高的方案,设计算法、编写程序,求得问题的全部解 查找算法 ·掌握使用数组存储批量数据的基本方法 ·理解顺序查找思想,写出顺序查找算法步骤,使用顺序查找算法编写程序解决查找问题 ·理解二分查找算法思想,写出二分查找算法步骤,例举出能够用二分查找法解决的问题并编写程序解决之,如:猜数、求一定范围内方程解等问题 ·比较顺序查找算法与二分查找算法所解决问题的特点 排序算法 ·描述了解一到两种经典排序算法及其排序步骤,如:冒泡排序、插入排序、选择排序 ·至少使用一种经典排序算法,设计程序解决排序问题 递归概念 ·理解递归思想与递归的数学意义,说明递归程序的执行方式 递归法与问题解决 ·使用自定义函数与子过程编写程序 ·掌握递归程序的实现方法,能够使用递归法设计、解决简单递归问题,并能编程实现之 三、重点难点分析 (一)重点分析 1.解析、穷举、排序、查找、递归算法思想 用数学公式描述客观事物间的数量关系,是人们解决问题时最常用的方法之一。解析算法通过分析问题中各要素间的关系,用数学表达式表示它们的关系,找到了这些表达式,问题也就得以解决。解析法是程序设计中最常用的算法之一。 穷举法按问题本身的性质,将求解对象一一列
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服