文档库 最新最全的文档下载
当前位置:文档库 › 第二章 算法与程序设计

第二章 算法与程序设计

第二章 算法与程序设计
第二章 算法与程序设计

第二章 算法与程序设计
“算法与程序设计”是高中信息技术课程的选修模块,以问题解决与程序设计为主线, 揭示利用计算机解决问题的过程。学生通过本模块的学习“体验算法思想,了解算法和程序 设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步 ① 使用一种程序设计语言编制程序实现算法、解决问题。 ” “本模块的教学,应注意与数学课程中有关内容的衔接,要强调理论与实践的结合,引 导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决这些问题。教 师要注意发现对程序设计有特殊才能的学生, 根据具体情况为他们提供充分的发展空间。 本 模块强调的是通过算法与程序设计解决实际问题的方法, 对程序设计语言的选择不作具体规 ② 定。 ” 课程标准中,本模块主题组成结构如下: 算法与程序设计
计算机解决问题的基本过程
程序设计语言初步
算法与问题解决例举
图 2.1 “算法与程序设计”主题结构图 本教学指导在沿用课程标准中主题内容的前提下,为进一步增强对实际教学的指导作 用,对主题结构作了些调整,两者的关系如图 2.2 所示。 计算机解决问题的基本过程 程序设计语言初步 算法与问题解决例举
利用计算机解决问题的基本过程
程序设计基础
算法与程序实现
程序设计思想和方法
图 2.2 调整前后主题间的关系图 调整后的模块由四个主题组成,四个主题在知识结构上以螺旋上升方式展开。 “利用计算机解决问题的基本过程”主题旨在呈现人是如何利用计算机解决问题,解 决问题需要经历哪些基本过程。 教学中应注意让学生结合生活与学习提出问题, 从身边简单 问题入手亲历分析问题、设计算法、编写程序、解决问题的过程。应注意结合数学课程中算 法这一部分知识,让学生进一步了解算法,学会用不同的方法描述算法,了解算法、程序、 程序设计语言之间的关系, 认识算法和程序设计的地位和作用。 本主题是整个模块学习的引 入,为过渡到其它主题的学习打下基础。 “程序设计基础”主题旨在呈现如何用计算机语言进行程序设计。教师可以根据学生 需要选择一种语言,并以该语言为载体,让学生理解数据在计算机中是如何表示与处理的, 了解程序设计基本方法,初步掌握顺序、选择、循环三种基本结构,体验程序设计的实践过 程,同时了解程序设计语言的编译程序、连接程序等基本知识。
① 中华人民共和国教育部. 普通高中技术课标准(实验). 人民教育出版社,2003,19 页 ② 同上,1 页

“算法与程序实现”主题旨在通过解析法、穷举法、排序和查找、递归等常用算法的程 序实现,让学生进一步理解算法,进一步掌握程序设计基础知识,在体验算法思想与程序设 计过程中,培养逻辑思维能力,塑造良好的认知结构。可以组织学生探讨需解决的问题与其 相应算法之间的关系, 尝试归纳算法与程序设计应用的一般规律, 讨论使用计算机程序设计 解决问题的优势和局限性等。 “程序设计思想和方法” 主题是对前三个主题内容的提升, 旨在引导学生理解结构化程 序设计思想,探究如何用结构化程序设计方法解决问题。了解面向对象程序设计的思想、方 法和关键技术。 通过引导学生亲历软件的开发过程, 对算法与程序设计的思想与方法形成一 个相对完整且比较准确的认识,为将来的学业发展奠定基础。 在教学过程中,应注意“知识与技能”“过程与方法”“情感态度与价值观”三维课程 、 、 目标的相互联系与相互渗透, 进而提升学生的信息素养, 促进学生信息技术能力的立体发展。
第一节
利用计算机解决问题的基本过程
“课标”中相关内容: :
1. 结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程, 认识算法和程序设计在其中的地位和作用。 2. 经历用自然语言、流程图或伪代码等方法描述算法的过程。 3. 在使用计算机解决实际问题的过程中,通过观看演示、模仿、探究、实践等环节, 了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计 算机程序执行的基本过程。
一、 内容结构图
问题和算法
问题的认识和形成 问题的分析与算法设计
算法的概念、 特征与作用 利用计算机解决 问题的基本过程 算法和程序 算法的描述 算法与程序设计关系
程序和程序设计语言
程序和程序设计
程序设计语言产生与发展 图 2.3 “利用计算机解决问题的基本过程”主题内容结构图

二、学习目标细目表
学习内容 问题的认识和形 成 问题的分析与算 法设计 学习结果的行为指标(当学生获得这种学习结果时,他们能够) ·结合生活与学习的实例说明利用计算机解决问题的必要性 ·从已有的知识与经验中例举出人工解决困难而利用计算机能够快 捷解决的问题 ·了解利用计算机解决问题的基本过程 ·了解问题分析与算法设计间的关系 ·模仿分析简单问题的已知条件、要解决的问题以及问题与条件之 间的关系,写出输入、求解、输出过程的步骤 ·结合数学课程中学习的算法知识,说出自己对算法的理解 ·说出算法的五种特征,举例说明算法特征的含义 ·了解算法特征在解决问题过程中算法选择的作用 ·结合数学课程中学习的算法知识,用自然语言、流程图、伪代码 描述算法 ·用自己的语言描述算法与程序设计间的关系 ·描述程序概念和解释程序的作用 ·结合实例描述顺序、选择、循环三种基本结构的单步程序执行方 式 ·画出三种程序基本结构的流程图 ·说出程序设计语言产生与发展过程 ·了解程序设计语言的功能,针对简单问题设计一套可以解决该问 题的人工语言(不超过 5 条指令) ·例举出三种以上高级语言的名称
算法的概念、特 征与作用 算法的描述 算法与程序设计 关系 程序和程序设计
程序设计语言产 生与发展
三、重点难点分析
(一)重点分析 一 重点分析
1. 利用计算机程序设计解决问题的必要性,建立问题意识。 程序设计是运用计算机解决问题的一种方式,有些问题,如:数值、逻辑等问题适合于 通过程序的方式解决。 教学中应注意引导学生从生活与学习实例出发, 认识与举证可以通过 运用计算机程序设计得到高效解决的问题, 让学生深切地感受利用计算机程序设计解决问题 的必要性,引发学习本模块的兴趣和动机。 2. 利用计算机解决问题的过程。
提 出 问 题
分 析 问 题
设 计 算 法
编 写 程 序
调 试 程 序
得 到 结 果
图 2.4 利用计算机解决问题流程 利用计算机解决问题流程如图 2.4 所示,教学中选择一个学生运用已有知识能够解决的 实例,教师通过演示等手段协助学生亲历实例问题的分析、设计算法、把所要解决的问题转

