17-18版 算法与程序设计 算法的程序实现(1)
- 格式:doc
- 大小:1.41 MB
- 文档页数:12
课程目标的三个维度[解析“算法与程序设计”的课程目标]在素养教育背景下,以公布《平凡中学技术课程标准〔试验〕》〔以下简称“新课标”〕为标记,我国信息技术教育实现了由计算机教育到信息技术教育的根本性转变。
作为计算机教育主要内容达十六年之久的“程序设计”,变成了新课标中的“算法与程序设计”选修模块〔以下简称“编程模块”〕。
有关教学目标变成了课程目标,并规定为:“旨在使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简洁问题启程,设计解决问题的算法,并能初步运用一种程序设计语言编制程序,实现算法解决问题”。
该目标较原程序设计的教学目标已经发生了革命性的改变。
这种历史的渊源对“算法与程序设计”模块的课程目标〔以下简称“课程目标”〕在教学实践中的承受和理解产生了紧要的负面影响。
为了解疑释惑,启发对课程目标的深化思索,促使我国信息技术教育的改革走向深化,本文认为有必要对教学实践中片面理解课程目标的问题以及由此带来的教学困惑进展全面的剖析,从不同的角度对该课程目标进展全方位的诠释。
曲解课程目标的事实及由此产生的教学困惑所谓课程目标是某一课程学习完以后,学习者在情感与看法、过程与方法、学问与技能等方面发生的改变,是造就目标在特定课程中详细化、操作化的表述。
与广阔一线老师习惯了的教学目标相比,课程目标要求全面表达素养教育的精神,从学问目标的一维表述,开展成为“学问与技能”、“过程与方法”、“情感看法与价值观”的三维呈现。
这种三维目标的大革命使得从一维目标的传统中走来的广阔老师,对新课标中编程模块课程目标的理解和把握存在诸多困难,出现了不少问题,引出了很多困惑,概括起来有以下几种状况。
1.编程实力说把编程模块理解成造就程序员的根底课,着重强调编程实力的造就。
在长达十六年的教学过程中,我国信息技术课就是程序设计,就是学习BASIC语言。
其课程目标〔教学目标〕是训练和造就学生运用计算机语言进展程序设计的实力。
算法与程序设计算法的程序实现[浙江考试标准]一、枚举算法1.枚举算法的基本思想根据问题的本身性质,①________出该问题②________可能的情况,并根据题目的条件逐一分析、判断是否满足条件,若满足,则它是问题的一个解,从而挑选出符合条件的③________。
2.枚举算法解题的基本思路(1)确定枚举对象、枚举范围和判断条件。
(2)一一列举可能的解,验证是否是问题的解。
3.枚举算法程序实现的三要素。
(1)枚举解时,既不能遗漏任何一个真正解,又不能有重复,用循环语句实现。
(2)条件判断时,利用问题提供的约束条件筛选、判断解的正确性,用分支语句实现。
(3)求解形式一般以输出解的内容或进行与解有关的其他计算。
二、解析算法1.解析算法的基本思想用解析的方法找出表示问题的前提条件与所求结果之间关系的④________,并通过表达式的计算来实现问题的求解。
2.解析算法解题的基本思路(1)建立正确的数学模型,即得出正确的数学表达式。
(2)保证计算过程描述的正确性。
用正确合理的VB变量、表达式来表示已经得出的数学表达式。
3.解析算法程序实现的步骤(1)运用解析算法分析问题,寻找问题中各要素之间的关系,用⑤________表示它们的关系。
(2)写出解决问题的解析步骤,编写程序实现,通过运行程序求得问题的正确解。
三、冒泡排序1.冒泡排序基本思想是在待排序的数据中,先找到最小(大)的数据将它放到最前面,再从第二个数据开始,找到第二小(大)的数据将它放到第二个位置,以此类推,直到只剩下最后一个数据为止。
2.冒泡排序的实现要素(1)将数据存放在数组中,确定数组的名称、元素个数。
(2)比较与交换⑥________进行,在冒泡排序中,第i 遍排序比较n -i 次,最多交换n -i 次。
(3)强调⑦__________元素的比较和交换。
3.冒泡排序的程序实现 (1)从后向前实现冒泡排序从后向前实现冒泡排序的程序结构:⎩⎪⎨⎪⎧让i 从1到n -1循环⎩⎨⎧让j 从n 到i +1循环 步长为-1 如果d (j )与d (j -1)逆序,则两者互换(冒泡一次)循环尾循环尾(2)从前向后实现冒泡排序从前向后实现冒泡排序的程序结构:⎩⎪⎨⎪⎧让i 从1到n -1循环⎩⎨⎧让j 从1到n -i 循环如果d (j )与d (j +1)逆序,则两者互换(冒泡一次)循环尾循环尾【自我校对】 ①一一列举 ②所有 ③所有解 ④数学表达式 ⑤数学表达式 ⑥同时 ⑦相邻四、选择排序 1.选择排序基本思想是在所有的记录中选出最小(大)的数据,把它与第一个数据交换,然后在其余的记录中再选出最小(大)的数据与第二个数据交换,依次类推,直至所有数据排序完成。
单元教学设计支持学科领域:数学、物理、化学、思想品德。
单元框架单元所属年级所需教学环境到一年级多媒体机房所需课时数(中学每课时45分钟)前需技能学生在开始此单元学习前,必须具有一定的分析和解决问题的能力,并有一定的归纳总结的能力。
实施教学过程示例第一课时1.《课程标准》要求通过解决实际问题,体验程序设计的基本流程。
2.教学目标✧体会人工解决问题与计算机解决问题的不同特点。
(信息意识)✧通过亲历项目“自助式人行过街红绿灯”问题的解决过程,经历计算机解决问题的一般过程。
(计算思维)✧通过经历项目问题分析、设计方案,能初步规划项目解决方案。
(计算思维)✧认识Python语言,了解计算机程序的主要功能,体验程序设计的魅力。
(数字化学习与创新)3.学业要求依据解决问题的需要,设计和描述简单算法;利用程序设计语言实现简单算法,解决实际问题。
4.教学对象分析全民学习,教学对象均具备一定的生活常识,有一定的自主学习能力与意识,能够对身边的一些简单问题进行分析,并能够根据个人经验解决问题。
本节通过项目学习,引领受众走进编程,学习通过计算机程序设计解决问题,培养计算思维。
5.教学重点与难点教学重点:用计算机解决问题的一般过程。
教学难点:运用计算思维进行问题分析和分解。
6.教学方法与教学手段教学方法:项目教学,讲授学习教学手段:项目方案7.教学过程设计教学环节教学内容学生活动设计意图情境导入1.创设情境:在无信号灯或者信号灯不能正常工作的路口,经常会有交通警察在现场指挥交通。
我们来尝试描述交通警察为保证道路通畅进行疏导的一般过程和方法。
2.梳理总结人工解决问题的一般过程——3.引出用计算机解决问题的优势——参与活动思考回答通过情景再现,让学生切实感受身边的问题,并引出解决问题的一般过程,以及用计算机解决问题的优势,为后续本节课的重点内容“有计算机解决问题的过程”做铺垫。
学习新知1.指出用计算机解决问题的过程,分阶段讲解。
算法与程序设计一、教学目标:1. 了解算法的概念和特点,理解算法在解决问题中的重要性。
2. 学习常用的编程语言和工具,掌握基本的编程技巧。
3. 通过实例学习,掌握常见的算法思想和实现方法。
4. 培养学生的逻辑思维能力和创新能力,提高学生解决实际问题的能力。
二、教学内容:1. 算法概述:算法的定义、特点、分类和评价。
2. 编程语言及工具:常用的编程语言(如Python、C++、Java等)和开发工具(如Visual Studio、Eclipse等)的介绍和使用。
3. 基本算法思想:顺序结构、选择结构、循环结构、递归等。
4. 常见算法实现:排序算法(冒泡排序、快速排序等)、查找算法(二分查找、顺序查找等)、图算法(深度优先搜索、广度优先搜索等)。
5. 算法优化与分析:时间复杂度、空间复杂度、算法优化方法等。
三、教学方法:1. 讲授法:讲解算法的概念、特点、分类和评价等基本知识。
2. 实践法:让学生通过编写代码,实际操作来掌握算法思想和实现方法。
3. 案例分析法:通过分析典型实例,让学生理解并掌握算法的应用。
4. 小组讨论法:分组进行讨论,培养学生的团队协作能力和沟通能力。
1. 第一课时:算法概述及编程语言介绍2. 第二课时:基本算法思想及实现3. 第三课时:常见算法实现4. 第四课时:算法优化与分析5. 第五课时:综合案例分析与实践五、教学评价:1. 课堂表现:观察学生在课堂上的积极参与程度、提问回答等情况,了解学生的学习状态。
2. 课后作业:布置相关的编程练习,检查学生对知识点的掌握情况。
3. 项目实践:让学生完成一个综合性的项目,评价学生的综合运用能力和创新能力。
4. 小组评价:对学生在小组讨论中的表现进行评价,包括团队协作能力和沟通能力。
六、教学资源:1. 教材:算法与程序设计相关教材,如《算法导论》、《编程之美》等。
2. 在线资源:编程社区(如Stack Overflow、GitHub等)、在线编程平台(如LeetCode、牛客网等)。
算法与程序设计算法的程序实现[浙江考试标准]一、枚举算法1.枚举算法的基本思想根据问题的本身性质,①________出该问题②________可能的情况,并根据题目的条件逐一分析、判断是否满足条件,若满足,则它是问题的一个解,从而挑选出符合条件的③________。
2.枚举算法解题的基本思路(1)确定枚举对象、枚举范围和判断条件。
(2)一一列举可能的解,验证是否是问题的解。
3.枚举算法程序实现的三要素。
(1)枚举解时,既不能遗漏任何一个真正解,又不能有重复,用循环语句实现。
(2)条件判断时,利用问题提供的约束条件筛选、判断解的正确性,用分支语句实现。
(3)求解形式一般以输出解的内容或进行与解有关的其他计算。
二、解析算法1.解析算法的基本思想用解析的方法找出表示问题的前提条件与所求结果之间关系的④________,并通过表达式的计算来实现问题的求解。
2.解析算法解题的基本思路(1)建立正确的数学模型,即得出正确的数学表达式。
(2)保证计算过程描述的正确性。
用正确合理的VB变量、表达式来表示已经得出的数学表达式。
3.解析算法程序实现的步骤(1)运用解析算法分析问题,寻找问题中各要素之间的关系,用⑤________表示它们的关系。
(2)写出解决问题的解析步骤,编写程序实现,通过运行程序求得问题的正确解。
三、冒泡排序1.冒泡排序基本思想是在待排序的数据中,先找到最小(大)的数据将它放到最前面,再从第二个数据开始,找到第二小(大)的数据将它放到第二个位置,以此类推,直到只剩下最后一个数据为止。
2.冒泡排序的实现要素(1)将数据存放在数组中,确定数组的名称、元素个数。
(2)比较与交换⑥________进行,在冒泡排序中,第i遍排序比较n-i次,最多交换n-i次。
(3)强调⑦__________元素的比较和交换。
3.冒泡排序的程序实现 (1)从后向前实现冒泡排序从后向前实现冒泡排序的程序结构:⎩⎪⎨⎪⎧让i 从1到n -1循环⎩⎨⎧让j 从n 到i +1循环 步长为-1 如果d (j )与d (j -1)逆序,则两者互换(冒泡一次)循环尾循环尾(2)从前向后实现冒泡排序从前向后实现冒泡排序的程序结构:⎩⎪⎨⎪⎧让i 从1到n -1循环⎩⎨⎧让j 从1到n -i 循环如果d (j )与d (j +1)逆序,则两者互换(冒泡一次)循环尾循环尾【自我校对】 ①一一列举 ②所有 ③所有解 ④数学表达式 ⑤数学表达式 ⑥同时 ⑦相邻四、选择排序 1.选择排序基本思想是在所有的记录中选出最小(大)的数据,把它与第一个数据交换,然后在其余的记录中再选出最小(大)的数据与第二个数据交换,依次类推,直至所有数据排序完成。
2.选择排序的实现要素(1)将数据存放在数组中,确定数组的名称、元素个数。
(2)强调⑧________。
在第i 遍排序中,比较n -i 次,最多交换1次。
(3)变量k 仅用于记录需要寻找的最值(最大值或最小值)位置,比较的是d(j)与d(k),交换的是⑨________。
3.选择排序的程序实现 (1)从前向后实现选择排序从前向后实现选择排序的程序结构(升序排序):⎩⎪⎪⎨⎪⎪⎧让i 从1到n -1循环k =i⎩⎨⎧让j 从i +1到n 循环如果d (j )<d (k ),则把j 保存到k 中循环尾如果k <>i ,则交换d (k )和d (i )的值循环尾(2)从后向前实现选择排序从后向前实现选择排序的程序结构(升序排序):⎩⎪⎪⎨⎪⎪⎧让i 从n 到2循环 步长为-1k =i⎩⎨⎧让j 从i -1到1循环如果d (j )>d (k ),则把j 保存到k 中循环尾如果k <>i ,则交换d (k )和d (i )的值循环尾【答案】 ⑧先比较,再交换 ⑨d(k)和d(i)五.查找算法⑩________的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较,若某个数据和给定值相等,则查找成功,找到所查数据的位置;反之,查找不成功。
⑪________的基本思想是在有序的数据列中,首先将要查找的数据与有序数组内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在数组的前半部分还是后半部分继续进行查找;在新确定的范围内,继续按上述方法进行查找,直到找到要查找的数据,使查找成功,或直到子表不存在,查找不成功。
【答案】 ⑩顺序查找 ⑪对分查找 六、递归算法函数或过程调用它本身,称为⑫________。
⑬________的基本思想是把规模较大的、较难解决的问题变成规模较小的、容易解决的同一问题,规模较小的问题又变成规模更小的问题,当问题小到一定程度时,可以直接得出它的解,从而得到原来问题的解。
即采用“大事化小,小事化了”的基本思想。
递归算法必须具备的条件:①每一步骤解决问题的方法要一致。
②有边界条件。
【答案】⑫递归⑬递归算法七、VB访问数据库1.通过ADO连接数据库ADO是微软公司提供的一种应用程序访问数据库的编程接口。
该接口包含了多个对象,其中Connection对象用于与数据库建立连接,在建立连接后,可通过Recordset对象获取数据表中的数据。
在用Connection建立与数据库的连接时,需要设置ConnectionString属性的值(即连接字符串),以指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。
Connection对象具有Open、Close等方法,其中⑭________方法用于打开到数据源的连接,⑮________方法用于关闭连接。
2.通过Recordset对象获取数据库中的数据,步骤如下:(右边是对应的代码):说明:①myrecord是定义的Recordset对象的名字。
②mytable是数据库中某张表的名称。
③EOF属性:若当前记录的位置在最后的记录之后,则返回True,否则返回False。
④MoveNext方法:指针移到下一条记录。
⑤这段代码应该在连接数据库后,关闭数据库前。
【答案】⑭Open⑮Close1.(2012年6月浙江会考)计算三角形面积的算法如下:①输入三角形三边长a,b,c②计算半周长p=(a+b+c)/2③计算三角形面积s=Sqr(p*(p-a)*(p-b)*(p-c))④输出面积s上述算法属于()A.排序算法B.解析算法C.枚举算法D.查找算法B[本题主要考查各种算法的基本思想。
本题中算法的基本思想是通过数学表达式的计算来解决问题,符合解析算法的基本思想。
]2.(2014年3月浙江学考)运行下列VB程序,在文本框Text1中输入28,界面如图所示。
Private Sub Command1_Click( )Dim s As SingleDim v As SingleDim t As Singles=0v=l0t=Val ( Text 1.Text )s=s+v*tLabel1 .Caption =Str(s)End Sub单击“计算”按钮Command1后,标签Label1中显示的内容是(1)________。
该程序采用了(2)________(填:解析/排序/查找)算法。
【解析】本题主要考查各种算法的基本思想特点及程序阅读能力。
s的值通过s=s+v*t计算得到,s的初值是0,将v=10,t=28(从文本框中输入)代入,得到s=280,符合解析算法的基本思想。
【答案】(1)280(2)解析一、冒泡排序与选择排序对比冒泡排序与选择排序分析问题的本质:for语句是为了一一列举所有可能的解还是从头到尾逐个访问数据源中的数据;if语句是检验可能解还是比较关键词。
三、对分查找对分查找的基本思想:查找的数据源a(1)到a(n)是有序的(如从小到大排序),查找的关键词是key,则第一次查找的范围是[1,n],如果中间位置为m,则m =fix((1+n)/2)。
如果key=a(m),则查找成功;如果key<a(m),则下一次查找的范围变为[1,m-1];如果key>a(m),则下一次查找的范围变为[m+1,n]。
在新确定的范围内,继续按上述方法进行查找,直到找到要查找的数据,则查找成功;或直到子表不存在,则查找不成功。
说明:①对分查找的前提是被查找的数据必须是有序的。
②对分查找每次访问的是当前查找范围里中间位置上的数据,并根据该数据与关键词的大小关系,将下一次的查找范围缩小一半。
③规模为n个数的数据源,使用对分查找时,最多经过Int(log2n)+1次查找。
1.7位学生的身高(单位:cm)从高到低依次为:178,177,175,172,170,165,162。
用对分查找法找到178的过程中,依次被访问到的数据是()A.178 B.172,175,178C.172,177,178 D.172,175,177,178C[本题主要考查对对分查找算法基本思想的理解。
将7个数据从1到7进行编号。
第一次访问到的数据是第4个,即172(中间位置m=Fix((1+7)/2)=4),178>172,因此下一次查找的范围是前半部分,即第1个到第3个。
因此第二次访问的数据应该是第2个,即177(中间位置m=Fix((1+3)/2)=2),178>177,因此下一次查找的范围是前半部分,即第1个,因此第三次访问的数据是第1个,即178。
]2.某校通过政府招投标中心采购一套多媒体教学设备,有5家单位参加竞标,竞标价分别为19万、15万、21万、13万、12万元人民币。
若采用选择排序算法对标价从大到小排序,需要进行数据互换的次数是()A.1 B.2C.3 D.4B[原始数据19、15、21、13、12,第一遍排序19与21互换,得到21,15,19,13,12;第二遍排序15与19互换,得到21,19,15,13,12;第三遍排序与第四遍排序都不需要数据互换。
因此总共是2次数据互换。
]3.实现某排序算法的部分VB程序如下:For i=1 To 6k=iFor j=i+1 To 7If a(j)<a(k) Then k=jNext jIf i<>k Thent=a(i):a(i)=a(k)∶a(k)=tEnd IfNext i在排序过程中,经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”。
则下一遍排序“加工”后数组元素a(1)到a(7)的数据依次是()A.10,11,41,75,12,63,85B.10,11,75,12,63,41,85C.10,11,12,75,63,41,85D.10,11,12,41,63,75,85B[本题主要考查选择排序算法的代码特点。
选择排序的基本操作是先找出最小数或最大数所在的位置,记录在一个变量中,再根据需要进行数据交换,因此代码中会出现“k=j”以及“If i<>k”的代码,根据代码特点,可确定本题的排序算法是选择排序。