411第一节 用计算机程序解决问题Word格式.docx
- 文档编号:8136936
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:14
- 大小:141.58KB
411第一节 用计算机程序解决问题Word格式.docx
《411第一节 用计算机程序解决问题Word格式.docx》由会员分享,可在线阅读,更多相关《411第一节 用计算机程序解决问题Word格式.docx(14页珍藏版)》请在冰点文库上搜索。
但教材中试图尽量减少这种技术上带来的影响,而侧重于学生对计算机程序本身执行过程的理解,以及帮助学生了解计算机程序是如何编写出来的。
本节内容只涉及VisualBasic语言的程序代码编辑、执行程序、保存文件等简单功能的应用,至于其他功能的学习则在选修模块《算法与程序设计》中进行。
而在程序代码输入过程中,要注意引导学生遵循程序结构化设计的思想以及书写规范(即悬挂式格式),增强程序的可读性和直观性。
在“探究”栏目,“x1mw$mw$fsso”是“Thisismybook”经过加密转换之后所产生的代码,转换的运算规则是机内码加4。
3、重难点分析
教学重点:
在高级语言环境中操作执行一段简单的实用计算机程序代码,了解其工作过程。
教学难点:
解剖简单的计算机程序,了解其结构组成和具体作用,认识计算机程序设计的基本流程。
二、教学建议
该节内容通过让学生操作具体的计算机程序,了解其执行的过程,通过解剖计算机程序,认识程序设计的基本流程。
如何让学生在具体操作实践中观察并归纳出程序执行的工作过程和基本特征,并针对具体实例的分析和实践,了解程序设计的具体流程,这主要是帮助学生了解程序设计的基本情况。
1、课前准备
课前教师要细致考察教材中的具体实例,认识其主要用途。
教师还要对高级语言环境有所了解,对程序的功能实现进行具体分析和理解。
对计算机程序设计的基本过程要有整体的了解,对每个环节要做深入分析和把握,以便在具体指导学生实践的时候做到“游刃有余”,分析得十分的透彻。
2、教学建议
对于用计算机解决问题的学习,教师需要采取有效的教学组织活动,帮助学生了解计算机程序的工作过程。
建议如下:
(1)教师可以针对具体情况,设计其他更加实用有趣的程序实例,在帮助学生完成基本学习目标的前提下,激发学生学习编程知识的兴趣。
(2)在设计具体的实用计算机程序时,可以考虑选择学生熟悉的学习和生活中的实例,例如商店价格折算、计算器模拟实现等。
(3)教师可以演示并解剖一段实用的计算机程序实例,让学生利用高级语言编程工具解决一个简单问题。
(4)可以组织学生分析并描述一些实用程序的执行过程,通过剖析程序实例,大致了解计算机程序的基本构成和主要作用。
(5)针对实际问题,要求学生利用自然语言描述解决问题的方法,并将解决问题的步骤描述成为算法设计的具体内容。
3、问题考虑
高一级学生大部分对“程序”具有好奇心同时完全没接触过编程。
学生急于看到自己的编程成果与严格规范的程序设计环境之间存在矛盾:
一方面,程序设计不可能一蹴而就;
一方面,学生的好奇心与求知欲应得到有效的引导与满足。
协调好这两方面的矛盾需要有所取舍。
本节的教学目标是“了解程序设计是什么,用程序解决问题的过程是什么”,在具体教学时可以先绕开设计程序时具体编程语言的语法规范、编程技巧等等环节。
让学生直接面向问题,分析问题,设计算法,运行程序,检测结果,从实践中体验程序设计的全过程。
其中“编程调试”环节中程序由教师以学习资源的形式提供帮助,使学生摆脱语言的束缚,专心体会程序设计的内涵,构建起对程序的整体印象,初步对算法有所认识。
学生在对计算机程序的基本过程有所了解之后,可能对具体的程序代码语句产生疑问,这需要引导学生阅读并理解程序设计的有关知识,以提高其学习兴趣。
本节内容涉及的是面向对象设计的高级编程语言,这可能对大多数学生来说有一定的难度,需要教师对整个教学组织进行严密细致和合理的安排。
同时引导学生了解更多有关程序设计的基本知识,将学生带入一个丰富多采的计算机程序设计世界。
三、练习说明
练习1:
“口令.vbp”程序的实现功能是:
通过键盘输入字符,与已经保存在计算机文件d:
\mm.txt的字符进行匹配。
如果输入相符,则显示成功信息;
否则重新输入,但密码输入的次数不允许超过3。
练习2:
该题目主要是帮助学生了解VB中按钮的一些使用情况,对程序变量、函数运算等有所认识。
四、参考教学课例
教学过程中可以根据教材中的例子组织教学,也可以另外设计例子。
以下的参考课例采用的是教师自行设计的例子。
第1课时:
通过“三步曲”程序的运行、剖析,了解VB的编程环境,了解计算机程序的工作过程,体验程序的执行效果。
初步认识程序。
第2课时:
通过“韩信点兵”问题的分析,让学生完整经历程序设计的过程。
(一)课题名称
用计算机程序解决问题
(二)教学目标:
了解程序是什么,用程序解决问题的过程是什么,初步掌握程序设计的工作过程;
培养学生进一步学习程序设计的兴趣。
(三)教学重点和难点:
1.程序设计的整体流程
2.用程序设计的思想解决实际问题
3.培养学生学习程序设计的兴趣;
(四)教学环境
网络教室
(五)教学过程:
第一课时:
编程环境的基本操作
环节
教学流程
设计意图
引入
运行程序:
清晨三步曲
引出问题:
在“清晨三步曲”中我们发一个指令,程序执行一个动作。
在程序设计过程中我们进行的每一个设置,都会反映到运行结果中。
那么,程序是怎样“做”出来的?
运行过程中,计算机在程序指挥下怎样“动作”的呢?
运行程序,激发兴趣
熟悉编程环境
熟悉VB环境
添加控件,设置控件细节。
添加程序,对运行过程进行控制:
(1)在FORM中添加程序;
(2)分别为每个按钮添加程序并作相应修改
(在“修改—>
运行”的过程中感受程序的作用。
此环节有学习资源的帮助)
初步了解VB的运行环境;
掌握新建文件、输入程序语句、运行程序的方法;
巩固
为程序添加细节
如:
添加标题“清晨三步曲”;
添加背景;
修改FORM标题
第二课时:
用计算机程序解决实际问题
复习引入
程序设计能够帮助解决我们学习中的问题。
那么应用程序设计来解决问题的机制是什么样的?
或者说,当面对一个具体问题,要编程序来解决时,作为程序员的我们要先做什么,再做什么?
而计算机面对问题时,它又是怎样处理的?
(有解的问题总是可以通过有限的步骤来完成的。
面对问题时,首先是分析问题,接着把问题描述成有限的步骤序列,也即设计出算法。
下面,我们通过实例的分析,来体验利用计算机程序解决决问题的过程:
分析问题,设计解决问题的步骤序列,并通过运行程序来进一步了解计算机处理问题的方法)
引入课题,组织教学,让学生集中注意力到学习内容上。
呈现问题
“韩信点兵,多多益善”这句话大家都知道,那究竟这“多多”的士兵共有多少呢?
韩信说:
“如果每3个人编为一队,那最后剩下1个人;
如果每5个人编为一队,那最后剩下2个人;
如果每7个人编为一队,最后也剩下2个人。
请你自己算一个,我有多少士兵?
”(假设士兵总数不超过100人)
面向问题体验编程过程
(1)分析问题:
◇数学解法
设士兵有S名。
S除以3,5,7所得的商分别为A,B,C,那么由题意,有
3A+1=S
5B+2=S
7C+2=S
这是一个“未知数的个数(这里有S,A,B,C共4个)多于方程的个数(这里有3个)”的方程组。
有无限多个正整数解(取S=37,37+105,37+105×
2,…代入方程组,就可以得到相应的各组A,B,C的值)
◇古代解法
在我国古代的数学著作中,对这个问题也做了非常详细的研究,并总结了解题的方法:
三人同行七十(70)稀,
五树梅花廿一(21)枝,
七子团圆正半月(15),
余百零五(105)便得知
意思是说,把除以3、5、7所得的余数,分别乘以70、21、15,加起来的和再减去105的倍数,所得的差小于105时就是我们所求的这个数了。
(2)设计算法:
所谓算法,就是解决问题的方法和步骤。
“韩信点兵”的算法可以描述为:
用S表示士兵数目,则问题可以表达为找出同时满足
SMOD3=1
SMOD5=2
SMOD7=2
的整数来。
设士兵数目为S,令S为100(最大数),开始搜索
判断:
如果S除以3余1、S除以5余2、S除以7余2同时成立,那么当前的数S就是解,程序结束;
否则,S减1,转②重复这个判断过程。
(3)编写程序:
对应上述算法,套用合适的结构、语句编写程序。
(4)调试运行:
说明:
以上“(3)编写程序、(4)调试运行”两步由于实际条件的限制,由教师完成,学生只需复制程序、运行程序,检测结果即可。
(5)检测结果:
运行程序,用古代算法和手工算法来验证运行结果。
1、引导学生分析问题,找出解决问题的方法,进而引导向“列出解决问题的步骤”,即算法设计环节。
2、经过讨论、提示、归纳,学生一般可以总结出不太规范的“解决问题的步骤”,此时教师在充分肯定学生答案的基础上再进行小结提高,给出规范的算法流程。
让学生体验从问题到算法之间的转化过程。
这也是编程的最重要的环节。
3、在调试环节设计出错的测试数据,让学生理解“程序做得越多,那么程序会做的也越多;
程序员想得越周到,程序也就越健壮”。
小结
用计算机程序来解决问题的一般步骤是:
分析问题→设计算法→编写程序→调试运行→检测结果
拓展
用程序解决问题和用手工解决问题的对比
将本题拓展:
(1)除数不再是3,5,7,而是13,15,17?
(2)数据规模改得更大一些,例如,1000以内的最大数,10000以内的最大数,10万以内的最大数?
则三种解法依然能起作用的只有编程序了。
设计大规模的测试数据,让学生体验计算机的高速运算能力,这也是程序解决问题的一个技术基础;
总结
利用计算机程序解决问题更方便,自动化程度高;
更有普遍性。
计算机程序能给我们的学习、生活带来很多的方便,很多的乐趣;
计算机编程的学习需要专心的训练,乐于钻研的精神,同时,学习编程也会为我们带来发现的惊喜和成功的喜悦。
更进一步的学习可以选修《算法与程序设计模块》。
韩信点兵简单版界面 韩信点兵完整版界面
附:
《用计算机程序解决问题》课堂教学实录
(第二课时)
教学资源:
1、文本资源:
韩信点兵题目描述、韩信点兵古代解法、韩信点兵数学解法、韩信点兵算法、韩信点兵程序语句;
2、程序资源:
韩信点兵程序简单版,韩信点兵程序完整版;
教学环境:
网络教室(配有广播系统,液晶投影)
教学过程:
第一阶段:
师:
前面的课中我们通过实例了解了VB的编程环境。
简单了解控件、属性、程序的概念;
同时,也知道了程序的运行过程。
(教师启动广播系统,边讲边操作,演示简单例子:
通过命令按钮的控制,隐藏图片)
这是我们之前的课中所了解到的:
程序的运行过程。
这只是利用计算机程序解决问题整个过程中的一个环节。
当我们面对一个问题时,到最后用程序解决这个问题,这中间要经过哪些环节?
我们经常说,只要是可解的问题,总是可以经过有限的步骤来解决的。
那这些步骤是如何得到的?
下面我们同样通过实例来认识这个过程。
第二阶段:
讨论释疑
(广播“韩信点兵题目描述”:
“韩信点兵,多多益善”这句话大家都知道,那究竟这“多多”的士兵共有多少呢?
”)
“韩信点兵”大家可能都接触过,在这个问题中,韩信有多少士兵呢?
生:
(讨论,猜测,验证。
)
37人。
好,有同学说是37,那为什么呢?
请这位同学帮我们大家解释。
因为除以5的余数是2,那么士兵数的末位数只是能2或7,除以7的余数也是2,即是说,这个数是5和7的公倍数再加2,最小的公倍数是35,加2即是37,再用“除以3余1”进行检测,也对,所以,我确定是37。
非常好。
这位同学从自己的知识、经验出发,通过猜测、验证得出了这个答案。
实际上,这是个非常出名的数学问题,它有很多的表达方式。
比较著名的是“物不知其数”,大家只要输入“物不知其数”在网上进行搜索,可以找到很多相关的内容。
我国古代的数学家们花了很大力气研究这个问题,并找到了它的解法。
(广播“韩信点兵古代解法”。
)现在我们验证一下,就刚刚问题的数据,用古代解法也能得出37这个解。
(验证。
古代解法虽然很方便,凭经验我们也能得到一些解。
如果用现在的数学方法来解,我们用什么方法?
列方程求解。
好。
设士兵数目为S,我们可以列出如下方程组:
(广播“韩信点兵数学解法”。
)我们这个方程组一共有3个方程,四个末知数,这是?
不定方程。
不定方程有没有解?
有解,但无定解。
是。
那如果我为这个不定方程加上限制条件,士兵的数目在100以内;
同时,这个题目里还有另一个限制条件,是什么?
士兵数目一定是整数,且大于0。
在加了这样的限制条件后,这个不定方程就可能有定解了。
那我们可以通过什么方法来得到这个解?
在S的取值范围内一个一个检测、判断。
我们可以通过逐个检测也就是搜索的方法来得到题目的解。
搜索的方法也是利用计算机程序解决问题的常用方法之一。
接下来,我们来讨论利用计算机程序如何来解我们的这道题。
大家都知道,计算机所会做的一切,实际上都需要程序员“教”给它;
现在,请大家利用广播系统的“消息功能”,把大家准备教给计算机的解题步骤写出来。
(结束广播状态。
(巡视。
(思考。
写步骤。
发消息)
(收集学生的典型解法:
从消息管理器中复制解法,放大字体,以便讨论)
现在我们来看一下,大家提出来的都有些什么解题步骤:
(液晶投影屏幕显示学生解题步骤)。
我们请写出步骤的同学说明一下:
在S的取值范围内,判断S除以3、5、7的余数是否刚好等于1、2、2,再让S加1,再判断。
那么,什么时候就可判断S的值就是解呢?
S除以3、5、7的余数符合要求时。
当S满足这三个条件且S在取值范围内时,S的值就是我们所求的解。
现在我们来看一下规范的算法表达:
(广播“韩信点兵算法”)
(阅读算法)
我们先让S取100,然后判断S是否符合要求,如果符合要求,则输出结果,结束程序;
否则,S减1,重复这个判断过程。
到现在为止,我们经历了分析问题、设计算法两个环节,接下来,我们要考虑如何把算法转为程序。
我们知道,算法是解决问题的方法和步骤。
设计算法是解决问题过程中关键的一步;
算法设计完成后,用任何一种程序设计语言来编写程序都是可以的。
因为大家还没有完整地学过程序设计语言,编程的部分由老师完成。
现在我们先简单解释语句的含义。
(广播“韩信点兵程序简单版”)
(阅读程序)
前面六个句子非常简单,是用来?
记住三组除数和余数。
对,如果我们要改变余数和除数,就在相应的句子上进行修改。
接着,我们用循环结构控制判断的过程,一发现S值符合要求,则将结果输出到文本框中(text1.text="
韩信一共有"
&
Str(s)&
"
名士兵"
),“S赋值为负1”是用来结束循环,结束程序的。
现在请大家打开VB,结合我们之前学过的文本框、命令按钮,编程调试,解决这个“韩信点兵”问题。
要求:
点击命令按钮开始运算,并把结果送到文本框中。
老师把程序发给大家。
第三阶段:
动手操作
(结束广播状态,利用广播系统“课堂讨论”功能发送程序)
(启动VB,设置控件,复制程序,试运行,调试程序)
(循视辅导。
现在能够运行程序并得到答案的同学举手。
(部分完成任务同学举手)
(统计人数)
大概有六分之一的同学可以得到答案。
现在,请暂时还不能正确运行的同学抓紧;
完成的同学试一试另外一组数据:
余数不变还是1、2、2,除数分别改为2、3、4。
(修改程序,调试程序)
答案是多少?
没有答案。
为什么没有答案?
数据本身出错:
不可能有一个数除以2余1,除以4余2的。
象这种出错的情况我们可以分析出来,可是我们的程序并不能给出提示。
这说明什么问题?
计算机所会做的任何工作,都是程序教给它的;
程序员考虑得越周到,程序就越能干。
所以,编程之前,能够考虑得更周全,调试就更容易,程序的适应能力也更强。
现在程序能够正常运行、第一组数据能通过的同学请举手。
(大部分举手)
好,那么现在我们再试另一组测试数据:
除数为为3,5,7,余数全为0。
(改程序,运行程序,查看结果)
结果是多少?
也没有结果。
不可能吧?
这结果非常明显是?
是105。
这么容易的测试数据,计算机为什么会算不出来呢?
我们程序里限定了解的最大值是100,而这个解是105,超出范围了。
这说明计算机所做的事情,都是程序事先设定的。
它按照程序所给出的步骤,一步步执行,不懂得变通,也没有简便方法,这一点和人解决问题有些不同。
这样看起来好象计算机解题时比较笨,那下面我们再测试另一组数据:
除数和余数仍然是3、5、7和1、2、2,可是把S的范围改为1000,10000,1000000。
试一试。
(改数据,试运行,对照结果)
(广播“韩信点兵完整版”范例,在“士兵总数”框中输入1000000,点击“点点看”按钮)
我们看到,数据到了一百万时,程序还是很快地给出答案。
这是因为计算机的什么特点?
运算速度快。
对,高速运算使得计算机能够按“看起来比较笨”的方法来有效地解决问题。
这也是它的一个特点。
第四阶段:
小结拓展
到现在,我们经历了从问题到最终用程序解决问题的整个过程。
当拿到问题时,我们从分析问题开始,接着设计算法,也就是列出解题的步骤,先做什么,再做什么,怎么做;
然后编写程序,调试程序,检测结果;
过程中有些环节可能会反复。
这个过程也是我们利用计算机程序解决问题的一般过程。
刚刚我们在调试检测修改数据时,总是直接修改程序语句;
而一般参数的修改应该在程序的界面上就能完成,就象我们这个范例一样。
同时,在设计程序时,也应尽可能多地考虑可能出现的情况,我们事先考虑得更多,程序的适应性才更强。
例如出错的数据(输入出错测试数据,演示出错处理),我们的程序也能够应付。
接下来,大家对自己的程序进行改造,让它也能处理各种不同的数据,并且也可以在界面上改变参数,让它变得更“健壮”。
老师把这部分的程序也发给大家。
能够自己改的同学试着自己修改程序,需要参考的同学也可以查看老师的例子。
(结束广播,通过“课堂讨论”发程序)
(改造程序)
(巡视辅导,发现有部分同学完成)
现在我们请同学演示改造过程。
(通过广播系统将学生桌面投影在大屏幕)
(操作改造过程;
部分同学观察,部分同学自行操作)
做得很好。
今天的课让我们大家体验了用程序解决问题的全过程。
程序设计是一门严谨的学问,需要专心的训练,乐于钻研的精神。
更进一步的学习大家可以选修《算法与程序设计》模块,将有更详细的介绍。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 411第一节 用计算机程序解决问题 411 第一节 用计 程序 解决问题