化成的程序输入到计算机、 经调试后让计算机执行这个程序, 最终达到利用计算机解决问题 的过程。让学生了解和体会流程中每一步骤的含义,为展开整个课程学习打下基础。 3. 算法的基本概念,使用自然语言、流程图、伪代码描述算法。 学生通过高一数学知识的学习,已有算法知识的储备,结合计算机工作方式,让学生 进一步了解算法,进一步学会使用自然语言、流程图、伪代码描述算法。 4. 程序的基本结构 学生通过高一数学知识的学习,已经了解了算法的三种逻辑结构和流程图,程序的基 本结构与之相对应,是程序设计的基础。让学生尝试体验程序三种结构的计算机执行方式, 加深对三种基础结构的了解。 5. 程序设计语言 程序设计语言是人利用计算机解决问题的载体,让学生充分认识程序设计语言,通过 计算机语言的发展历程,感受计算机技术的发展。
(二)难点分析 二 难点分析
1. 算法的特征 算法的特征对初学者而言较难理解,教学中尽可能通过具体问题的算法分析、程序分 析,让学生感悟出算法的特征,为进一步学习分析问题、选择算法打下基础。 2. “好”算法的标准 算法设计除正确性外,还应考虑其高效性、可读性、健壮性,学生在开始时是做不到 的,但可以让学生知道需要从不同角度分析问题,才能不断改进算法,并通过实践形成这种 良好习惯。
四、教学活动建议
本节是算法与程序设计课程的入门。学生通过对“信息技术基础”部分的学习,已经 具备了一定的信息加工、处理与交流的基础,知道使用计算机解决问题的方式多种多样,而 程序设计是其中的一种。 学生在高一数学课程的学习中, 也已经学习了一些算法的基础知识。 因此,本节的教学应注意在学生原有知识与学习经验基础上,引导学生进一步学习算法、程 序设计的相关知识, 体会算法与程序设计在计算机解决问题过程中的地位与作用, 比较完整 地认识利用计算机解决问题的过程。在教学过程中应注意活动方式的多样性,通过比较、探 究、讨论、交流等活动激发学生的学习热情,培养学生的学习兴趣,引导学生学会自主创新 学习,培养良好的学习方法与学习能力。
(一)通过例举生活与学习中需要用计算机解决的问题,如有关数值、逻辑等 通过例举生活与学习中需要用计算机解决的问题, 一 通过例举生活与学习中需要用计算机解决的问题 如有关数值、 方面的问题,让学生认识问题,形成问题意识, 方面的问题,让学生认识问题,形成问题意识,感受利用计算机解决问题的必 要性。 要性。
案例 2.1 感受计算机解决问题的必要性 教师:提出线性方程组问题,不断增加方程数量,让学生解决。 现象:当方程数量少时,学生能够通过人工方法求解,但随着方程数量的增多,人工 求解显得无能为力。 教师:展示计算机高效求解方程组的过程。 教师:提出 8 皇后问题,让学生找出符合条件的方案。 现象:学生能找出一些符合条件的方案,但要找出所有符合条件的方案显得无能为力。 教师:展示计算机高效地找出所有方案的过程。 教师:提出生物课中学到的遗传基因问题,为什么生物课人工只分析到第二层或第三 层? 教师:展示遗传基因问题的计算机分析过程。 学生活动:尝试从生活与学习提出需要用计算机解决的问题,展开讨论。

教师:回归主题,感受利用计算机解决问题的必要性。 分析:案例中教师没有直面告知学生利用计算机解决问题的必要性, 分析:案例中教师没有直面告知学生利用计算机解决问题的必要性,而是通过实例让 学生不断地感受人工求解问题的局限性与计算机求解问题的优势,并通过学生的充分讨论 学生的充分讨论, 学生不断地感受人工求解问题的局限性与计算机求解问题的优势,并通过学生的充分讨论, 让学生潜移默化地感受到利用计算机解决问题的必要性。 让学生潜移默化地感受到利用计算机解决问题的必要性。
(二)利用计算机解决问题过程的教学是课程入门阶段, 利用计算机解决问题过程的教学是课程入门阶段, 二 利用计算机解决问题过程的教学是课程入门阶段 教师需要根据学生特 点把握好度,为学生后继学习打下基础。教学中要注意的问题是: 点把握好度,为学生后继学习打下基础。教学中要注意的问题是:人在计算机 解决问题过程担任什么样的角色;如何利用计算机解决问题 计算机解决问题; 解决问题过程担任什么样的角色;如何利用计算机解决问题;利用计算机解决 问题与人解决问题有何区别;利用计算机解决问题的优势是什么; 问题与人解决问题有何区别;利用计算机解决问题的优势是什么;算法与程序 设计解决什么样的问题。因此, 设计解决什么样的问题。因此,选择什么样的问题切入是教学成功与否的关键 所在。 所在。
案例 2.2 利用计算机解决问题的过程教学设计参考 教学线索:选择问题 让学生体验利用计算机解决问题的过程 展开讨论 1.选择问题:选择问题的难易程度应根据学生的整体水平,由于是开篇教学,不宜太 难,应源自学生已有的知识与经验,并能与后继内容的学习形成呼应。 2 例 1:求一元二次方程 ax +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)提出问题:求两个正整数的最大公约数。

给出两个正整数 12、16,如何求它们的最 大公约数?大家可以口算出最大公约数是 4, 如 “更相减损之术”算法程序 果给出的两数是 2678945、465,又如何求呢? Private Sub Form_Click() (2)通过介绍解决问题的经典算法,让学 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 以求 12、16 这两个数的最大公约数为例, Else 具体操作如下: m=r (12,16) (12,4) (8,4) (4,4) End If 4 是 12 和 16 的最大公约数。 r=m-n “辗转相除法”及其算法思想:古希腊数 Loop 学家对公约数求解问题研究提出的算法称为 “辗 Print "最大公约数为:"; n 转相除法” (欧几里得算法) 具体方法是用较大 。 End Sub 的数除以较小的数, 余数和较小的数构成新的一 对数,继续上面的除法,直到大数被小数除尽, 则较小的数就是最大公约数。 以求 288 和 123 的最大公约数为例,具体操作 “辗转相除法”算法程序 如下: (288,123) (42,123) (42,39) (3,39) Private Sub Form_Click() 3 是 288 和 123 的最大公约数。 Dim m As Long, n As Long, r As (3) 引导学生用自然语言描述完成两种算法的 Long 思想 m = Val(InputBox("输入整数 1")) 设给定的两个正整数为 m 和 n,更相减损之术” “ n = Val(InputBox("输入整数 2")) 算法描述如下: r = m Mod n ①输入两个正整数 m 和 n; Do While r <> 0 ②若 m

①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.Valu e) End Sub Private Sub HScroll2_Change() Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Valu e) End Sub

Private Sub HScroll3_Change() Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Valu e) 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 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
解法一程序: 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
教师: 引导学生进行简单界面设计如图, 为了能利用滚动条拉动查看结果, 引入 listbox 控件的使用。

