动态演示(共9篇)
动态演示 篇1
摘要:冒泡算法传统的教学方法教师往往用PPT及图解的方法反复讲述冒泡算法的思想, 但学生仍然很难理解冒泡算法, 为此我运用VB6.0开发了一个动态演示程序, 通过对冒泡算法的动态执行过程和动态演示, 使学生能够直观形象地掌握冒泡算法的本质, 我们把这种动态演示程序运用于教学, 取得了良好的教学效果。
关键词:程序,循环,冒泡排序,算法
一、引言
程序设计是大学工科学生一门必修课, 排序算法是计算机数据处理中常用的一种算法, 因此在程序设计教学中占据非常重要的地位, 尤其是冒泡排序算法非常经典, 学生在学习程序设计课程时冒泡排序是程序设计课程必学的一个重要算法。冒泡的思想学生基本上都能理解, 但是到程序设计的时候, 学生就无从入手, 学生在学习冒泡排序时, 总是觉得非常难学懂, 有畏惧心理, 总觉得学不好, 认为一维组数怎么会用到二重循环, 用一重循环编程不就可以了吗;如何教会学生学会排序算法, 一直引起教师们的注意和思考, 我们也经常讨论怎样的讲课方法, 怎样的教学方法才能使得学生轻松学会程序设计, 特别是学习一些经典算法, 使学生们学习起来不觉得困难;我们通过多年的教学实践, 总结出冒泡排序教学的有效方法, 自己设计一个冒泡排序的动态演示算法, 让学生一步一步对照冒泡算法, 程序执行到哪一步, 程序发生了什么变化, 变量的存储单元的值有发生哪些变化, 使学生一目了然算法的基本执行情况。
二、冒泡排序设计的基本框架
在教学中, 我校以学生为中心, 学生是教学的主体, 按照培养目标, 我们以学生的认知规律和学习特点安排教学;从学生的实际情况出发, 实施教学的每一个环节, 调动学生学习的积极性, 引导学生主动学习、激发学生的学习兴趣。冒泡法排序就是首先调动学生的积极性, 活跃课堂, 强调课堂师生互动, 才能使学生逐步理解。
现在冒泡算法讲解一般采用PPT的演示[1], 也有一些用Flash等演示, 这些方法致命的缺点, 就是不能动态地反应程序在计算机内部执行的情况, [2][3]文中的动态还不能反映存储的动态变化。我们设计的算法从头到尾, 从数据到存储的变化, 就是动态变化, 只要输入的数据不一样, 程序执行的过程就不一样, 完全是动态执行和存储动态变化。示例如下:
冒泡排序的动态算法演示, 有助于学生理解算法, 以下是冒泡排序的动态算法演示的框架结构的基本步骤。
1. 手动排序, 单击鼠标一步一步执行, 让学生看得明明白白。
2. 自动排序, 主要是演示, 让计算机自动一步一步执行冒泡排序的算法, 并且可以设定每一步显示时间的秒数。
3. 手动和自动之间任意切换。
4. 每执行一步变量发生变化, 立刻在文本框中显示出来。
5. 程序的每一步执行过程都以高亮度把源程序显示, 明确已经程序执行到那一步。
6. 每执行一步, 程序在做什么事情, 左边的数组流程图和右边的程序一一对应, 便于学生对应理解。
7. 冒泡算法的基本步骤和设计思想显示。
三、冒泡排序动态演示的实现过程
冒泡排序动态演示的设计, 重要的是要设计2个定时器, 定时器的目的主要是为了程序执行时, 什么时候单步执行, 什么时候自动执行, 什么时候停止程序运行, 当激活定时器时, 程序就自动执行, 当定时器设为不可用时, 程序就自动停止执行。
开始把冒泡算法的整个源程序通过加载在窗体的右上角的列表框中显示出来, 然后在窗体的左边显示n个文本框和文本框对应的标签, 文本框就是放数组, 标签就是数组的编号, 目的为了显示排序的过程和结果。窗体下面显示冒泡排序的设计思想, 中间显示存储单元的变化情况, 以及命令按钮。
刚开始定时器1和2都设为不可用, 把冒泡排序的程序放在时钟Timer1_Timer () 和Timer2_Timer () 中, 用多分段语句把冒泡算法放在各个多分段语句中, 其中设一个计数器, 用于多分段语句的执行次序, 当单击手动按钮时, 就是调用定时器1, 由于没有激活定时器1, 每调用计时器一次, 就像普通的过程调用, 定时器就计数器所对应的语句执行一次;当在Timer1_Timer () 中执行到内循环时, 调用定时器2, Timer2_Timer () 主要是为了执行数组的排序过程, 以及数据的下沉和上浮, 同时对数组中数据的颜色显示, 以及存储单元的变化, 那么就是单步执行, 我们也称手动操作。
如果是自动演示, 只要在命令按钮中把定时器1设为“true”, 并且设置每执行一步的秒数, 程序就会在定时器中反复执行, 当要执行到内循环时, 停止定时器1, 即把定时器1设为“false”, 定时器2设为“true”, 同样定时器2执行完毕, 又把定时器1设为“true”, 定时器2设为“false”, 定时器1有启动了。
排序算法设计的引伸教学的思考, 动态冒泡排序算法可以延伸到程序设计中任何算法和程序, 同样可以延伸到其它学科的动态演示[5]。
四、总结
由于冒泡排序相对比较难学, 我们自己编制了一个“基于动态的冒泡排序自学习演示算法”, 结合讲课方法, 边讲解边演示, 也可以帮助学生在平时自己复习和学习, 这种程序动态的变化, 包括存储单元值的动态变化, 使学生一目了然看清程序每一个语句的执行情况和存储单元变化的情况, 更有利于学生快速地掌握选择法排序的算法, 不管在何时何地, 只要有电脑的地方都可以方便地学习。
教学方法探讨无止境, 这种教学方法实际上和选择法排序算法有很多相似之处, 只要学生学会了冒泡排序算法的基本思想, 很容易推广到选择法排序算法和其它排序算法, 学生也比较容易学会;如果有条件的学校, 编制一些其它排序的算法, 然后让学生编一个其它排序的算法, 教师给出一些提示, 要求学生编完程序以后和选择法排序和冒泡排序作一些比较, 那个算法更优, 对以后的学习学生的编程兴趣和积极性会更高, 可以充分调动学生学习的主动性, 激发了学生学习程序设计的热情和兴趣, 同时也培养了学生的思考能力和解决问题的能力, 做到了事倍功半的效果。
我们不仅编写了C程序设计的冒泡算法, 而且还设计了C和VB的一整套动态演示算法, 包括选择法排序、if…else、switch、for、while、do…while、求素数、求最大值等一系列动态演示算法, 以后准备设计成一个CS结构的C程序设计和BS结构的动态演示系统。这些算法只要学生肯学, 一定能让学生会学会程序设计, 除非学生不学。本文交流的目的就是想达到一个抛砖引玉的作用, 大家共同来探讨程序设计的教学方法, 提高教学质量。
参考文献
[1]杜素芳.“排序算法的实现”教学探索[J].福建电脑, 2011, (2) :213-214.
[2]胡晓芳, 李欣.基于Flash制作的算法演示动画的设计[J].中国教育技术装备, 2009, (8) , 45-47.
[3]冯娜, 孙义欣.基于冒泡法排序的动态演示程序[J].电脑知识与技术, 2009, 5 (5) :1175-1178.
[4]刘娜, 佟冶.归并排序算法实现的理解与教学过程[J].计算机教育, 2007, (9) :66-68.
[5]李春辉, 李军民.递归算法的动态演示[J].电脑开发与应用, 2008, 21 (12) :5-7.
动态演示 篇2
在小学教学中让学生掌握汉字的笔顺很重要,用powerpoint在ppt中动态展示更直观一些。在网络中大家都知道powerpoint2003的做法,其实大同小异,拿出来跟大家分享一下。做法如下:
打开powerpoint2010新建一张空白的幻灯片,插入艺术字——右击鼠标选择楷体字——利用增大字号按钮将字体调整字体的大小。
然后全部选中——剪切字体——单击粘贴——选择性粘贴——选择图片(windows元文件)——单击图片格式——选择颜色——设置透明色——鼠标成笔状点击字体,就得到一个空心透明字体。接下来选中字体——插入曲线按笔画先后勾出每一个笔画的轮廓(类似取消组合),然后为每个笔画设置线条和轮廓的颜色。最后按笔
顺
添
加
动
画
——
擦
除
。用曲线勾勒笔画轮廓,利用编辑形状调整笔画 为笔画加入动画效果。
动态演示 篇3
【关键词】 EXCEL 物理 数据处理
【中图分类号】 G633.7 【文献标识码】 A 【文章编号】 1992-7711(2016)02-029-010
物理尤其是高中物理很大一部分内容研究的是一个物理量与其它物理量之间的量的关系,而且常见的问题都存在着函数表达式,要研究出这些量与量之间的关系,我们借助了许多计算机语言来解决,如:C语言、C++,Mathematics、Matlab等,但这些需要一定的编程基础。随着信息技术的发展,一般的学生包括高中生也已经非常熟悉Microsoft office软件,尤其是它包含的Word、Excel、PowerPoint三个文件。Excel2007是我们常用的一个功能强大的电子表格,可以帮我们处理数据,画出图像,以前也有很多文章介绍利用Excel来画出物理图像来解决问题,但介绍画动态图的较少。本文就利用Excel画静态图和动态图作比较来探讨Excel在物理中的应用。
1.利用Excel处理静态图
利用Excel的强大的图形处理,比其它的处理图像的软件都来得比较简单,这里我们作为研究的例子,来画出具有一定初速度为12m/s的竖直上抛运动的位移——时间图,重力加速度取9.8m/s2,下面我们利用excel的数据填充功能在Excel表格中填入竖直上抛运动的位移值:
分析与操作步骤:
首先,在打开的工作表的第一、二列输入数据,A1单元格输入时间(秒),A2、A3两单元格分别输入0、0.1,然后选择B1、C1,按住右下角的句柄往下拖直到A20,即获得19个时间数据,间隔为0.15s;B1单元格输入位移(米),B2单元格输入“=12*A2-0.5*9.8*(A2)^2”后回车,然后往下拖动填充句柄直到B20.数据填充完毕。
选中第一、二列,选择“插入→图表→散点图→带平滑线的散点图→完成”,再适当单击图像在图表工具中单击布局,在标签中坐标轴、图表标题、图例并进行格式化设置,作出的散点图如图1。
通过此图我们很容易获得对竖直上抛运动的特点,如到达最高位置的时间和回到原位置的时间等,加深了对物理概念及过程的理解。
2. 利用Excel处理动态图
静态图能反映所研究的问题,但是如果我们想改变条件,来比较图像的变化,对于静态图就不适合了,这里我们采用Excel的控件功能,设置滚动条控件来控制需要变化的量的值,通过设置滚动条的单元格链接,随着值的变化,Excel表格中的数据也会跟着变化,同时带动了图的变化。下面我们任然用竖直上抛运动来说明,通过改变初速度和加速度来改变图像。
分析与操作步骤:
首先,按照做静态图一样先做好时间、位移列数据,C1输入初速度(,m/s)、D1输入加速度(,m/s2)再建立两个控制初速度和加速度的控件:点击Excel的左上角的Office按钮,在右下角点击Excel选项,勾选“开发工具”选项卡,再在菜单栏上点击开发工具→控件/插入→滚动条(窗体控件),待鼠标变成“+”形时,在空白编辑区画出初速度滚动条,设置滚动条的格式:右击滚动条→设置控件格式→控制,当前值设为12,最小值设为0,最大值为20,步长为1,单元格链接设为$C$2点确定。对于建立加速度滚动条控件一样,为了得到负加速度,将单元格链接设为$E$2,然后,在D2单元格中输入“=$E$2-10”,使得加速度可以从-10m/s2到10m/s2之间变化。
同建立静态图一样建立作出的散点图,便于调节,并将滚动条拖放到图像区域,这样一个动态的图就建好了,只要拖动滚动条,图像就会随着不同的初速度和不同的加速度而变化。
3.结论
通过演示,动态图像要比静态图理解问题更方便,更直接,而且,现在的基础教育改革要求大力推进信息技术在教学过程中的普遍应用,利用信息技术来画出原来不好处理的图像教学,不能演示的实验也可以模拟出来,也可以利用Excel的数据处理进行函数拟合,得出通过实验得到的数据的函数表达式,深化物理问题的理解。
[ 参 考 文 献 ]
[1] 蒋加伏,沈岳.大学计算机[M].北京邮电大学出版社,2013(4版).
[2] 李传国,余雯,丁浩等. EXCEL在物理实验数据处理中的应用一例[J].物理通报,2015(12).
[3] 李佐印. Excel在高中物理教学中的应用[J].物理通报,2009(1):62-63.
[4] 徐清洪.Microsoft Excel软件辅助物理实验教学[J].物理通报,2012(6):89-91.
[5] 仇明.Excel在物理学作图中的应用[J].中学物理教学参考,2003(3).
按成绩排名次算法及动态演示程序 篇4
排序是计算机程序设计中一项基本的操作, 在实际应用中, 有很多情况下需要对数据按照某种方式进行排序后才能达到某种要求, 因此, 学习和研究各种排序方法是计算机工作者的重要课题之一。
比较成熟的排序算法有很多, 比如冒泡排序、选择排序、插入排序、快速排序等, 利用这些排序算法都能够使一组数据序列按照某个关键字排成需要的顺序。但这些经典的排序算法在对数据序列排序时, 都要改变数据的原始顺序。也就是说, 在一般情况下, 排序问题的输入是n个数a1, a2, a3, ……, an的一个序列, 排序是按照某个关键字对初始序列重新排序, 产生初始输入序列一个重新排列:a11, a21, a31, ……, an1, 使得a11
2 按学生成绩排名次的算法
假设要处理的数据存放在A数组中, 为了算法实现的需要, 定义A数组为A[2][n], 其中A[0][0..n-1]存放需要确定名次的数据, A[1][0..n-1]存放排序后各数据对应的名次, A[2][0..n-1]为标志, 指示该数据的名次是否已经确定。首先假定所有数据的名次都是1, 然后利用冒泡的思想一一确定每个数据对应的名次, 即从第i个数据开始与其后的第j (j=i+1, i+2, ......, n-1) 个数据进行一一比较, 若当前数据A[0][i]>A[0][j], 则第j个数据对应的名次加1, 若当前数据A[0][i]
下面给出具体的算法描述:
输入:输入数组A[0..2][0..n-1], 其中A[0][0..n-1中书需要排序的数据, A[1][0..n-1]为排序后各数据对应的名次A[2][0..n-1]中为名次是否确定的标志。
输出:确定了名次的数组A[0..1][0..n-1]
3 动态演示程序
在.NET开发环境中生成一个Windows应用程序, 在窗体的界面上放置一个面板控件Panel, 作为展示动态排序过程的窗口, 添加3个Timer控件, 适当设置Timer控件的Interval属性, 分别用来代替算法中的3个循环, 达到动态演示的效果。程序中的关键代码如下:
4 界面效果
该程序运行的界面效果如图1所示, 已经确定好的名次和还没有确定的名以不同的颜色进行了区分, 非常直观。
5 结语
给出按成绩进行排名次的算法并利用C#语言编程实现了该算法的动态演示, 对于一些特定的问题, 原有的经典算法不一定适合, 在遇到某些特定问题时, 可以根据具体问题进行具体分析, 在一些成熟算法的基础上针对具体问题进行思考, 可能会出现一些最初没有想到的效果。
摘要:实际应用中经常需要按照成绩进行排名次, 在排名次时, 很多情况下都要求确定数据对应的名次, 但又不要求改变数据的原始顺序。采用冒泡排序的基本思想, 给出了一个数据次序不变确定名次的有效算法, 并利用C#语言编程对该算法的实现进行了动态演示。
关键词:名次,排序,冒泡,Timer控件
参考文献
[1]谭浩强.C语言程序设计.北京:清华大学出版社, 2000.
[2]严蔚敏, 吴伟民.数据结构 (C语言版) [M].北京:清华大学出版社, 1997.
[3]M.H.Alsuwaiyel著, 吴伟, 方世昌, 等译.算法设计技巧与分析.北京:电子工业出版社, 2004.
[4]尹立宏.Visual C#.NET应用编程150例[M].北京:电子工业出版社, 2003.
按位拆分排序算法的动态演示程序 篇5
排序是计算机科学中最重要的研究问题之一[1]。其基本的排序问题是重排一个给定的数据项集,使它按递增(或递减)排列,数据项可以是具有线性顺序的任意对象[2]。传统的排序算法如冒泡排序算法、选择排序算法等,其运算效率不高,且其数据对象的适应范围受到限制[2]。近年来,许多专家学者提出了一些高效的排序算法[1,2,3,4,5]如SIS[1]、Byte-快速排序[3]、基于统计的排序[4]、比特位拆分索引排序算法[5]等。按位拆分快速排序算法作为目前最好的快速排序算法之一,其算法的思想和实现常常难以理解。设计一个好的动态演示过程,对人们快速理解按位拆分排序算法的运行很有帮助。
2 按位拆分排序算法
按位拆分的快速排序算法是首先根据数据中的比特对数据进行划分整理,将待排序列的每个数拆分成m个k位。然后按照数据由高到低每次截取k位的顺序,将待排序列分成个子序列,高k位相同的数据安排在同一个子序列中,各子序列的数据遵循段间有序、段内无序的规则。然后对各子序列的数据分别进行判断,如果排序结果有重复且还未到最底k位,则再对次高k位组成的子序列进行排序,持续上述的排序整理工作,直到排序结果无重复或子序列排序结束时,排序工作结束。整个排序的过程就是一个递归的排序过程。
用C++实现的按位拆分排序主要代码如下:
3 演示程序界面与控件
3.1 运行界面
程序运行时的界面如图1所示。
由于系统统计排序时间时采用的多线程,而动态演示时不能使用多线程,因为必需按顺序排列,所以动态演示时排序均在一个线程里面完成。因此程序里面有两个排序的函数,MultiThreadSort用于实际排序的时间统计,SingleThreadSort则用于动态演示时的排序演示。
在SingleThreadSort中,创建独立于界面线程的一个线程,采用异步通信方式与界面线程进行通信,将排序中的每一个步骤发送给界面线程,并且每个步骤完成时中间设置一个暂停的时间,以便用户可以观察到排序的每个过程,然后界面线程根据数据显示当前排序状态。
3.2 数据控件
选择数据格式控件使用的是CComboBox控件,如图2所示,用户可对排序的3种数据类型进行选择。选择数据数目控件使用的是CEdit控件和CSpinButtonCtrl控件的组合,如图3所示,用户可直接输入待排序数据的数目,也可以使用上下箭头进行数据的加减。
接下来选择数据数目4个控件使用的是CButton控件,如图4所示。
点击生成数据控件后生成待排序的原始数据,并且显示在原始数据表中,其生成数据采用的是随机生成法。点击重置控件后清空当前的所有数据。点击开始排序控件后即对当前产生的数据进行排序,此时将出现如图5所示的对话框。
此排序时间是使用MultiThreadSort进行排序得到的结果(即多线程排序),此时点击“是(Y)”按钮即可进行动态演示过程。如图6所示,使用的是CComboBox控件,显示的是待排序数据的每个字节上的二进制值,且将原数据显示在右边的中间过程及结果框里面。当所有数据全部排列完毕,此时将出现如下对话框,如图7所示。
点击确定后,即开始在右边的中间过程及结果框里面归并所有数据的排列结果,如图8所示。
此时使用的是CListBox控件,左边的用来显示点击生成数据后的原始数据。右边的用来显示排序过程中的中间结果及排序完成后归并的最终结果。最后,点击退出控件,将退出整个演示程序。
4 动态演示程序
动态演示程序的主要代码如下:
5 结语
在介绍按位拆分排序算法的基础上,采用C++编写了该算法的动态演示程序,并着重讲述了演示程序界面的控件功能和演示程序的工作原理。该演示程序图形用户界面十分直观、形象,有助于初学程序设计者更好地理解算法思想和具体实现过程,在实际的教学中收到了良好的效果。
摘要:按位拆分排序是一种新的排序算法。为了使学生更好地理解算法思想,利用C++功能强大的图形界面功能,设计实现了按位拆分排序算法的动态演示程序,其图形用户界面十分直观形象,有助于初学编程者更好地理解这一排序算法的原理和具体的实现过程。
关键词:按位拆分排序,动态演示程序,图形用户界面
参考文献
[1]Yingxu Wang.A New Sort Algorithm:Self-Indexed Sort[J].Communications of ACM SIGPALN,1996:28-36.
[2]霍红卫,许进.快速排序算法研究[J].微电子学与计算机,2002,6:6-9.
[3]朱红,陈清华,刘国发.一种Byte-快速排序算法研究[J].计算机工程,2002,28(12):39-57.
[4]马占欣,凌凤彩.一种基于统计的排序算法[J].小型微型计算机系统,2002,23(11):1403-1405.
[5]黄兴.比特位拆分索引排序算法研究[D].北京:清华大学,2007.
动态演示 篇6
目前, 一些学校的教师在讲解机械原理课程时, 利用教学模型、展柜、录像带等形式替代了传统的黑板、挂图等教学工具, 达到了一定的教学效果。但是这仍然存在一些缺陷。一方面, 教学模型、教学展柜等工具, 虽然可以动, 但教师没法一边动, 一边做详尽的分析;另一方面, 由于课时的限制, 机械原理课程中许多基本理论和概念很难在课堂上反复讲解, 课后学生复习时, 因为没有对应的工具, 学习效果会大打折扣。而软件的应用克服了上述的各种问题。
利用绘图软件等制作出一些动态演示课件, 不仅可以控制动画的播放时间, 而且可以实现在任意位置的停留, 以便做进一步的讲解。同时, 将课件拷贝给学生, 学生在复习的时候可以根据自己的兴趣反复演示。通过这样的教学方法可使得教学形象生动, 不仅提高学生的学习兴趣, 也能使学生们加深对所学内容的理解, 提高学习效率。下面具体举两个例子来阐述动态演示教学相对于传统教学的优势。
例如, 在平面四杆机构的演化形式教学中, “通过改变运动副的尺寸得到不同的机构”这部分内容, 由于涉及运动副尺寸的变化, 很难通过挂图、教学模型、教学展柜来体现“变化”这一过程。而通过动态演示的过程 (见图1) , 则可以轻松实现。图中, 通过动态变化的效果, 充分展示出通过改变运动副B的尺寸大小, 实现了由“曲柄滑块机构”向“偏心轮机构”演变的过程。
又如, 介绍“渐开线的形成”的概念中提到:当一直线BK沿圆周做纯滚动时, 直线上任意点K的轨迹AK就是该圆的渐开线。此处如果利用模型, 学生很难看清楚任意点K所扫过的轨迹的过程。采用动态演示的方法 (见图2) , 则可清晰地看到从A—K3—K2—K1—K的演变过程, 从而加深对渐开线的印象。
动态演示教学不仅能提高学生的学习兴趣, 而且可以大大减少教师的板书量。如果在应用过程中能够做到以下这四点, 更可以大大提高整个教学质量。
第一, 增加信息量。传统教学需要大量的板书、绘制准确的图形, 这都需要耗费大量的时间, 难免会减少教师真正的授课时间。通过动态演示教学模式, 可减少上述工作的时间, 这就给教师增加了课堂容量。教师要充分利用这空余出来的时间, 多讲解一些实例, 使学生更容易理解所学的知识。
第二, 增强互动环节。现在许多教师开始注重教学过程中与学生互动的环节, 但有些知识难点往往在整个变化的过程中间 (如上面所提的“通过改变运动副的尺寸得到不同的机构”) , 而传统的教学模式在这里很难达到互动的效果。动态演示的一个优点在于所要演示的动画均能在任意所需的位置做停留。教师应充分利用这一特点在“运动副变大”这一过程中停留, 达到互动的效果。
第三, 增强学生的主观能动性。课堂上展示给学生的是制作完成后的动态演示效果, 有的学生对于制作软件及制作过程较为感兴趣。教学过程中, 可以充分抓住这部分学生的心理, 将有兴趣的同学召集起来, 让其自己制作动画并拿到课堂上讲解。这样做, 一方面可以提高学生的学习效果, 另一方面, 也培养了他们的创新能力和综合素质。
第四, 反复演练。动态演示的另一个优点在于可以反复演练。由于课时的限制, 教师无法在课堂上对某个问题反复进行讲解。这就要求学生课后加强复习。动态演示能够很好地呈现整个课堂的教学过程, 使同学们在复习的时候事半功倍。
随着时代的发展, 课程教学的改革变得不可或缺。动态演示是计算机软件与传统教学的有机结合, 它的引入使得机械原理课程教学更加形象、生动, 极大地提高了学生的学习兴趣, 充分调动了学生的学习积极性。
摘要:本文通过介绍机械原理课程教学中对动态演示的应用和探索, 提出了在机械原理课程教学中引入动态演示教学的一些看法和体会。
关键词:机械原理,动态演示,课程改革
参考文献
动态演示 篇7
“查找”操作是计算机中的一项基本操作。所谓“查找”即为在一个含有众多元素或记录的查找表中找出某个“特定”的数据元素或记录。
顺序查找方法是一种最基本的查找算法,在一般的计算机语言程序设计课和数据结构课程中都有介绍。顺序查找方法一般用于顺序表表示的静态查找表,其中的元素或记录是无序的。其查找过程为:从表中的最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查的记录并返回所查的记录在查找表中的位置;反之,若直至第一个记录,其关键字和给定值比较都不相等,则表明表中没有所查找的记录,查找不成功,返回0。此查找过程可用下面的算法描述:
算法:Sequential_search(int A[0..n],int x)
输入:有n个元素的数组A[0..n]和给定的特定值x。
输出:如果x=A[j],则输出j;否则输出0。
过程:A[0]=x;//在最低下标处设置“哨兵”
for j=A.Length to 0 step-1//从后向前查找
if(A[j]==x)
return j;
//找到返回x在数组中的位置,找不到时返回0
endfor
2 动态演示程序的实现
打开Visual Studio 2005,新建一个Visual C#Windows应用程序项目,项目名称为“SearchData”,将默认窗体名称Form1改为SearchFormDemo,在窗体上添加一个Panel控件,作为动态演示顺序查找过程的窗口,添加两个Timer控件,设置其Interval属性为1000,用来代替算法中的循环和查找比较过程,用Timer控件的定时特点来达到动态演示的效果。程序运行界面如图1所示。
2.1 生成初始数据并安排界面
当单击“生成数据”按钮时,首先将演示窗口清空,然后随机产生查找表中的数据以及要在其中查找的数据,并将这些数据用动态生成的Label控件展示在界面上,同时设置监视哨。为了达到明显的动态效果,对Label控件的前景色和背景色都进行了设置。
2.2 开始查找
当单击“开始查找”按钮时,首先将指针定位在最后一个记录上,使查找从最后一个记录开始。同时启动定时器以开始查找过程,此时需禁用“开始查找”按钮。
2.3 控制查找过程的定时功能
第一个定时器用来控制循环操作,当查找还没有结束时,继续查找,否则结束查找。
2.4 控制比较操作的定时功能
通过定时器控件的定时功能以及Label控件颜色的变换实现比较操作的动态演示。
3 结语
算法一般是比较抽象的,通常难以理解,不容易掌握和理解算法的实质和实现过程,尤其是对初学者来说,若不能把握算法的实质,则很难顺利地写出程序,因此,将算法的实现过程形象、直观地表现出来,对于掌握算法有重要的意义。
摘要:顺序查找算法是在学习各种程序语言和数据结构课程时都会遇到的算法,采用C#编程对该算法的实现过程进行了形象、直观的动态演示。
关键词:查找,关键字,哨兵,定时
参考文献
[1]严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,1997.
[2]谭浩强.C语言程序设计[M].北京:清华大学出版社,2000.
[3]尹立宏.Visual C#.NET应用编程150例.北京:电子工业出版社,2003.
动态演示 篇8
将冶金机械的功能直观的、全面的向客户展示, 是推动客户选择冶金机械设备的重要环节, 但冶金机械设备复杂的结构、庞大的工作任务、恶劣的工作环境等方面决定冶金机械设备通常体积非常大, 运行原理较为复杂, 要让非专业的客户在短时间内通过冶金机械, 准确的了解冶金机械的功能和设计特色存在较大的难度, 所以人们尝试通过平面化的基于计算机技术的动态仿真演示系统向客户展现冶金机械的性能。
1 单机展示系统设计
冶金机械中的部分单机设备结构非常复杂, 如复摆颚式破碎机等, 在对此类单机进行动态仿真演示系统设计的过程中, 要对其具体的工作原理、功能、结构等进行准确、全面的掌握, 然后进行针对性的设计。笔者认为在设计的过程中要从以下方面着手:
1.1 在选择应用的设计软件中完成准备工作
在建模和动画制作等方面功能较突出, 且对虚拟现实软件适应性较强、工作效率较高的Auto CAD软件中进行设备仿真建模, 在此过程中需要注意, 由于建模过程中, 任何参数不准确都会影响到冶金机械的联动效果或模型整体的精度, 所以在建模的过程中, 应尽可能应用冶金机械零件和装配的电子图纸, 然后在软件中对电子图纸进行简单的调整, 并利用3ds Max软件中的捕捉、绘制等功能, 对建模中的局部设计进行调整。
1.2 完成冶金机械金属材质的仿真设计
在设计的过程中, 要在单色背景中向客户真实的展示出冶金机械的金属材质, 要用非真实反射环境体现冶金机械的材质, 并利用光线跟踪反射功能, 体现出不同位置下金属材质的光线差异, 完成材质制作过程, 图1为冶金机械动态仿真演示系统截图。
1.3 完成可烘托仿真真实性的灯光设计
在设计的过程中, 考虑到只有普通灯光或扫描线渲染器可以烘托出冶金机械设备的真实性, 所以要在建设单个泛光灯的基础上, 进行多次复制、粘贴, 形成半球状的泛光灯排列矩阵, 此时将灯光强度统一调整到0.02, 并用强度为0.2的主灯对所有泛光灯进行照射, 形成具有烘托作用的光线阴影[1]。
1.4 完成冶金机械演示动作的仿真设计
另外, 对需要展示的具体冶金机械功能进行设计, 此部分设计是单机展示系统设计的重点和难点, 需要引起设计人员的高度关注。例如在针对圆锥式破碎机的偏心主轴和破碎圆锥进行设计的过程中, 忽视两个结构在运行的过程中会在偏心套的作用下, 会以腔体结构为中心进行运动, 而且在运动的过程中会产生自转, 就会导致演示的过程中, 客户不能准确的了解此类冶金机械的运行原理, 加大冶金机械运行故障的发生概率。笔者认为在具体设计的过程中, 应先通过链接工具, 将主轴和除偏心主轴外的零件建立链接关系, 以此保证仿真演示动画可以反应出偏心主轴在外力作用下的自转过程[2]。在此基础上, 设计人员再通过链接工具, 将偏心主轴和偏心套之间建立链接关系, 使原本独立的各结构之间形成相互影响的关系。在以上互动影响关系形成后, 设计人员应有意识的将二维图像转化为三维的动画过程, 具体操作是, 先将坐标的格式调整成为自身坐标, 使界面中原本处于倾斜状态的部件方向得到调整, 然后通过旋转工具对部件进行旋转操作, 在操作的过程中完成整个旋转过程的动画记录, 此时会发现记录的旋转动画在播放的过程中, 按照之前的链接关系和软件自身默认的动力学原理, 可以基本反应出偏心主轴和破碎圆锥的运动轨迹。
出上述功能仿真设计外, 冶金机械在应用过程中与演示发生碰撞并对演示进行破碎处理的过程, 也是冶金机械设备向客户重点展示的方面, 所以在进行冶金机械动态仿真系统设计的过程中, 要有意识的对此方面进行重点设计。笔者在进行此方面设计的过程中, 主要通过3ds Max软件所具有的空间扭曲功能和粒子系统完成, 具体设计过程是先将模拟真实场景的石头模型替换粒子发射器发出的粒子模型, 然后对破碎机腔体结构进行仿真设计, 并通过全动力学导向器在仿真的场景中完成对碰撞代替物和圆锥部件的提取, 两者均作为仿真系统的碰撞件[3]。最后, 利用绑定工具将提取的碰撞件与粒子系统之间建立绑定关系, 此时通过粒子发射系统可以直接发射出岩石, 与冶金机械的腔体发生碰撞, 而且可以反应出碰撞过程中, 腔体的塑性变化。
需要注意的是, 在进行冶金机械功能设计的过程中, 存在的设计方法并不统一, 设计者要结合自身的设计习惯和设计水平进行灵活的选择, 例如在进行上述设计的过程中, 除采用上述方法外, 设计者还可以选择PF粒子流和NVIDIA图形卡配合应用的方式实现, 虽然设计过程相比笔者介绍过程更为复杂, 但也可以达到动态仿真演示的效果, 图2是冶金机械动态仿真演示系统截图。
2 冶金机械设备生产线的作业状态仿真演示设计
相比冶金机械的性能, 客户更注重冶金机械的工作状态, 所以设计的动态仿真演示系统, 不仅要可以虚拟仿真单机机械设备, 而且要对冶金机械设备的生产线作业状态进行仿真, 笔者认为在设计的过程中, 应重点从以下方面进行:
2.1 完成冶金机械生产线场景的设计
要对真实的生产线场景进行仿真设计, 在设计的过程中, 为简化场景设计的复杂度和难度, 应先将单机设备中外部不能直接观察到的部件删除, 然后按照冶金机械设备在真实作业场景中与其他设备的写作关系, 进行冶金机械设备和相关设备的仿真摆放, 在此过程中, 需要注意计算机存储空间和反应能力等均是有限的, 要保证演示过程流畅清晰, 在进行场景设计的过程中, 具体的物体片数要合理的控制。
2.2 完成冶金机械具体作业过程的仿真设计
考虑到冶金机械在生产线中具有传送物料的功能, 在仿真演示系统中要对此作业状态进行动态模拟。在设计的过程中, 应先将粒子系统设置在具体的传送线路中, 然后通过画线命令和路径跟随等功能设计出冶金机械在物料运输中的具体路径。在以上设计完成后, 通过绑定工具可以使冶金机械和具体的运动路径之间建立连接, 此时通过播放动画可以仿真出冶金机械按照设计路径传输物料的过程。需要注意的是, 为保证仿真的真实性, 设计人员在完成以上设计过程后, 要针对具体的粒子发送时间、速度等方面进行合理的调整。
在以上设计环节完成后, 利用Web Max等虚拟显示软件, 将设计的三维图像转化为平面网页向客户传输, 客户可以从仿真演示动画中直接了解冶金机械设备的外形、结构, 在此过程中, 客户可以结合自身的实际需要, 对冶金机械进行随机的拆卸和组装, 可见在以上设计的冶金机械动态仿真演示系统中, 基本突破了真实冶金机械设备展示的限制约束条件, 这在一定程度上说明本设计具有科学性和合理性。
3 结论
通过上述分析可以发现, 现阶段人们已经认识到利用基于计算机技术的虚拟系统和仿真系统实现冶金机械动态仿真演示的可行性和必要性, 并在实践中有意识的结合现有仿真、虚拟技术发展成果进行冶金机械动态仿真演示系统的设计, 这是冶金机械设计、宣传推广过程中, 信息化水平提升的具体体现, 应结合计算机技术的发展不断的优化。
摘要:冶金机械设备体积通常较大, 冶金设备企业要向客户展示冶金机械设备的功能, 对展示环境、展示角度等方面均方面均提出了较高的要求, 而计算机图形图像技术、三维仿真技术等具有虚拟、仿真功能的信息化技术的发展, 为大体积冶金机械设备动态仿真演示提供了可能, 为设计人员与客户更好的沟通提供了“工具”, 在此背景下, 本文针对冶金机械动态仿真演示系统的设计与实现问题展开研究, 为冶金机械虚拟仿真演示提供参考。
关键词:冶金机械,动态仿真,演示系统
参考文献
[1]崔建伟.基于Phys X的冶金机械演示系统设计[J].计算机与现代化, 2012, 05:113~115.
[2]钟登华, 王忠耀, 李明超, 刘杰.复杂地下洞室群工程地质三维建模与动态仿真分析[J].计算机辅助设计与图形学学报, 2007, 11:1436~1441.
动态演示 篇9
关键词:编译原理,算法,动态演示,C#
《编译原理》是计算机专业的一门重要专业基础课。课程涉及形式语言、有穷自动机等抽象内容, 从词法分析直到代码生成的各个阶段中包含了大量复杂抽象的算法。所以该课程本身逻辑性、理论性和实践性强, 学生普遍存在畏难情绪, 教学效果不理想。作为授课教师, 如何使这门课教学的效果得到改观, 是一个需要研究的课题。近年来, CAI (计算机辅助教学) 日益成为教育领域中的主要手段, 而我院《编译原理》课程辅助教学系统仅仅是利用PowerPoint制作的幻灯片。所以, 计算机辅助教学在该课程中的应用还非常不足。为此, 我们设计了该算法动态演示系统。学生通过该系统能清楚地观察算法的步骤、动作及关联的数据。因其具有形象、直观等特点可以将教师从烦琐的推导和讲解中解脱出来, 使学生在有限的教学时间里理解和掌握更多的知识, 使教学突破了空间和时间的限制, 具有提高教学效果、扩大教学范围和延伸教师功能的作用。
一、系统设计原则
设计本演示系统时遵循以下设计原则:
1. 正确性原则。
本系统作为一种教学资源, 不能出现科学性错误, 绝对不能把错误的概念和理论传授给学生。所以我们将正确性作为第一设计原则。
2. 辅助性原则。
引进CAI技术, 利用动态的教学演示系统能充分刺激感官, 吸引注意力, 有利于激发学生的学习兴趣和主动性的发挥, 从而有效地突破教学重点、难点。但笔者始终认为计算机只能起到辅助教学的作用, 它绝对不能取代教师的作用。因此, 在设计系统过程中应按照教学过程的普遍规律, 坚持教师的主体地位。
3. 适用性原则。
系统的制作必须从教学实际出发, 按照教学的要求提取出重点和难点内容, 考虑这些内容是否适合用计算机进行辅助教学。一味地追求使用辅助教学系统, 会导致辅助系统成为教学的干扰因素。
二、系统的总体结构和功能
编译程序一般包括词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成六个阶段, 除此之外, 还有表格管理和出错处理程序。由于本系统的开发依托于校级教改项目, 最终受益于教师的课堂教学和学生的课下自主学习, 所以结合课程所使用教材, 按教材章节划分模块。主界面中的每章标题都为超链接, 点击后可进入各章界面。每章界面风格保持一致性原则, 左侧为导航链接, 右侧为演示区, 在演示系统构造过程中, 我们注意了系统的简约性。本系统的画面布局突出主体对象, 演示算法所涉及的图表也都尽量简约化。同时, 同一画面色彩数量也不多。在系统中我们大量减少了文字数量, 过多的文字阅读不但容易使人疲劳, 而且还会干扰学生对系统中知识的感知学习。
三、系统的设计与实现
语法分析是编译程序的核心部分。在编译原理中语法分析包括多种分析方法, 其中LR分析法适用范围广但又难于理解, 所以本节以LR分析法为例来说明系统的设计思路及过程。LR分析法根据现行输入符号和分析栈顶的状态来查看分析表, 并根据分析表元素的指示动作采取相应的分析动作, 包括移进、归约、接受、报错四类, 每一类动作涉及的操作各不相同, 其中以归约动作最复杂, 涉及产生式、栈顶若干符号和状态的出栈、归约后的符号入栈、转移到新的状态入栈等子动作。要想清晰演示LR语法分析方法, 算法所涉及的分析动作和相关数据的动态变化过程是演示的重点。因此, 必须在演示界面上显示分析动作及文法产生式、输入串、分析表、分析栈等数据的变化过程。为了控制演示系统的运行, 应考虑各种控制按钮。本系统通过“上一步”和“下一步”按钮可自行控制演示步骤及过程, 当演示过程结束后, 需重新演示一遍时, 不必关闭程序重新运行, 因此设置了“重新开始”按钮进行清屏。LR分析法演示界面如图1所示。本动态演示系统能够逐步演示算法从初始化到结束的每一个步骤, 对于每一种动作, 我们都进行了不同程度的分解, 用颜色或指针等手段突出显示算法的分析动作和关联数据的变化情况。这些动作的分解和涉及的演示操作方法如表1所示。
根据表1所列的动作分类, 在演示过程中按照对应的演示方法逐步演示, 直到程序接受或者报错为止。通过逐步演示算法的分析执行过程, 学生可以清楚地观察到LR分析算法的分析动作及相应数据的动态变化过程, 从而帮助学生深刻理解LR语法分析算法。
本文利用C#语言设计实现了一个编译算法动态演示系统。该演示系统能够通过人机交互的方式, 形象细致地展示编译原理中几个核心算法的基本思想、框架结构与执行步骤, 使学生能够在界面友好的条件下轻松地掌握编译算法中的重点和难点。该动态演示系统是本院《编译原理》课程校级教改项目的成果, 在实际的应用中取得了良好的教学效果。
参考文献
[1]张晶, 陈香凝, 董德义, 李鑫, 赵曦.编译原理[M].哈尔滨:哈尔滨工程大学出版社, 2011.
[2]王强, 冯燕.编译原理算法的形象教学[J].计算机教育, 2010, (3) .
【动态演示】推荐阅读:
动态演示方法08-02
动态演示程序12-11
汉字笔画动态书写演示01-13
汉字笔顺动态演示的制作方法12-13
演示模型07-17
课堂演示01-21
演示法06-14
演示模拟08-07
演示中心08-30
操作演示09-30