3.学生上机实践程序,解决问题。 分析:案例通过难易不同的两道例题展开循环结构程序设计的教学, 分析:案例通过难易不同的两道例题展开循环结构程序设计的教学,既让学生掌握了 循环语句的使用,又让学生掌握循环结构程序设计思想。顺序结构与选择结构的教学也可 循环语句的使用, 又让学生掌握循环结构程序设计思想。 以借鉴这种教学方式。 以借鉴这种教学方式。
设计多种形式的课内外活动,帮助学生理解程序,学习程序设计。 (四) 设计多种形式的课内外活动,帮助学生理解程序,学习程序设计。教 学中可以适当分层,使每一个学生都树立学习的信心。 学中可以适当分层,使每一个学生都树立学习的信心。
例 1:通过阅读程序,写出程序运行结果,说明程序的功能,上机实践,理解程序。 例 2:通过给出问题的算法分析与部分流程图,补充完善流程图与程序,熟悉程序设计 过程。 例 3:设计与课堂类似问题,模仿分析,设计程序。 例 4:对学生的要求,允许有不同层面的掌握: (1)理解三种基本结构程序设计思想与 方法; (2)设计程序解决简单的问题; (3)能够透过已有的经验,分析解决较复杂的问题。
第三节
“课标”中相关内容: :
1.解析法与问题解决 1.解析法与问题解决
算法与程序实现
(1)了解解析法的基本概念及用解析法设计算法的基本过程。 (2)能够用解析法分析简单问题,设计算法,编写程序求解问题。
2.穷举法与问题解决 2.穷举法与问题解决
(1)了解穷举法的基本概念及用穷举法设计算法的基本过程。 (2)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。
3.查找、 3.查找、排序与问题解决 查找
(1)了解数组的概念,掌握使用数组存储批量数据的基本方法。 (2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。 (3)通过实例,掌握使用排序算法设计程序解决问题的方法。
4.递归法与问题解决 4.递归法与问题解决
(1)了解使用递归法设计算法的基本过程。 (2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求 解问题。

一、内容结构图
解析法基本概念 解析法 解析法与问题解决
穷举法基本概念 穷举法 算 法及程序 实现 穷举法与问题解决
查找算法 查找与排序 排序算法
递归概念 递归法 递归法与问题解决 图 2.6 “算法与程序实现”内容结构图
二、学习目标细目表
学习内容 解析法基本概念 解析法与问题解决 学习结果的形为指标(当学生获得这种学习结果时,他们能够) ·理解解析法基本思想,结合实例说明用解析法设计算法的基本过程 ·运用解析法分析问题,寻找问题中各要素之间的关系,用数学表达 式表示它们的关系 ·写出解决问题的解析步骤,编写程序实现,并能通过运行程序求得 问题的正确解 ·列举出能够用穷举法解决的问题的特点 ·分析穷举问题的枚举主线,设计恰当的变量与循环结构进行枚举, 正确写出符合问题解的条件判断语句 ·分析不同穷举方案的效率,选择效率高的方案,设计算法、编写程 序,求得问题的全部解
穷举法基本概念 穷举法与问题解决

查找算法
·掌握使用数组存储批量数据的基本方法 ·理解顺序查找思想,写出顺序查找算法步骤,使用顺序查找算法编 写程序解决查找问题 ·理解二分查找算法思想,写出二分查找算法步骤,例举出能够用二 分查找法解决的问题并编写程序解决之,如:猜数、求一定范围内方 程解等问题 ·比较顺序查找算法与二分查找算法所解决问题的特点 ·描述了解一到两种经典排序算法及其排序步骤,如:冒泡排序、插 入排序、选择排序 ·至少使用一种经典排序算法,设计程序解决排序问题 ·理解递归思想与递归的数学意义,说明递归程序的执行方式 ·使用自定义函数与子过程编写程序 ·掌握递归程序的实现方法,能够使用递归法设计、解决简单递归问 题,并能编程实现之
排序算法
递归概念 递归法与问题解决
三、重点难点分析
(一)重点分析 一 重点分析
1.解析、穷举、排序、查找、递归算法思想 用数学公式描述客观事物间的数量关系,是人们解决问题时最常用的方法之一。解析 算法通过分析问题中各要素间的关系,用数学表达式表示它们的关系,找到了这些表达式, 问题也就得以解决。解析法是程序设计中最常用的算法之一。 穷举法按问题本身的性质,将求解对象一一列举出来,然后逐一加以分析、处理,并 验证结果是否满足给定的条件,穷举完所有对象后才能得出问题的所有解。 排序是计算机程序经常要用到的基本算法,也是日常应用问题中经常用到的数据处理 方法。排序方法有许多种,如:冒泡排序、选择排序、插入排序。教学中可以选择其中的一 种或两种让学生体验其运用过程。 查找是一种查询技术,查找的方法有许多,顺序查找与二分查找是比较简单的查找算 法,教学中可以通过日常经验,如:快速猜某一商品价格,理解二分查找思想,推出其算法 步骤。 递归算法是一种直接或间接调用自身的算法。在计算机编写程序中,递归算法可以解 决一大类问题。 通过这些算法的学习,进一步理解算法与问题之间的关系。 2.解析、穷举、排序、查找、递归算法的程序实现 通过解析、穷举、排序、查找、递归算法的程序实现,使学生进一步掌握程序设计方 法,进一步体验算法思想并扩展算法思维,进一步理解问题、算法、程序设计间的关系。
(二)难点分析 二 难点分析
1.递归算法的理解与程序实现 通过经典递归问题分析,如:汉诺塔问题,了解递归问题的特点;通过分析递归程序, 了解程序应该如何编写;通过递归程序的执行,了解递归程序计算机执行效率。帮助学生体 验递归算法程序。 2.算法的延伸 引导学生了解更多的算法,尝试归纳算法与程序设计应用的一般规律。
四、教学活动建议

本节是信息技术新课标“算法与程序设计”模块中的亮点,以往程序设计课程过多重视 程序设计能力和编程技巧,新课标则重视程序设计的整体结构及思想方法。学生通过第 2 节的学习和实践,初步掌握了编程方法,但更多的是处于模仿编程阶段。算法是程序设计的 灵魂,通过本节解析、穷举、排序、查找、递归算法的程序实现,使学生的程序设计能力从 模仿为主过渡到创造为主,创造性地运用已有的知识,构造算法解决实际问题。在进一步理 解程序设计基本知识基础上,帮助学生“建立尽可能合理的算法与程序设计的认知结构,学 会用程序设计的思想方法解决问题, 培养学习程序设计的兴趣爱好, 为学生将来的发展提供 ③ 该领域的知识与能力准备。 由于个体经验、悟性、能力等原因,学生在这一部分的学习中 ” 会出现差异,教学中应关注学生的个性差异,在达到基本要求的前提下允许差异的存在。同 时,一个问题的解决有许多种算法,中学生处于思维最活跃的阶段,教学中应多关注学生的 想法, 鼓励创造性的分析, 创造性地构造算法。 教学中多采用多样性的教学方式与手法, 如: 创设情境、程序演示等,把自主学习、合作探究、研究性学习等方式引入课堂教学,激发学 生的学习热情,以兴趣带动学习。
(一)解析法是一种学生熟悉的分析方法,教学应注意从学生已知的问题切 一 解析法是一种学生熟悉的分析方法 解析法是一种学生熟悉的分析方法, 寻求数学解决方法, 入,寻求数学解决方法,从数学的解决方法变换到程序解决是一个需求创造的 思维过程。如何使学生在分析中迁移知识,在分析中创新, 思维过程。如何使学生在分析中迁移知识,在分析中创新,是教学的一个很有 意义的难点 难点。 意义的难点。
案例 2.6 用解析法解决问题教学设计 教学线索:解析法思想 问题引领 问题讨论、设计算法 编写程序 实践程序、解 决问题 灵活应用 1.从学生熟悉的例子引入解析法概念。如:数学、物理学习中的问题,日常生活中的 实例。在教师引导下,让学生举例,体会解析法的核心思想。 2.通过实例完整地体验解析法解决问题、编写程序的过程。 例 1:画出如图 2.7 所示的钻石图案。 学生:分组讨论,探究找出求解问题的解析 表达式,给出算法方案,尝试编写程序,提出解 决不了的问题或疑问。 教师:让各组同学交流起来,分析各组学生 在分析过程中的创新点,解决学生讨论中的问题, 指导学生完成算法的设计,编写程序。 分析:该例建立在学生的数学知识基础上, 分析:该例建立在学生的数学知识基础上, 又有一定的趣味性, 又有一定的趣味性, 学生通过原有的知识能够找 出描述求解问题的解析表达式, 出描述求解问题的解析表达式,从而达到知识的 迁移。 迁移。 3. 让学生实践程序, 解决问题。 这一过程中, 学生可能会遇到各种编程问题、程序错误等,教 师应当帮助学生学会纠错,或通过典型的错误的 2.7 钻石图案 讲评,提高学生程序调试能力。
(二)穷举法也是处理问题的常用方法之一。用人工的方式解决穷举的问题, 穷举法也是处理问题的常用方法之一。 举的问题, 二 穷举法也是处理问题的常用方法之一 用人工的方式解决穷举的问题 当需要穷举的次数增多时将无法完成。教学中注意选择能够体现计算机优势的 当需要穷举的次数增多时将无法完成。 穷举问题,让学生强烈地感到该问题只有用计算机才能很好地解决。 穷举问题,让学生强烈地感到该问题只有用计算机才能很好地解决。穷举问题 的穷举策略很重要,如何设计恰当的穷举变量,如何设定恰当的变量穷举范围, 的穷举策略很重要,如何设计恰当的穷举变量,如何设定恰当的变量穷举范围, 如何进行判断减少穷举的次数、提高穷举效率, 如何进行判断减少穷举的次数、提高穷举效率,这需要一个循序渐进的学习过

田俊华、李艺. “程序设计”课程目标的认知结构解析. 《课程教材教法》2005 年 12 期

其间也将迸发出学生的各种创新思维。教师可以多组织小组讨论活动, 程,其间也将迸发出学生的各种创新思维。教师可以多组织小组讨论活动,注 意抓住学生思维中的闪光点展开教学。 意抓住学生思维中的闪光点展开教学。
教学参考线索:穷举法思想 问题引领 问题讨论、设计算法 编写程序 实践程序、 解决问题 灵活应用。
(三)查找问题在生活中很常见,教学应注意从学生的生活经验切入算法的教 三 查找问题在生活中很常 查找问题在生活中很常见 查找算法有许多,顺序查找与二分查找可以作为教学的重点, 学。查找算法有许多,顺序查找与二分查找可以作为教学的重点,也可以让学 生了解其它查找思想和方法,扩展学生思维。 生了解其它查找思想和方法,扩展学生思维。
教学参考线索:数组的定义与使用 顺序查找的思想和解决方法 二分查找算法 查 找算法应用探究活动。
(四)排序是司空见惯的问题,如何通过计算机实现呢?学生可能会觉得问题 排序是司空见惯的问题, 四 排序是司空见惯的问题 如何通过计算机实现呢? 很简单,但却不知如何下手解决。先让学生展开讨论, 很简单,但却不知如何下手解决。先让学生展开讨论,可以发现现实生活中的 排序方法有多种,总结出排序步骤,并迁移到排序程序的设计中。 排序方法有多种,总结出排序步骤,并迁移到排序程序的设计中。
案例 2.7 排序算法 教学线索:分组讨论如何进行排序 选择一种排序方法进行详细教学 实践排序程序 举例多种排序算法思想。 1.让学生讨论如何进行排序,总结学生提出的排序方法。 2.选择一种排序方法进行详细教学。 例:选择排序算法与程序实现 问题:有 n 个数,将他们按其值从小到大的顺序输出。 教师:从学生已有的经验入手,引导学生分析问题,推出算法,获取算法设计的经验。 第一步:从小规模数据入手 如有 10 个数: 5 2 8 12 3 45 1 9 24 10 设 10 个数存放在:a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10) 第二步:设 a(1)单元存放 10 个数中最小数,如何完成呢? 学生:一种朴素的想法将 a(1)与其后面的 a(2)到 a(10)数进行比较,记下最小数所在 的位置 k,交换 a(1)与 a(k); 第三步:接下来,设 a(2)单元存放剩下 9 个数的最小值,如何完成? 第四步:如此类推……,即可实现排序,此算法思想称为选择排序。 教师:引导学生结合程序设计思维设计能够编程实现的算法步骤。 (1)数据存储设计:设数组 a(n)存放 n 个数,类型为实型;变量 t 用于数据交换时的 过渡变量,类型为实型;变量 k 用于记录最小数所在的位置,类型为整型;变量 i 、j 用于 循环变量,类型为整型; (2)设计循环 i 从 1 到 n-1; (3)最小值初始位置 k=i; (4)设计循环 j 从 i+1 到 n; (5)若 a(j)

Private Sub Command1_Click() Const n = 100 Dim a(n) As Single, t As Single, i As Integer, j As Integer List1.Clear Randomize For i = 1 To n a(i) = Round(Rnd() * 1000, 2) List1.AddItem a(i) Next i For i = 1 To n - 1 k=i For j = i + 1 To n If a(j) < a(k) Then k = j Next j t = a(i): a(i) = a(k): a(k) = t List2.AddItem a(i) Next i List2.AddItem a(100) End Sub 教师:引导学生设计程序界面。
教师:扩展算法 ①介绍冒泡排序、插入排序分析问题的角度,还可以让学生认识许多优秀的排序算法, 如快速排序、堆排序等,引导有兴趣、有能力的学生继续探索; ②演示用不同排序算法对不同数据实现的程序效率,可以让学生讨论。 2. 实践排序程序。 分析:该案例主要通过三层次教学,第一引导学生分析排序经验; 分析:该案例主要通过三层次教学,第一引导学生分析排序经验;第二引导学生从经 验中总结出步骤;第三结合程序设计思想,引导学生依据排序步骤得出具体的算法, 验中总结出步骤;第三结合程序设计思想,引导学生依据排序步骤得出具体的算法,使得

程序设计轻松自然,突出了算法的分析与程序设计间的关系,让学生通过排序程序的实现, 程序设计轻松自然,突出了算法的分析与程序设计间的关系,让学生通过排序程序的实现, 进一步学习了问题细化与表达的方法,积累了程序设计经验。 进一步学习了问题细化与表达的方法,积累了程序设计经验。
(五)递归法对于初学者是一个比较抽象的算法,教学方式宜采用以教师讲授 递归法对于初学者是一个比较抽象的算法 五 递归法对于初学者是一个比较抽象的算法, 为主的教学方式。 为主的教学方式。
教学参考线索:递归概念 自定义函数、子过程 递归程序计算机执行方式、程序编写 方式 递归问题的算法分析、程序实现。 教学参考步骤: 1.从镜子互相映像的递归现象导出递归算法的概念。在教师引导下,让学生也能举出 生活中的递归例子。理解递归的思想。 2.自定义函数、子过程的教学:由于递归程序的核心思想是通过传递参数,调用自身 程序,所以自定义函数与子过程的是递归程序设计基础。 3.通过实例,如: “斐波那契数列” ,分析问题的递归性质、递归的数学表达式,指导 学生完成简单递归程序的实现。 4.通过递归程序运行示意图,让学生理解递归程序的计算机执行过程。
(六)程序设计在计算机应用中具有专业性色彩,算法与程序设计的掌握、应 程序设计在计算机应用中具有专业性色彩, 六 程序设计在计算机应用中具有专业性色彩 算法与程序设计的掌握、 用需要一个过程,学生在学习过程中出现差异属于正常现象, 用需要一个过程,学生在学习过程中出现差异属于正常现象,建议针对不同的 学生提出不同的要求,注意发现对程序设计有特殊才能的学生, 学生提出不同的要求,注意发现对程序设计有特殊才能的学生,根据具体情况 为他们提供充分的发展空间。 为他们提供充分的发展空间。
第一层次要求:理解问题的算法分析过程,读懂程序。 第二层次要求:运用学到的算法知识,分析相关的问题,并能编写程序设计解决问题。 第三层次要求:对算法产生兴趣,灵活、综合应用算法知识,解决较复杂问题,并能编 程实现。
第四节
“课标”中相关内容: :
程序设计思想和方法
1.理解模块化程序设计的基本思想,初步掌握其基本方法。 2.在使用某种面向对象程序设计语言解决问题的过程中,掌握面向对象程序设计语言 的基本思想与方法,熟悉对象、属性、事件、事件驱动等概念并学会运用。
一、内容结构图
结构化程序设计历史背景 结构化程序设计 结构化程序设计的思想方法
面向对象程序设计思想 程 序设计思 想与方法
面向对象程序设计
面向对象程序设计的基本概念
面向对象程序设计的基本特征
项目策划 尝试软件开发 项目实现

高中信息技术《算法与程序设计》试题

高中信息技术《算法与程序设计》试题 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句 For x=1 to 100 step 2 …… Next x 中,x能达到的最大值是() A、100 B、99 C、98 D、97 11、在下列选项中,不属于VB的对象的是() A、窗体的背景颜色 B、命令按钮 C、文本框 D、标签 12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()

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

第一课初识算法与程序设计 一、教学目标 1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力; (2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。 2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评 价信息、、表达呈现信息的能力,进一步提高其信息素养。 二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。 三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过Flash演示材 料,比较直观地把抽象的问题简单化,使学生的思考逐步深入,从而总结出

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

《算法与程序设计》考前模拟题1

《算法与程序设计》考前模拟题 1、下列选项中不是字符串常量的是 ( D ) A、”ab” B、”你好” C、”2006” D、1235 2、以下不属于算法基本特征的是( D)。 A、可执行性 B、确定性 C、有穷性 D、无限性 3、流程图是描述(B)的常用方式。 A、程序 B、算法 C、数据结构 D、计算规则 4、以下运算符中运算优先级最高的是( D ) A、+ B、- C、>= D、* 5、结构化程序设计由顺序结构,选择结构和循环结构三种基本结构组成,其中某程序中 三个连续语句如下: a=1 b=2 c=b+a 它属于(A) A、顺序结构 B、选择结构 C、循环结构 D、其他三种都不是 6、在现实生活中,人工解题的过程一般分为:( A ) A、理解分析问题->寻找解题方法->用工具计算->验证结果 B、寻找解题方法->理解分析问题->用工具计算->验证结果 C、用工具计算->验证结果->寻找解题方法->理解分析问题 D、用工具计算->验证结果->理解分析问题->寻找解题方法 7、一位同学想编程解决“韩信点兵”的问题,他制定的如下工作过程中,最恰当的是(C) A、设计算法,编写程序,提出问题,运行程序,得到答案 B、分析问题,编写程序,设计算法,运行程序,得到答案 C、分析问题,设计算法,编写程序,运行程序,得到答案 D、设计算法,提出问题,编写程序,运行程序,得到答案 8、一位爱好程序设计的同学,想通过程序设计解决“鸡兔同笼”的问题,他制定的如下工作过程中,更恰当的是(A)。 A、提出问题、设计算法、编写程序、得到答案 B、提出问题、编写程序、运行程序、得到答案 C、编写程序、设计算法、调试程序、得到答案 D、设计程序、提出问题、编写程序、运行程序 9、下列关于算法的特征描述不正确的是(C) A、有穷性:算法必须在有限步之内结束 B、确定性:算法的每一步必须有确切的含义 C、输入:算法必须至少有一个输入 D、输出:算法必须至少有一个输出 10.下面关于算法的说法错误的是( B )。 A.算法必须有输出B.算法就是程序 C.算法不一定有输入D.算法必须在有限步执行后能结束 11、下列哪一个不是用于程序设计的软件(C) A、BASIC B、C语言 C、Word D、Pascal 12、下列可以作为合法变量名的是(A) A、a7 B、7a C、a-3 D、8 13、流程图中表示判断框的是(B)。 A、矩形框B、菱形框C、圆形框D、椭圆形框 14、由“上车—掏钱—投币”所描述的问题是(A)。 A、无人售票车投币过程B、乘公交车过程C、上车过程D、下车过程 15、下列给出的赋值语句中正确的是(C)。

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

学习必备欢迎下载 第一课初识算法与程序设计 一、教学目标 1、知识与技能 (1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力; (2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动 手操作能力。 2、情感、态度、价值观 学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学 生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。 二、教学重点难点 重点:算法概念的理解 难点:如何科学合理的选择和设计算法。 三、教学策略与手段 以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动 探讨,通过 Flash 演示材料,比较直观地把抽象的问题简单化,使学生的思考 逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主 探究学习的能力。 四、教学过程( 1 课时) (一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。 【问题一】天下真的有“不要钱的午餐”吗? 某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来

的顺序都坐一遍,以后来吃饭就可永远免费” 。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢? 学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题 的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一 个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任 一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位 只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需 要吃120次才有可能吃上免费午餐。 【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的 任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉 的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。学 生:学生讨论回答。 〖展示步骤〗 ①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。 【F lash 动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和 人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。(二)【课件展示】算法的概念:

算法与程序设计

第二部分算法与程序设计(选修) 主题1算法与程序设计 1.1算法 1.1.1计算机解决问题的过程 知识点1:人是如何解决问题的 【知识链接】 本考点要求学生达到“了解”水平。 解决问题的过程可以总结为:观察、分析问题,收集必要的信息,尝试按照一定的方法和步骤解决问题。一般来说,同一个问题可以有多种解决方法,但不同的方法有优劣之分。评价一种方法的优劣要与具体情况相结合。 要理解本考点的内容除了用教科书中“韩信点兵”的例子外,还可以举出其他一些例子,例如:最小公倍数问题、班级活动的设计等。 【技能扫描】 培养将生活中的实例整理成条理化步骤的好习惯,提高自己的逻辑思维和语言叙述能力。 体会逻辑关联词“如果……那么……”、“或者”、“并且”、“否则”的含义,能把这些逻辑关联词翻译成数学“语言”。 【典型题析】 1. 分析“这个人谁都不认识”的含义,体会同一种叙述在不同语境中可以表达不同的意思。 分析:第一种解释是在场的所有人都不认识这个人(这个人是被认识的对象);第二种解释是这个人不认识在场的所有人。 2.张三有一杯咖啡,李四有一杯牛奶,在不交换杯子的前提下如何交换两人的饮料。 分析:设张三的杯子为X,李四的杯子为Y,找一个空杯子T。将X杯中的咖啡倒入T杯中,将Y杯中的牛奶倒入X杯中,再将T杯中的咖啡倒入Y杯中即可。可以写成X→T,Y→X,T→Y。 【模拟练习】 1.把从早晨起床到学校的过程整理成算法(解决问题的方法和步骤)并表述出来。 2.一个侦探逮捕了5个嫌疑犯b因为这5个人供出的作案地点各有出入,进一步审讯后,他们分别提出了如下的申明。 A:5个人当中有1个人说了谎。 B:5个人当中有2个人说了谎。

历年算法与程序设计学业水平考试真题(带答案)

一、选择题 1、流程图是描述()的常用方式。 A、程序 B、算法 C、数据结构 D、计算规则 2、下面不属于算法描述方式的是()。 A、自然语言 B、伪代码 C、流程图 D、机器语言 3、以下运算符中运算优先级最高的是()。 A、+ B、^ C、>= D、* 4、某程序中三个连续语句如下: a=1 b=2 c=b+a 它属于() A、顺序结构 B、选择结构 C、循环结构 D、以上三种都不是 5、穷举法的适用范围是() A、一切问题 B、解的个数极多的问题 C、解的个数有限且可一一列举 D、不适合设计算法 6、在现实生活中,人工解题的过程一般分为() A、理解分析问题→寻找解题方法→用工具计算→验证结果 B、寻找解题方法→理解分析问题→用工具计算→验证结果 C、用工具计算→验证结果→寻找解题方法→理解分析问题 D、用工具计算→验证结果→理解分析问题→寻找解题方法 7、下列关于算法的特征描述不正确的是() A、有穷性:算法必须在有限步之内结束 B、确定性:算法的每一步必须确切的定义 C、输入:算法必须至少有一个输入 D、输出:算法必须至少有一个输出 8、下列哪一个不是用于程序设计的软件() A、BASIC B、C语言 C、Word D、Pascal 9、下列可以作为合作变量名的是() A、a7 B、7a C、a-3 D、8 10、编程求1+2+3+........+1000的和,该题设计最适合使用的控制结构为()。 A、顺序结构 B、分支结构 C、循环结构 D、选择结构 11、下列步骤不属于软件开发过程的是() A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护12.以下程序段运行时,语句k=k+1 执行的次数为()次。 k=-10 do k=k+1 loop while(until)k=0 A. 9 B. 10 C. 11 D. 12 13.已知x=6, y=5, 则以下运算结果为True 的是() A.Not(x>y) B. (x<5)or(y>6) C. (x>=6)And(y>=5) D. Not(x>4) 14.模块化程序设计方法反映了结构化程序设计的()基本思想。 A、自顶向下,逐步求精 B、面向对象 C、自定义函数、过程 D、可视化编程 15、一位同学想编程解决“韩信点兵”的问题,他制定的如下工作过程中,最恰当的是() A、设计算法,编写程序,提出问题,运行程序,得到答案

高中信息技术 算法与程序设计教案 粤教版选修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<1.2米 就不用买票, 否则就要买 票. 通过使用学生熟 悉的常识,引起学生积 极思考,激发学生学习 兴趣,想像力和继续探 讨的热情和期待。 新课教学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语句的练习,并

高中信息技术算法及程序设计

高中信息技术《算法与程序设计VB (选修)》 知识要点 相关知识点 (一)算法 1.定义 相关题解: 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。 单选题 1、运用计算机程序解决实际问题时,合理的步骤是(B )。 A 、设计算法→分析问题→编写程序→调试程序 B 、分析问题→设计算法→编写程序→调试程序 C 、分析问题→编写程序→设计算法→调试程序 D 、设计算法→编写程序→分析问题→调试程序 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 相关题解: 单选题 1、图形符号"在算法流程图描述中表示( B ). A 处理或运算的功能 B 输入输出操作 C D 算法的开始或结束 2、图形符号在算法流程图描述中表示( A ). A 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 3、以下哪个是算法的描述方法( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法 4、以下哪个是算法的描述方法( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法 介于自然语言和计算机语言之间的一种算法描述是下列哪个选项( )

B、流程图 C、高级语言 D、VB 程序设计语言 (二)程序设计基础 (1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等 2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。 对象属性=属性值 对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下 =”20”

选修一算法与程序设计

选修1:算法与程序设计 第一单元算法 一、知识内容 (一)使用计算机解决问题的一般过程 考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接运用。 1.一般过程 (1)分析问题确定要使用计算机来“做什么”,即确定解题的任务。 (2)寻求解决问题的途径和方法。 (3)用计算机进行处理。 2.确定解决问题的方法及步骤化 确定了解决问题的方法后,必须把解决问题的方法步骤化,即用某种方式告诉计算机每个需做什么。 计算机开始计算之前,需把解决问题的程序存储在内存中。通常一个程序包括指令和数据两部分。 (1)指令部分:指令是对计算机操作类型和操作数地址做出规定的一组符号。 (2)数据部分:计算所需的原始数据、计算的中间结果或最终结果。 3.设计程序时需要考虑的问题 (1)数据的存储:计算所需要的原始数据、计算产生的中间结果需要存储在不同的变量中。 (2)计算的过程:把解决问题的方法步骤化,并用计算机能执行的指令来有序地实现对应的步骤。 (3)典型的指令类型有输入指令、输出指令、算术运算指令、逻辑运算指令和控制转移指令。(二)算法及算法的表示方法 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.算法的特征 (1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。 (2)确定性。算法中的每个步骤必须有确切的含义,不应当有模棱两可的。 (3)能行性。算法中的每一个步骤都要足够简单,能实际能作的,而且在能在有限的时间内完成。 (4)有0个或多个输入。 (5)有一个或多个输出。 (三)用自然语言和流程图表示算法 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.自然语言 就像写文章时所列的提纲一样,可以有序地用简洁的自然语言加数学符号来描述算法。 2.流程图 用国家颁布的标准(GB1526-89,ISO5807-1985)中规定的图示及方法来画流程图,常用的构件有如图所示。

《算法与程序设计》试题带答案

《算法与程序设计》试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE

算法与程序设计教案

算法与程序设计思想 【基本信息】 【课标要求】 (一)利用计算机解决问题的基本过程 (1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。 (2)经历用自然语言、流程图或伪代码等方法描述算法的过程。 (4)了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。 【学情分析】 高一年级的学生已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。 『此处说“已有了顺序结构、分支结构、循环结构等知识的储备”,应该是指在必修部分对“计算机解决实际问题的基本过程”已有所体验与了解,或是指已学习过数学中相关模块的知识,这是本案例教学得以实施的必不可少的前提条件。』 【教学目标】 1.知识与技能: 建立求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。 2.过程与方法: 利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。 培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。 『在过程上,通过现实生活中的实例来引导学生总结“求最大值”的算法思想。过程的实现关键在于实例引用是否贴切,是否有利于学生向抽象结论的构建。本案例的实例选择是符合这一要求的。在方法上,注重培养学生分析、解决问题的一般能力,再次体验与理解应用计算机解决问题的基本过程,为后面更一步的学习打下基础,积累信心。』 3.情感态度与价值观:

算法与程序设计模块(选择题)汇总

算法与程序设计模块(选择题) 1.用流程图描述算法中表示“条件判断”的图形符号是 A. B. C. D. 答案:A 2.以下为求0到1000以内所有奇数和的算法,从中选出描述正确的算法 A. ①s=0; ②i=1; ③s=s+i; ④i=i+2; ⑤如果i≤1000,则返回③; ⑥结束 B. ①s=0; ②i=1; ③i=i+2; ④s=s+i; ⑤如果i≤1000,则返回③; ⑥结束 C. ①s=1; ②i=1; ③s=s+i; ④i=i+2; ⑤如果i≤1000,则返回③; ⑥结束 D. ①s=1;

②i=1; ③i=i+2; ④s=s+i; ⑤如果i≤1000,则返回③; ⑥结束 答案:A 3.在VB语言中,下列数据中合法的长整型常量是 A. 123456 B. 1234.56 C. 12345A D. A12345 答案:A 4.在VB语言中可以作为变量名的是 A. Print B. ab=cd C. 123abc D. abc_123 答案:D 5.设置TextBox的字体时,应改变TextBox的 A. Text属性 B. Font属性 C. ForeColor属性 D. Name属性 答案:B 7.代数式a ac b 24 2 对应的VB表达式是 A. sqr(b*b-4*a*c)/2*a B. sqr(b*b-4*a*c)/2/a C. sqr(b*b-4*a*c)/(2/a) D. sqr(b*b-4*a*c)/2a

答案:B 8.在VB语言中,下列正确的赋值语句是 A. I=I+1 B. I+1=I C. I*3=I D. 2I=I+1 答案:A 9.下列计算机程序设计语言中不属于高级语言的是 A. C++ B. Visual Basic C.机器语言 D. Java 答案:C 计算机程序设计语言:机器语言010*******汇编语言高级语言10.在VB语言中,下列逻辑表达式的值为"假"的是 A. #1/11/2009# > #11/15/2008# B. #1/11/2009# < #11/15/2008# C. 5 > 3 and 6 < 9 D. 5 > 3 or 6 > 9 答案:B 11.用流程图描述算法中表示“开始/结束”的图形符号是 A. B. C. D. 答案:B

算法与程序设计(教科版)教案

算法与程序设计(教科版)教案 1-1节计算机解决问题的过程 一、教学目标 1、知识与技能 (1)让学生了解算法、穷举法、程序设计语言、编写程序和调试程序等概念。 (2)让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述。 (3)让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用。 2、方法与过程 (1)培养学生发现旧知识的规律、方法和步骤,并把它运用到新知识中去的能力。 (2)培养学生调试程序的能力。 (3)培养学生合作、讨论、观摩、交流和自主学习的能力。 3、情感态度和价值观 通过“韩信点兵”这个富有生动情节的实例和探究、讲授、观摩、交流等环节,让学生体验用计算机解决问题的基本过程。 二、重点难点 本节的重点用计算解决问题的过程中的分析问题、设计算法、和上机调试程序等步骤。用计算机解决问题的过程中的分析问题、设计算法也是本节的难点。 三、教学环境 1、教材处理 教学内容选用中华人民共和国教育部制订的《普通高中技术课程标准》(2003年4月版)中信息技术部分的选修模块1“算法与程序设计”第一章的第一课“计算机解决问题的过程”。教材选用《广东省普通高中信息技术选修一:算法与程序设计》第三章第一节,建议“算法与程序设计”模块在高中一年级下学期或高中二年级开设。 根据2003年4月版《普通高中技术课程标准》的阐述,“算法与程序设计”是普通高中信息技术的选修模块之1,它的前导课程是信息技术的必修模块“信息技术基础”。学生在“信息技术基础”模块里已经学习了计算机的基本操作,掌握了启动程序、窗口操作和文字编辑等基础知识。学生可以利用上述的基础知识,用于本节课的启动Visual Basic程序设计环境,输入程序代码,运行程序等操作。本节课“计算机解决问题的过程”是“算法与程序设计”模块的第一节课,上好这节课是使学生能否学好“算法与程序设计”这一模块的关键。本节课的教学目的是让学生理解分析问题、设计算法、编写程序和调试程序等用计算机解决问题的基本过程,认识其在算法与程序设计中的地位和作用,它也是后续课程如模块化程序设计、各种算法设计等课程的基础。 让学生在人工解题中发现分析问题、设计算法等步骤,并把它应用到用计算机解决问题中去,这是构建主义中知识迁移的方法。本节课还采用了探究、讲授、观摩、交流、阅读材料等多种教学活动的有机结合的方法。 2、预备知识 本节课相联系的旧知识是计算机的基本操作中鼠标、键盘操作,启动、关闭程序,窗口、菜单操作和文字编辑等基础知识,还有解决数学问题的步骤等知识。 3、硬件要求

算法与程序设计试题带答案

高一第二学期《算法与程序设计》学分认定试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么”,然后再确定程序“如何做”请问“如何做”是属于用计算机解决问题的哪一个步骤() A、分析问题 B、设计算法 C、编写程序 D、调试程序 2、在调试程序过程中,下列哪一种错误是计算机检查不出来的() A、编译错误 B、执行错误 C、逻辑错误 D、任何错误计算机都能检查出来 3、下列关于算法的叙述中,错误的是() A、一个算法至少有一个输入和一个输出 B、算法的每一个步骤必须确切地定义 C、一个算法在执行有穷步之后必须结束 D、算法中有待执行的运算和操作必须是相当基本的。 4、流程图中表示判断的是()。 A、矩形框B、菱形框C、圆形框D、椭圆形框 5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是() A、顺序结构 B、选择结构 C、层次结构 D、循环结构 6、能够被计算机直接识别的语言是() A、伪代码 B、高级语言 C、机器语言 D、汇编语言 7、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、 D、 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句For x=1 to 100 step 2 …… Next x 中,x能达到的最大值是() A、100 B、99 C、98 D、97 11、在下列选项中,不属于VB的对象的是() A、窗体的背景颜色 B、命令按钮 C、文本框 D、标签 12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()A、F1 B、F8 C、F9 D、F12 13、算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法() A、自然语言 B、流程图 C、伪代码 D、机器语言 14、以下不属于非法用户自定义标识符(常量和变量命名)的是() A、8ad B、ad8 C、_a8d D、const 15、已知A,B,C,D是整型变量,且都已有互不相同的值,执行语句B=0;A=C;D=A;D=B;后,其值相等的变量是() A、A,D B、A,C C、C,B D、B,A 16、要交换变量A和B的值,应使用的语句组是( ) A、A=B;B=C;C=A B、C=A;A=B;B=C C、A=B;B=A D、C=A;B=A;B=C 17、VisualBasic中以单引号开头一行文字称为注释,它对程序的运行() A、起一定作用 B、有时候起作用 C、不起任何作用,但是必须的 D、不起任何作用,但能增加程序的可阅读性 18、要使一个命令按钮显示文字“确定”,正确的设置是把该命令按钮的()。 A、属性Font设置为“确定” B、属性.ForeColor设置为“确定” C、属性Caption设置为“确定” D、属性BorderStyle设置为“确定” 19、要从文本框TXTShowOut中输出"中国您好!",代码为( ) A ="中国您好!" B ="中国您好!" C ="中国您好!" D Val=“中国您好!” 20、下列Visual Basic程序段运行后,变量max的值为()。 a=11; b=15; max=a IF b>max Then max =b A、15 B、11 C、15或11都有可能 D、以上都不是 二、阅读程序写结果(第1~2小题每题5分,第3小题10分,共20分) 1、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=5时,运行的结果是__________________。

算法与程序设计----从零开始学Visual Basic1

算法与程序设计----从零开始学Visual Basic 作者:山东东营胜利第二中学刘健 前言:山东的学生从高二就要选修信息技术课程,当你选修了算法和程序设计这门课程,恭喜你!因为你已经开始向更高层次迈进了。这门课程将帮助我们揭开计算机的神秘面纱。通过学习,我们不仅能知道平时使用的软件是如何开发出来的,还能从计算机语言层面上了解计算机能做什么,是如何工作的,知道软件背后的设计过程,甚至我们自己也能设计出优秀的计算机软件。本教程是根据教育科学出版社编著的普通高中课程标准实验教科书《算法与程序设计(选修)》一书的内容编著。呵呵,就是我们现在用的课本。当然了,如果没有课本,你也一定能够学会下面的教程。因为,从零开始学。下面Let’S GO. 第一课认识我们的创作室 Visual basic是美国微软公司于1991年推出的基于Basic语言(Beginners All—purpose Symbolic Instruction Code,初学者通用指令)的可视化程序设计语言,是经典的编程设计语言,也是基础语言之一,简单易学,功能强大,深受广大初学者的喜爱。这里我们用的是VB6.0中文版。VB是运行在Windows视窗操作系统上,设计程序的思想在于在窗口中放置对象和针对对象设计代码。 (一)启动VB:单击“开始”-“程序”-“Microsoft Visual Basic 6.0 中文版”选择“标准EXE”,单击“打开”进入窗口。

(二)VB窗口如图所示

1、标题栏:在最上面蓝色标题是“工程1-...”,是我们当前正在设计的程序,被称作“工程1”。 2、菜单栏:菜单栏在第二行,包含一组菜单,菜单中有各种命令。 3、工具栏:第三行是工具栏,工具栏是一些最常用的命令,而且是用图标表示的,因而便于形象记忆和操作。 4、工作区:工作区占据窗口的绝大部分,从左向右包括工具箱、窗体、和属性窗口。 (1)工具箱:在工作区的左侧,包含许多编程用到的基本对象,被称作“控件”。 (2)窗体:中间的灰色的窗口,是我们设计的程序的基本框架,所有的对象都放在这个窗口当中。 (3)小窗口:在右侧有三个纵向排列的窗口。 ①最上面是工程资源管理窗口; ②下面是属性窗口; ③最下面是布局窗口,里面显示程序运行时的位置,拖动里面的小框可以改变程序的显示位置。 (三)、简单程序入门 1、新建“标准EXE”工程,进入vb集成开发环境。系统自动创建一个窗体“Form1”, 如图所示:

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

解析法 一、基本说明 1、教学内容所属模块:信息技术选修1《算法与程序设计》 2、年级:高一年级 3、所用教材出版单位:上海科技教育出版社 4、所属的章节:第三章第一节 5、学时数:45分钟 二、教学设计 1、教学目标: (1)了解解析算法的基本概念。通过实例的学习,掌握用解析算法设计程序的基本思路。 (2)学会根据问题寻找恰当算法和解决问题的方法,并进一步理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的过程和方法。 (3)学会合作、交流,培养勇于实践、勤于思考和善于总结的精神和态度。 2、内容分析: 本节内容为用解析法设计程序,解析法是一种最基本的常用算法,在之前三种基本结构程序设计的例题分析中也曾使用过,该算法的分析也为今后的各种算法学习做好了准备。本课教学重点是“理解解析算法的思想,能写出求解问题的解析式并用程序实现”,本课的教学难点是“如何学会分析问题,合理设计算法,建立求解问题的解析式”。 3、学情分析: 学生已经具备了可视化编程的能力及程序设计的基本技能,这样就可以将教学的重点放在算法的分析上,培养学生解决实际问题的能力。 4、设计思路: 本课采用一个测量树高的例子进行引入,用简单的例子分析解析算法,然后采用教材上的活动“求解铁丝问题”让学生掌握解析算法的实现过程,用“求岛屿面积”的实践环节巩固学生的学习。课堂教学中主要采用任务驱动、分析归纳、小组合作、自主探究相结合的学习方法。

题 2’ 从A、B两点仰角的角度与两点之 间的距离可计算出MN的高度。 引出课题:解析法 探究学习 8’[学习任务一] 问题:MN是竖直于地面的物体, 其底部N不可到达。为了测量MN 的高度,在地面上选取一条与MN 在同一平面的水平线线段AB为 基线,测得AB的长为a=20米, 在A点向M点张望的仰角α =38.4°,在B点向M点张望的仰 角β=22.8°。试设计程序计算高 度MN。 要求:完成“学习任务一”(填 写电子文档) 1、问题分析:怎样写出计算表达 式。(请学生回答) 2、设计求解表达式MN=a/(1/tan β- 1/tanα)的算法。 (以下部分小组合作完成) 3、实现应用程序:老师提供程序 的可视化界面及不完整的程序, 要求学生程序填空,完善程序。 4、将程序输入到程序窗体的按钮 中并调试计算本题结果。附带计 算学校中一棵桂花树和一棵龙柏 的高度。 1、由α、β与a 推导出计算表达 式。 2、根据计算表达 式,分析解题算 法。 3、小组合作,填 空完成程序,交流 填空结果。 4、复制程序,调 试并得出运算结 果。 让学生在 老师的带 领下了解 解析法解 题的一般 过程。 学习小结2’老师提问:请同学说说求解任务 一的步骤是怎样的? 老师用流程图表示这个步 骤,提出解析法的概念。 了解解析算法的 概念。 让学生初 步了解解 析算法的 概念。 [学习任务二]求解“铁丝问题” “智力大比拼”活动: (1)一根长为6米,可制作一个 2平方米的矩形框,问该矩形长 和宽各为多少? (2)上面同样的问题,制作的面 积为2.1平方米,那么长、宽各 参与“智力大比 拼”活动。 产生计算机程序 解决问题与简单 人脑思维运算的 比较。 让学生参 与“智力大 比拼”活 动,产生冲 突,激发学 生学习的 兴趣。

算法与程序设计

江苏省高中信息技术算法与程序设计VB(选修)

《算法与程序设计VB (选修)》 知识要点 相关知识点 (一)算法 1.定义 相关题解: 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。 单选题 1、下列关于算法说法不正确的是( A ) A 、算法独立于任何具体的语言,BASIC 算法只能用BASIC 语言来实现 B 、解决问题的过程就是实现算法的过程 C 、算法是程序设计的“灵魂” D 、其它三项都正确 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 1" ( A 处理或运算的功 ( A ). B D 3、以下哪个是算法的描述方法?( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法 4、以下哪个是算法的描述方法?( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法 (二)程序设计基础 (1)常用高级编程语言:BASIC 、VB 、Pascal 、C 、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等 2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。

对象属性=属性值 对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下 例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下 Txt123.text =”20” 变量=对象.属性 如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下 例:读取文本框“txt123”的“Text”属性的代码如下 a = txt123.text 2方法 [对象].方法[参数名表] 例:form.print ”欢迎使用” 该语句使用print方法在form1窗体中显示字符串“欢迎使用” 3事件及事件驱动 事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。如需要命令按钮响应Click 事件,就把完成Click事件功能的代码写到Click事件的事件过程中,与事件一一对应。 事件过程的形式如下: Private Sub 对象_事件名( ) ……………(事件过程代码) End Sub 一个简单的VB程序 求圆的周长和面积 Private Sub Command1_Click() Dim r As Single '定义r为单精度型 Dim c As Single '定义c为单精度型 Dim s As Single '定义s为单精度型 r = Val(Text1.Text) '输入半径r c = 2 * 3.14159 * r '计算周长 s = 3.14159 * r * r '计算面积 Text2.Text = c '输出周长 Text3.Text = s '输出面积 End Sub Private Sub Command2_Click() End '退出 End Sub相关题解: 单选题 1、下列关于程序设计说法正确的是( B )。 A、程序设计语言的发展经历了机器语言、汇编语言到高级语言的过程,比

相关文档