美章网 精品范文 程序设计论文范文

程序设计论文范文

程序设计论文

程序设计论文范文第1篇

根据非等时距灰色GM(1,1)模型的构建过程,设计数据处理流程,如图1所示。利用VB编写主程序,完成程序用户界面设计,实测数据的输入,MATLAB的调用(包括等时距变换、灰色GM(1,1)模型的构建等),预测数据的输出以及预测拟合曲线与实测曲线对比图的显示等操作。VB调用MATLAB的主要程序代码如下:PublicMATLABAsObject‘在VB变量声明部分声明要调用Matlab的ActiveX对象‘在Command1_Click()中链接Matlab的ActiveX部件SetMatlab=CreateObject("Matlab.Application")‘初始化对象CallMatlab.MinimizeCommandWindow‘matlab窗口最小化g=Matlab.execute(gm)‘执行matlab命令,gm为mat_lab执行代码非等时距时间序列转换为等时距时间序列的主要程序代码如下:dtim=tim(length(tim))/(length(tim)-1);%计算平均时间间隔x0(1)=dat(1);x0(length(tim))=dat(length(tim));fori=2:length(dat)-1x1(i)=dat(i-1)+(dat(i)-dat(i-1))/(tim(i)-tim(i-1))*((i-1)*dtim+tim(1)-tim(i-1));x2(i)=dat(i)+(dat(i+1)-dat(i))/(tim(i+1)-tim(i))*((i-1)*dtim+tim(1)-tim(i));x0(i)=(x1(i)+x2(i))/2;%计算等时距时间序列end灰色GM(1,1)模型构建的主要程序代码如下:x1=cumsum(x0);%一次累加生成fori=1:length(x0)-1;B(i,1)=(-1/2)*(x1(i)+x1(i+1));B(i,2)=1;Yn(i,1)=x0(i+1);end;A=(inv(B'*B))*B'*Yn;a=A(1);u=A(2);%计算发展系数以及灰色作用量fork=1:length(x0)+T;xsum(k)=(x0(1)-u/a)*exp(-a*(tim1(k)/dtim))+u/a;xsum1(k)=(x0(1)-u/a)*exp(-a*(tim1(k)-dtim)/dtim)+u/a;end;xyc(1)=xsum(1);fork=2:length(x0)+T;xyc(k)=xsum(k)-xsum1(k);%累减还原预测数据end。

2工程实例分析

某基坑工程位于青岛市经济技术开发区,地处长江路示范居住中心地段,共分三期开发,每期工程各由4栋32~33层高层住宅、地下2层机械停车库组成,其中二期工程包含5#、6#、7#、8#楼。现以监测点J8、J10、J16、J19、J22的累计位移变化量为时间序列进行建模分析。表2为J16点的部分观测数据。选取第1~8期作为牛顿插值数据,第9~10期作为检验数据。运行程序,依次输入第1~8期的累计时间间隔和累计位移变化量,点击“计算”控件调用MATLAB进行运算,将非等时距数据序列转换为等时距序列,并在用户界面上输出等时距变换结果,然后输入第9~10期的累计时间间隔,点击“预测”控件,调用灰色GM(1,1)模型构建程序模块,计算得出第1~10期的预测数据,并进行精度检验,最终将预测数据、预测模型精度等结果显示输出在用户界面上,如图2所示。将第1~10期实测数据与预测数据进行比较分析,结果如表3所示。为方便直观显示,绘制预测拟合曲线与实测曲线,见图2。其中,实线代表实测数据,虚线代表预测数据从图2中可以看出,J16点采用非等时距灰色GM(1,1)模型模拟的拟合曲线较为平滑,与实测曲线吻合较好。对模型进行精度检验,计算得J16点的后验差比值C=0.1126,小概率误差P=1。由表1可知,利用该工程J16监测点的第1~8期累计位移变化量为时间序列所构建的灰色GM(1,1)模型,其精度等级为一级。依次以监测点J8、J10、J19、J22的同时段累计位移变化量为时间序列建立灰色GM(1,1)模型,并进行精度检验,计算结果见表4。可以看出,4个模型的精度等级均为一级。综上可知,利用该程序对表4数据进行分析,可以获得良好的变形预测结果,精度较高,充分验证了基坑变形非等时距灰色预测模型的可靠性、有效性与实用性,且程序设计界面友好、操作简便、数据处理高效,能够为基坑工程的安全评判提供可靠的数据依据,以便进行适时控制。

3结束语

程序设计论文范文第2篇

参考日程

负责人

1.专业(或专业课群)确定题目及指导教师,并填写题目报表经主管院长认可

每学年第一学期12—14周

院教学秘书、教学院长

2.确定题目、学生报名、各学院汇总报表。各项准备工作就绪

每学年第一学期15—16周

院教学秘书、专业(或专业课群)负责人

3.各学院做好指导教师及有关人员的思想动员工作,并公布毕业设计(论文)工作要求及评分标准等有关规定

每学年第一学期末

教学院长

4.各学院做好学生的思想动员工作,下达任务书,向学生公布毕业设计(论文)要求及评分标准等有关管理规定。毕业设计(论文)环节开始运行

每学年第一学期末或第二学期第一周

教学院长

5.学生每人作开题报告或开题综述(文字的或宣讲。含文献综述、方案论证、进程计划等)各学院检查开题情况、教务处随机抽查

第二学期第1—4周

专业(或专业课群)负责人、院教学秘书、教学院长

6.期中检查,各学院教学院长领导,各专业(或专业课群)组织检查,学生每人口头汇报、解答问题。各学院对达不到教学要求的学生应给予警告;对优秀学生予以注意培养。各学院检查日程报教务处备案

第8—10周

专业(或专业课群)负责人、院教学秘书、教学院长,教务处随机抽查

7.毕业设计(论文)评阅

第16周

毕业环节指导小组

8.答辨:学生将毕业设计说明书或论文,按要求装订成册,由所在毕业环节指导小组答辨。必须有院级抽查答辨,并检查评分标准执行情况,不符合标准的,由教学院长、组织调整平衡,教务处抽查

毕业教学环节的最后一周内

专业(或专业课群)负责人、院教学秘书、教学院长

9.毕业设计说明书或论文由专业(或专业课群)负责人依据《规定》归档,并推荐评选优秀毕业设计(论文)及参加学校的优秀毕业设计(论文)答辩。

毕业教学环节的最后一周内

专业(或专业课群)负责人、院教学秘书

10.校优秀毕业设计(论文)答辩:各学院各专业推荐2—3名获优秀毕业设计(论文)学生,参加学校组织的优秀毕业设计(论文)答辩。

毕业教学环节的最后一周内

教务处

11.各学院总结毕业设计(论文)工作,并写出一份书面报告(含主要工作经验;毕业设计(论文)完成情况;成果、成绩评定;优秀的和最差的学生典型情况;指导教师工作突出的和差的情况,存在的问题和建议等)交教务处

第19周以前

教学院长

12.提前进行毕业设计(论文)的,原则上参照本规定执行,各阶段相应日程自定,并在开始前将工作日程报教务处

程序设计论文范文第3篇

参考日程

负责人

1.专业(或专业课群)确定题目及指导教师,并填写题目报表经主管院长认可

每学年第一学期12—14周

院教学秘书、教学院长

2.确定题目、学生报名、各学院汇总报表。各项准备工作就绪

每学年第一学期15—16周

院教学秘书、专业(或专业课群)负责人

3.各学院做好指导教师及有关人员的思想动员工作,并公布毕业设计(论文)工作要求及评分标准等有关规定

每学年第一学期末

教学院长

4.各学院做好学生的思想动员工作,下达任务书,向学生公布毕业设计(论文)要求及评分标准等有关管理规定。毕业设计(论文)环节开始运行

每学年第一学期末或第二学期第一周

教学院长

5.学生每人作开题报告或开题综述(文字的或宣讲。含文献综述、方案论证、进程计划等)各学院检查开题情况、教务处随机抽查

第二学期第1—4周

专业(或专业课群)负责人、院教学秘书、教学院长

6.期中检查,各学院教学院长领导,各专业(或专业课群)组织检查,学生每人口头汇报、解答问题。各学院对达不到教学要求的学生应给予警告;对优秀学生予以注意培养。各学院检查日程报教务处备案

第8—10周

专业(或专业课群)负责人、院教学秘书、教学院长,教务处随机抽查

7.毕业设计(论文)评阅

第16周

毕业环节指导小组

8.答辨:学生将毕业设计说明书或论文,按要求装订成册,由所在毕业环节指导小组答辨。必须有院级抽查答辨,并检查评分标准执行情况,不符合标准的,由教学院长、组织调整平衡,教务处抽查

毕业教学环节的最后一周内

专业(或专业课群)负责人、院教学秘书、教学院长

9.毕业设计说明书或论文由专业(或专业课群)负责人依据《规定》归档,并推荐评选优秀毕业设计(论文)及参加学校的优秀毕业设计(论文)答辩。

毕业教学环节的最后一周内

专业(或专业课群)负责人、院教学秘书

10.校优秀毕业设计(论文)答辩:各学院各专业推荐2—3名获优秀毕业设计(论文)学生,参加学校组织的优秀毕业设计(论文)答辩。

毕业教学环节的最后一周内

教务处

11.各学院总结毕业设计(论文)工作,并写出一份书面报告(含主要工作经验;毕业设计(论文)完成情况;成果、成绩评定;优秀的和最差的学生典型情况;指导教师工作突出的和差的情况,存在的问题和建议等)交教务处

第19周以前

教学院长

程序设计论文范文第4篇

一、学情分析

学情分析是教学设计系统中“影响学习系统最终设计”的重要因素之一。在教学设计中,依据教学设计理论,认真研究学生的实际需要、能力水平和认知倾向,“为学习者设计教学”,可优化教学过程,更有效地达成教学目标,提高教学效率。VB的开课学期一般在大一第二学期,按照专业培养计划,计算机网络技术等专业在新生入学的第一学期就开设了《C语言程序设计》这门课。对于从未接触过语言类课程的大一新生来说,C语言的学习,颠覆了大部分学生的思维方式,学生普遍感到很吃力,有相当一部分同学开始对程序类课程感到害怕。

二、教学方法探讨

1.消除学生的畏难情绪

为了打消学生的畏难情绪,对于VB教学,应首先与学生谈VB,而不是教VB。首先,要让学生明白VB和C语言是完全不同的两种编程方式,不要因为害怕C语言,而害怕VB。教学中,通过演示一个简单的例子,向学生演示只需要两行代码便可制作出美观的界面和可爱的功能。比如:示例1:制作美观的界面,实现窗体上的文字自动或手动的向下移动。突现VB相对于C语言的简单易懂,引导学生一步步完成所需功能。最后,启发学生:如果想让文字上移,如何修改程序?如果想让文字左移或右移,如何修改程序?如果想让文字左右交替移动,又要如何修改程序?通过上述示例的讲解,使得学生对VB有一个全新的认识——直观、简单、易学、易用。其次,要让学生了解为什么学习VB,VB对于他们有多么重要。这门课的开设除了承上启下其他专业课程外,还有一个重要的作用就是为了让学生能够参加计算机二级考证,VB在二级考证中相对比较易学易用。再次,告诉学生,有了C语言的基础,代码的编写会更为容易。从而激发学生学习的信心。

2.提高学生的学习兴趣

在教学过程中应尽量使用简单易懂的语言和示例,提高学生的学习兴趣,帮助学生理解知识点。比如,在讲属性、方法和事件这三个很枯燥的概念时,可以通过生活中有趣的示例来进行解释。示例2:通过“蟑螂从女生脚上爬过”的事例,讲解属性、方法和事件的概念。蟑螂从女生脚上爬过时,女生的脸色变红,脸的颜色为红色就是属性;女生尖叫起来,女生跳起来,这是女生本身做出的动作就是方法;蟑螂爬过女生的脚,这是外部事物对女生做出的动作,就是事件。通过这种类型的示例,成功吸引了学生的注意力,也帮助学生理解了这几个难懂的概念。在讲属性、方法、事件的书写格式时,也可将这个示例写成VB伪代码的形式:属性的表示方法:女生.脸的颜色=红色方法的表示方法:女生.尖叫啊事件的表示方法:女生_蟑螂爬过至此,学生对VB程序一下就理解了。

3.实践中学习,项目中巩固

要想学好程序设计类的课程,大量的练习是必不可少的。因此,将所有知识点都融入到一个个的项目实例中。课堂上边演示边制作,课后布置一些举一反三的题目,让学生自己在课后完成。

程序设计论文范文第5篇

关键词:Java语言;案例教学;编程能力

随着Internet的迅速发展,Java作为一种面向对象的高级语言得到了越来越广泛的应用。它既具有一般程序设计语言所具有的安全性、多线程等特点,同时又具有独特的平台无关性的优势。为了适应社会的发展,培养更符合市场需求的计算机专业人才,很多高校都陆续开设了Java语言的相关课程。但是在传统的Java语言教学过程中,课堂一般以教师为主导,首先按照教材章节顺序向学生灌输一个个抽象的概念、语法和算法,然后再去布置相关的实践任务让学生在机房实践操作。这种先理论后实践、理论和实践完全割裂的教学方式忽视了学生的互动参与,导致课堂乏味,学生学习兴趣下降,教学内容单纯倚重课堂讲授,学生实训操作练习很少,而且学与做相脱离,不利于学生理解消化课程知识和锻炼编程能力,难以取得理想的教学效果。针对这些问题,教师可以在该课程的教学中引入案例教学,以书本知识点为基础,以案例为依托,使学生在制作案例的过程中逐渐理解Java基本理论知识,在理解理论知识后不断提高Java语言的编程能力[1]。

一、案例教学法的实施意义

案例教学法由美国哈佛商学院提出,通过在课堂教学中由教师围绕案例组织教学,将学生引入特定的情境之中,启发学生分析案例,探讨案例解决方案,实现课堂师生的双向互动和学生学习效果的及时反馈,激发学生学习的积极性,提高教学效果。在Java语言程序设计课程教学中应用案例教学法就是通过实施一个完整的Java案例来组织教学活动,用典型案例把理论知识与实践教学有机地结合起来,把理论知识融入到案例制作之中。教师通过案例实施完成教学过程,学生通过案例制作掌握Java的语言知识和编程技巧,使教学做有机融合,提高该课程的教学效果。与传统教学方式相比,案例教学方法更能充分发掘学生的创造潜能,培养学生学习Java语言的兴趣,提高学生解决实际问题的综合能力[2]。在Java语言程序设计教学中实施案例教学,教学过程通过教学案例的实施过程来开展,通过“提出案例目标--分析案例任务--实施案例--边学边做--总结反馈”的环节分解每个知识点,充分体现学中做、做中学的教学理念,展现互动创新、注重应用、共同协作的教学风格。

二、Java语言程序设计案例教学的实施

(一)明确Java语言程序设计的教学计划在Java语言程序设计课程的教学中使用案例教学方法,教师首先要明确该课程的教学计划。具体包括特定的教学对象、明确的教学目的、课程的教学效果和对教学过程实施的整体设计及其控制。教学计划的制定必须以市场需求为导向,符合程序设计语言课程的教学规律,既不能脱离学生的实际学习能力,也不能丧失该课程注重实践应用能力培养的教学特点。因此,通过市场调研、企业专家访谈和毕业生信息反馈等形式,确定本课程的教学计划是使学生掌握面向对象程序设计的开发方法,理解类、实例、继承、包的应用,体会面向对象的程序设计方法在软件系统开发中的优势,使学生能够运用面向对象的思想、方法和Java语言开发应用程序。同时在该课程的教学中注重进一步的培养学生的软件设计与开发能力、程序调试能力,养成良好的程序编写习惯,从而为本专业的后续课程的学习奠定坚实的基础。(二)精心准备Java教学案例资料结合高职学生的特点,本课程将抽象的理论知识点细化和组织到具体形象的案例中去,让学生在具体的案例中体会知识点的应用。为此构建该课程规范的一体化案例教学资料库是非常重要的,选取的教学案例要能很好地和相关地教学知识点紧密融合。因此,在讲稿和课件中注重设计好每个案例“如何运用,怎样引入,何时引入,怎样与知识点有机衔接”。为了更好的提高学生的学习积极性,体现高职课程应用型、实用型的特色,Java教学中应用的案例要生动、实用,最好能从实际工作中的应用出发,提取一些典型的教学案例,能够模拟真实的企业工作环境,按照软件开发的流程组织教学。这样一方面可以使得学生可以了解以后工作的内容,激发学生学习的热情,另一方面可以改变高中时的以掌握理论知识为中心的学习方式,变被动学习为主动操作,突出实践技能的培养,使学生养成良好的程序设计开发习惯[3]。但是实际工作中的案例一般都比较综合,结构庞大,涉及的知识点比较多,如果直接应用到教学中对于初学者来说过于复杂,这就要求教师对这些案例必须要进行加工,抽取出关键部分,把繁杂无关的部分去除,有效引导学生进行学习。在学生具有一定的编程基础的情况下,再给学生真实的综合案例,通过由简单到复杂、由单一模块制作到综合案例制作的学习过程逐渐掌握Java语言的知识和编程方法,从而提高学生对实际工作情况的适应度。学生在分析案例寻求解决方案的过程中,会自然地与所学知识点进行结合,而案例中较为复杂问题的解决,能够激发学生不断学习、勇于创新的热情,打破学生原有的知识范围,拓展学生的知识领域,从而使得学生从被动的学习者转变为主动运用知识来处理各种各样的问题的开发者,不断提高软件开发的分析和解决问题的实践能力。(三)设计合理的课后练习案例由于Java语言比较抽象,知识点较多,对实践操作要求又比较高,仅仅凭着上课有限的教学时间是远远不够的,所以在每一章节的课堂教学结束后,教师必须选取合适的案例,为学生布置所涉及相关知识点的课后作业,从而让学生能通过课后作业练习对Java语言能够进一步深入的理解。(四)理论课和实践课合为一体传统的Java教学模式一般是先理论后实践,理论课和实践课分开,理论课在多媒体教室完成,而且理论课时一般都是实践课时的2倍以上。在具体的教学中,为了保证后期课程的教学难点能够掌握,理论课都先于实践课开始。这样的教学安排会使得理论课已经进行一半后,实践课才刚开始。而在Java语言等程序设计课程中,学生对于知识的掌握和编程能力的培养,在很大程度上是通过实践操作来实现的,但课后并不是每个学生都会自觉地在自己的计算机上编程练习,还有一部分学生虽然也在自己的计算机上编程调试了。但是一旦在调试中遇到困难得不到解决,往往就会退缩,把问题搁置等着上实践课再来解决,以至于造成学生学习进度缓慢,编程能力得不到有效提高。为此,可以把Java语言程序的理论课和实践课结合在一起,把授课地点设在机房中,教师以教学案例为主线,首先分析案例,然后引导学生思考案例解决方案,接着引出案例涉及的相关知识点,再把知识点应用到案例制作过程中,边做边讲,通过这种教学做一体化的教学方式把理论和实践有机结合起来,把抽象难懂的理论知识通过具体的操作帮助学生理解,学生的学习热情有了很大的提高,学习效果也有了明显的改善。(五)重视教学的互动与及时反馈传统的教学方法一般是教师讲、学生听,课堂只注重知识的单向输出,忽略了师生之间的沟通和学生的实际的接受效果。通过教师和学生之间的及时沟通,不仅能够使教师发现学生学习的薄弱环节,而且可以发现教学过程的不足,动态调整教学实施过程,更重要的是增进了师生感情,从而引发学生的学习兴趣[4]。在Java语言程序设计中应用案例教学法就能很好的实现教学的互动,使教师能够及时的得到课堂教学效果的反馈。首先在案例教学中,学生拿到案例后,在教师的引导下先要进行分析消化,然后在案例制作的过程中学习相关的Java语言知识,这无形中会使学生加深了对知识的理解,而且学习过程是在和教师的互动中进行的。同时学生的成果要经过学生自评、教师点评环节,这一方面调动了学生学习和动手的积极性,也促使教师加深思考,根据学生制作案例的情况了解学生掌握新知识点的程度,及时调整教学内容和教学进度,不断完善案例教学的实施过程。(六)典型教学案例实施过程:自动计数器图1计数器初值为0图2计数器自动加1图3加数器变为减数器图4计数器自动减1在Java图形界面开发讲授时,教师如果只是介绍各个组件的构造方法和常用的方法,就会让学生觉得枯燥乏味,不知道每个方法具体的应用,而且不能让学生了解组件显示的难点--坐标的确定,因此有必要通过案例教学来实施这部分知识点的教学。比较典型的一个教学案例是自动计数器的制作。计数器初值为0,如图1所示;当单击“自动加1”按钮时,程序实现计数器功能,如图2所示;当计到100时,“自动加1”按钮显示为“自动减1”,如图3所示;并自动实现减数器的功能,如图4所示。如此循环,直到单击“退出”按钮为止。在讲授时,教师可以首先演示该程序的功能和运行过程,让学生明确学习目的,然后对着运行界面引导学生分析程序的实现思路:自定义一个窗口类,在窗口类的构造函数中添加单行编辑框和按钮组件。然后重写按钮事件处理方法actionPer-formed。在讲解窗口类的实现中,要详细讲解单行编辑框组件和按钮组件的坐标的确定。接着再详细说明在用户单击了按钮后,如何控制计数器计数:先要判断选择了哪个按钮,这里教师告诉学生通过事件的getSource方法可以获得事件源;然后再根据按钮的文本内容执行相应的操作,“自动加1”将使num加1,“自动减1”将使num减1;最后用setText方法把新的num设置为单行编辑框的值。这是一个综合了多个知识点的案例,涉及到组件的添加、事件处理、整型数和字符串类型的相互转换、事件源的判断等知识点。这个案例的学了有助于让学生掌握这些界面开发的知识点外,也会让他们学到流程控制的编程技巧。

三、结束语

在Java语言程序设计的教学中,以教学案例的实施为主线,通过教学内容、案例选择、授课模式等一系列的改革措施,培养学生独立分析问题和解决问题的能力。实践证明案例教学法不仅可以提高高职学生学习Java语言的兴趣,使他们在学习的过程中由被动接收知识变为主动培养实践技能,而且增强了学生在实践操作中的自信心,学生的编程能力也有了明显的提高。

作者:王惠 单位:九州职业技术学院

参考文献:

[1]李天书.案例教学法在专业课教学中的应用与实践[J].职业时空,2014(6).

[2]李劲华.通识教育中Java程序设计课程的教学研究与实践[J].计算机教育,2008(20).

程序设计论文范文第6篇

(1)误差方程式的组成

控制网中的观测值一般有边长、方向(角度观测值因定权问题一般采用方向值进行平差)、方位角,可以发现,这些观测值的误差方程式的非零项一般最多为4个,即在两个点均为待定点的情况下。消除定向角后的“和误差方程”的非零系数为2n+2个(n为测站方向观测个数)。若按照误差方程的格式,其系数矩阵为n行和2*dd列(dd为网中未知点个数),这样,系数矩阵将会有很多零元素存在,浪费了大量的存储空间并影响计算效率,所以,误差方程系数矩阵应采用压缩格式进行存储[3]。可采用以下方法:A(m,n)-A(m,9)其中,m为观测值个数,n为未知点个数的两倍。改进后的A阵格式为:AI=(编号1,系数1,编号2,系数2,…,编号4,系数4,常数项)共9列。这样,就得到了改进后的误差方程系数和权阵。

(2)平差值计算与精度评定

该程序是平面控制网平差计算的主程序,通过迭代计算,达到获得精确平差结果的目的。该程序调用了误差方程与法方程的组成、求逆、坐标改正数计算、观测值平差值计算以及精度评定等函数3]。

(3)点位误差椭圆和相对点位误差椭圆

误差椭圆表示了网中点或选点之间的分布情况。在测量工作中,常用误差椭圆对布网方案作精度分析。绘制误差椭圆只需三个数据:椭圆的长半轴a、短半轴b和主轴方向。

2平面控制网近似坐标推算

讨论平面控制网平差计算过程中重要的一环———近似坐标的推算,介绍算法及简单介绍一下整个近似坐标计算的程序框架。

(1)计算参数近似值的必要性

对间接平差(又称参数平差)而言,一般都需要计算参数的近似值。但并不是说在任何情况下都必须计算参数的近似值,倘若观测值与所设参数之间建立的是一种线形的函数关系,则不给出参数近似值也可平差,只是给出参数近似值后,在列误差方程或是解算法方程的过程中会使得计算变得更加简便和方便[4]。当观测值和参数之间建立的关系为线形函数时,平差前可以不给参数的近似值。但对于测角网、边角网和侧边网等平面控制网,观测的是方向值、角度值或是边长,选取的参数又通常为待定点的坐标,观测值与参数之间的建立的关系均为非线性函数,如果不给出近似坐标,误差方程就无法列出,因为误差方程的系数均由近似坐标求得,故计算近似坐标对平面控制网而言是十分重要的一步。由于实际观测数据的个数多于必要观测的个数,近似值中还含有误差,因此还需近一步对观测值进行平差,以对近似值加以改正,得到最或然坐标值[5]。

(2)计算近似坐标程序的总体框架及具体算法

根据计算待定点坐标常用的方法,编写了相应的近似坐标推算程序。该程序的目的就是让用户尽量不提供不需提供的信息,尽可能自动完成所有待定点近似坐标的计算。本节先从总体上介绍整个程序的思路,然后针对几种常见的观测条件介绍极坐标的计算方法,并详细说明该方法在程序中实现的思路。程序的总体框架如图1所示,框架中用到的变量和函数说明如下:Xyknow———已知点点号数组;xyun-know———未知点点号数组;Point———总点号数组;ed———已知点个数;Dd———未知点个数;length———MATLAB内部函数,对数组求长度。该程序总体上采用循环结构,直到所有未知点的近似坐标计算完毕,程序终止循环。如果所有方法都采用过,但仍有部分点的近似坐标无法计算出,程序亦会自动中止,退出程序,以避免死循环的产生,程序中考虑的方法是极坐标法。基本思路是:最外层采用while循环,当未知点点号数组长度大于零,即还存在未知点未解算出来时循环运行,里层在采用FOR循环逐一对每一个未知点进行搜索,搜索到某一个未知点满足某一种条件后即时解算出来,接着马上退出for循环并对已知点点号数组和未知点点号数组进行更新,再由while判断未知点点号数组的长度,进入对未知点点号数组的下一轮for循环,如此反复,直到未知点点号数组为空。

(3)极坐标计算

这是所有方法中最简单的一种,适合于求附和导线、闭合导线、支导线及边角网。它要求具备两个已知点或是一个点的坐标和一个已知方位角且改点是方位角的起点。本程序采用的是极坐标的方法进行编写,其基本思路是:如果存在已知方位角,首先判断该方位角的起点是否是已知点A,重点是否是所求的待定点P,如果是,搜索边长AP即可按极坐标公式计算坐标;若没有一直方位角或其终点不是P,则搜索与P有方向观测的已知点A,再由A搜索到另一个已知点B,且A和B有方向观测值,于是可求出AP的方位角,再搜索AP的边长观测值,由极坐标公式即可计算P的坐标。点的坐标按此方法求出后,设置way的值为1,P点就变成了已知点。其他待定点只要满足此类条件,便可由这种方法求出。其程序框图见图2。

3水准网平差程序设计

水准网平差程序设计一共有三种方法,一维压缩存储法方程平差程序、上三角存储法方程平差程序、利用MATLAB矩阵运算平差程序以及利用平差结果的相互转换变换基准的程序[6]。(1)观测数据的组织与近似高程计算数据文件的组织下面给出一个水准网输入数据文件的例子:336(已知点个数、未知点个数、观测值个数)101102103104105106(点号)34.78835.25937.825(已知点高程)1041011.6524.5(起点点号、终点点号、高差观测值、距离观测值)其中编号数组未知点在前,已知点在后。(2)数据读入与近似高程计算程序程序中包含了近似高程计算,即进行循环,程序中设置了一个变量ie,每计算出一个点的高程,其值加1,当其值等于未知点的个数时停止循环。

4结论(程序界面)

程序设计论文范文第7篇

1.算法思想。数学里的算法是极其重要的内容,是数学的组成部分,同时是计算机理论的核心,也是技术的核心。在社会发展过程中,人们的日常生活已经离不开计算机,它成为生活中的重要工具,如看电影、绘画、处理数据等,它所涉及的面非常广,和生活息息相关。计算机虽是生活过程中必不可少的工具,但它的工作情况是什么样呢?想要了解这个问题,就要先从算法来开始学习。算法能使逻辑思维能力提高,对有条理思考和表达的发展非常有利。在过去时间里,算法这个名词虽然没有出现,但这种算法思维已经渗透到数学教学过程中,例如,运算过程中的四则运算、求解方程等,这些步骤的完成都需要程序化的表达,这个过程也是算法思想的形成。

2.算法的构建。在处理一些问题时,一系列可操作的步骤需要设计,或者设计它的可算操作,来通过这些步骤进行解决问题,这种解决问题的方法就是通常指的算法。广义的算法:就是一种工作的方法和步骤,例如,歌曲的歌谱、洗衣机说明书等都是它们使用的算法。数学教学中的算法:数学中,把计算机解决问题过程中的程序认为是现代意义的“算法”。这种算法可以用计算机实现,对求解的方法也是统一、机械的,例如:解方程、作图问题、函数求值等的算法。

二、ARCS动机设计模式在高中数学程序设计教学中的应用

1.注意策略。在学生考虑到需要输入输出时,实际上他们就已经开始有了算法思维,只是很多学生在开始时不确定如何准确划分步骤。通过上述例证使学生了解算法解决问题的思路和步骤。

2.相关性策略。《孙子算经》中原文是:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:二十三。”对高中生来说,在问题提出后,即使有些同学的思路一开始出现了偏差,但是和实际情况对比之后基本都能猜出正确答案。因此,对自己判断与实际情况不一致的同学来说,他们就会更深一步地问自己:为什么不一样?哪里出现了问题?这有助于学生独立思考能力的培养。只有让学生自己发现错误、判断错误、解决错误,才能让学生真正地掌握相关知识,这也有助于提高学生的高阶思维能力。

3.信心策略。算法实例基本是必考题,每次的考试中都有或多或少地涉及一些。算法题出题方式灵活,可考查内容较多,是一个全面评估学生知识掌握程度的考题。教师在对学生进行考核时,要考虑到学生自身知识的掌握水平,从学生角度出发,循序渐进地增加难度,切忌一次考核过难,打击学生的自信心,降低学生的学习兴趣。案例:例1.通过求1+2+3+4+5中的一个算法。解:算法1用逐一相加的方法来进行。第一步:计算1+2,得数3;第二步:把第一步中所得结果3与3相加,计算得到6;第三步:将第二步中所得的运算结果6与4相加,计算得到10;第四步:将第三步中所得的结果10与5相加,计算得得到15.说明:①一个问题的算法肯定不是唯一。②若将本例题改为“求1+2+3+…+100的结果,给一个算法”,则以上第二算法和第三算法表达较为方便。对刚开始接触程序设计的学生来说,这类题型可以提高学生的自信心,使学生产生强烈的荣誉感。题目的难度是明确的,但实际解题思路并不复杂,却有多种解题方法,对解题思路明确后,其流程图绘制也就轻而易举了。给学生自信心,让学生感受自身的能力有助于提升学生的学习动力。

4.满意策略。以满意度策略为基础的数学课堂教学方式有很多,如多媒体教学、学生学习目标设定、多元化教学方式等。在教学中,本人根据学生各自情况,与学生进行沟通后为每人设定了相应的学习目标。每次测评之后并不以全班同学的成绩来评论学生的好坏,而是通过横向与纵向两方面相比,让学生全面了解自身当前学习状况。另外,数学课堂教学中,要重视学生的能动性,通过参与问题、解决问题的方式让学生充分表现自己。通过满意策略提高学生的学习动机。

三、总结

程序设计论文范文第8篇

1.1理论教学

对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容。作为教材讲解C语言程序设计的知识点结构。知识点之间的关联可以层层细化,教师首先从宏观上给学生介绍C语言程序的整体组成结构。教师对涉及的知识点进行归类,共包含预处理命令、数据类型、运算符、语句和函数等5部分,从宏观上梳理C语言与程序设计课程的知识点是非常必要和重要的,这样可以避免学生“只见树木,不见森林”,最后只学到一堆零散的知识点,只有从宏观上把握各个知识点在知识体系中的位置和作用,才能学得深、记得牢。对于程序语言课程,如果仅仅介绍语法的运用,学生往往对知识点理解不深刻。我们在教学实践中的体会是:在讲解C语言语法的基础上,适当地剖析编程语言在计算机中的运行机制,会让学生的理解更加透彻。因此,我们的课堂教学方法分为如下两部分。

1)课件讲解。课件讲解包括两部分,即知识点要点总结和知识点运行机制剖析。知识点要点总结就是告诉学生该知识点如何使用;而知识点运行机制剖析则告诉学生该程序在计算机内存中的执行过程。由于绝大部分高校在开设C语言程序设计之前都会开设计算机文化基础等课程,因此学生有足够的计算机基础知识来理解C语言程序的运行机制。

2)实例演示。作为一门编程语言,C语言需要在实践中理解和掌握,因此,课堂教学中,在具体的编程环境(如VC++6.0)下演示十分必要。通过在具体的软件环境下编程,告诉学生应该做什么和不应该做什么,并总结该知识点的注意事项。相比传统的脱离编程环境,只在PPT或黑板上进行板书的教学模式,该方法的教学效果要好得多。在课堂教学中,具体的教学步骤如下:①使用PPT或者板书列出该知识点的注意要点;②在编程环境(如VC++6.0)下演示该知识点的用法,给出正确的和错误的使用方法,并进行对比;③通过幻灯片动画或Flas等形式演示程序在计算机内存中的执行过程,让学生更加深刻地理解程序的运行机制。

3)教学难点与重点——“复合知识点”。从C语言的教学内容来讲,数组、函数和指针是教学的重点章节,这些章节之间相互关联的部分又是重点中的难点,如数组和函数结合,数组名做函数参数,数组和指针结合,指向数组的指针变量,函数和指针结合,指向函数的指针变量等。在教学过程中要反复强调各个知识点的注意事项,如果基本知识点能够理解透彻,上述难点内容也就迎刃而解了。

1.2上机实践教学

在实践教学中,教师可以通过实际教学案例循序渐进地强化学生对C语言知识点的理解。上机实践的教学内容通常分为两部分:基本知识点练习和综合训练。首先通过基本知识点的练习,让学生掌握该知识点的使用,即巩固课堂所学内容;然后通过一个综合性的大作业,训练学生综合应用C语言知识点的能力,例如,通过编写“学生课程成绩统计系统”考查学生对数组、结构体、指针、函数、文件等知识的综合掌握情况。对于初学编程语言的学生,往往没有养成良好的编程习惯,出错的可能性较大,而出错之后进行调试又将耗费较长的时间,这势必对学生的学习热情产生负面影响。因此,一开始就给学生制定科学的编程步骤和规范,使学生养成良好的编程习惯,将大大减少程序出错的可能。下面是按照上述五步编写的一个完整的C语言程序,用来比较两个整数的大小。按照上述五步进行编程,经过一段时间的训练之后,学生出现语法错误的可能性大大降低,此时学生更多的精力将集中在程序算法的设计和实现上。

1.3考试形式

对于C语言程序设计的考核方式,我们采用知识点考核和编程实践相结合的方式。知识点考核偏重于C语言基本语法,用于检验学生对知识点的掌握是否全面,此项考核约占总成绩的40%;编程实践考核用于检验学生的实际动手能力,学生将在规定的时间内根据题目在机器上编程,此项考核约占总成绩的60%。为了实现知识点的考核,我们将考试与计算机二级C语言上机考试紧密结合,采用题库平台进行上机考试,学生直接在机器上答题并提交,知识点考核多采取客观题,如填空题、程序修改题以及读程序题等,编程题在实战编程中考核。C语言程序设计课程的重要特点就是实践性强,学习该课程的目的就是为了编写程序。因此从考试的角度讲,进行编程实践是最合适的方式,通过上机编程来考核学生的学习情况也是最公正和客观的方式。

2C语言程序设计教学实践结果分析

中国矿业大学(北京)每年都有40多个班级同时开设C语言程序设计课程,因此该课程教学质量的高低将直接影响全校理工科学生对C语言的理解和掌握。中国矿业大学(北京)C语言程序设计教学团队经过长期的探索总结出一套行之有效的C语言教学方法,我们将上述方法在学校越崎实验班中进行了试点。如图2所示,采用上述教学法的越崎实验班的C语言程序设计课程考试成绩要明显好于其他班级,其中90分以上的学生占10.7%,80分以上的学生占总人数的53.6%。另外,学生的学习积极性比采用上述方法前得到明显提高,很多学生都对计算机编程产生了浓厚兴趣,实践证明我们提出的上述方法是行之有效的。

3结语

程序设计论文范文第9篇

本文对温度、湿度两个显著影响温室作物生长的参数进行深入分析研究,构建的温湿度模糊控制系统方案如图2所示。图2中,T和H分别为模糊控制系统输出的温室环境温度和湿度值;T1、H1分别为根据专家经验给出的农作物生长最佳的温度和湿度值;eT1、eH1分别为给定值与温室环境的实际测量值的偏差;ecT1、ecH1分别为温湿度偏差随时间的变化率。

2温湿度模糊控制器设计

2.1输入与输出变量的模糊化

根据温室大棚的实际状况,以温湿度偏差及其偏差变化率为输入变量,各输入变量的模糊化信息如表1所示。结合研究对象实际情况,既考虑控制规则的灵活性又兼顾简单易行。表1中,4个输入变量模糊集均取为A,A为{NB,NS,ZE,PS,PB};模糊论域均取为B,B为{-4,-3,-2,-1,0,1,2,3,4}。模糊控制器的输出控制变量为前窗、天窗、后窗、遮阳帘、通风机、加湿器和加热器。这7个变量均为开关量,只有开和关(0/1)两种状态,分别用符号u1、u2、u3、u4、u5、u6、u7表示这7个变量。

2.2隶属函数的确定

由于三角形隶属度函数在输入值变化时比正态分布或高斯型具有更高的灵活性[6],因此本研究中温湿度偏差与偏差变化率均选取三角形隶属度函数。图4为各输入变量的隶属度函数,选择的模糊集宽度为4。因为宽度过小会造成部分区间空缺,可能找不到相应的控制规则,收敛性不好;宽度过大会造成控制规则的重叠部分过多,相互间影响加大并且响应速度也变慢[7]。根据隶属度函数对输入变量量化为9个等级,其相应的隶属度赋值如表2所示。

2.3模糊控制规则的制定

模糊控制规则的形成实质上是把操作者的经验或专家的知识和经验进行凝练得到的若干条模糊控制规则[8]。经对实际温室控制系统的研究,发现温湿度间存在一定的耦合性,即当通过某一执行机构改变温度(湿度)时湿度(温度)也会发生变化,因此在制定模糊控制规则时就要渗透解耦的思想。基于此,对7种执行机构的开关状态做如下考虑:u1、u2和u3每打开一个设备降温和降湿效果增强一点,但速度较慢;u5开通后其降温和降湿速度明显比u1、u2、u3快;u4降温作用明显,对湿度基本无影响;u6主要起加湿作用,降温为次要作用;u7主要为增温作用,降湿为次要作用。研究中制定了温度与湿度之间、温度变化率与湿度变化率之间的两个模糊控制规则表,在此仅列出温度与湿度之间的模糊控制规则,如表3所示。表3中,U为u1到u7这7个变量的开关状态,开用“1”表示,关用“0”表示。

2.4反模糊化

模糊控制器输出的是模糊语言不同取值的一种组合,由于被控对象只接受一个精确的控制量,因此需要从组合中判决出一个精确的控制量,这也就是反模糊化的过程[9]。常用的判决方法有重心法、最大隶属度法和中位数法等,本研究采用重心法计算模糊控制输出的精确控制量。其具体表达式为u'=∑nj=1ωjμ(ωj)/∑nj=1μ(ωj)(1)其中,n为模糊变量个数,ωj为模糊变量,μ(ωj)是对应模糊变量的隶属度。本系统反模糊化的具体过程:首先温湿度误差或其误差变化率经量化后得到相应的量化等级,根据量化等级查询各个执行机构在控制规则表中对应的控制规则并使其激活。然后,由式(1)计算各个执行机构的输出值,计算结果等于0.5时,执行机构保持原来状态;计算结果大于0.5时,执行机构开;计算结果小于0.5时,执行机构关。基于这种思想,可建立各执行机构的模糊控制查询表,放在内存中,编写相应的PLC程序即可实现模糊控制器对执行机构的实时控制。

3温湿度模糊控制PLC程序设计

温湿度模糊控制PLC程序包括输入量的采样与模糊化程序、量化等级程序、模糊控制查询程序、执行机构控制程序和预警程序等[10],在此仅介绍有关输入采样、误差的计算和模糊控制查询的部分程序。本研究是在STEP7编程环境下完成的模糊控制程序。

3.1输入量采样和ET/EH计算程序

研究中应用的温湿度传感器的变送单元分别取0~50℃、0~100%RH,线性对应电流均为4~20mA,因此在编写PLC程序前需把温湿度的值与PLC中的数字量关系建立起来。具体过程如下:以温度为例,用I表示电流值,T表示温度值,X表示实时温度转换为PLC中的数字量值。由于0~50℃与4~20mA对应,4~20mA又与PLC中的数字量为6400~32000对应,因此可得曲线方程如式(2)与式(3)所示。根据式(4)即可计算0~50℃对应PLC内部的数字量值。如22℃对应数字量值为17664。同理,可求得湿度值与PLC中数字量的对应关系如式(5)所示。其中,H表示湿度。下面以温度为22℃和湿度为70%RH的情况编写相应的PLC程序,70%RH对应的数字量为24320。

3.2模糊控制查询程序

由反模糊化得到的模糊控制查询表实质上是一个9×9的二维数组,存在以VW200开始的81个字单元中。在此把数组的首地址指针设定为VD48,根据(VW20×9+WV18)×2即可计算偏移值,在查询表中定位并把相应值赋予WV28。

4系统实际运行测试

控制系统投入运行后,任选某一天对控制效果进行实际测试。测试时的起始温度和湿度分别为32℃和52%RH,控制设定值分别为22℃和70%RH。对温湿度采样时间间隔均为5min,根据采集数据绘制的曲线如图5所示。由图5可知30min左右时温湿度值均达到设定值,再经10min左右温湿值即达到预设的稳定状态值,达到了较满意的控制效果。控制系统达到稳态的时间可通过增减有关设备进行调节。

5结束语

程序设计论文范文第10篇

1.1重点

(1)单选按钮和复选框的Value属性单选按钮和复选框的Value属性值不同,均能实现判断用户的选择。但是单选按钮的Value值有true和false,分别代表选中和不选中;而复选框的Value属性值有三种:0表示Unchecked,即复选框处于未被选中状态,1表示checked即复选框处于被选中状态,2表示Unavailable即复选框处于禁止状态,不可使用,复选框将以灰色显示。此部分在讲解时,准备利用两类控件的Value属性,来完成判断字体、字形、颜色、滚动方向等功能,以强化知识点的理解。(2)多分支语句结构的书写多分控制结构语句书写也是本次课的重点之一,在本项目中主要实现根据用户不同的选择实现字幕的控制。因此在教学过程中,教师应集中讲解该部分知识点,更好促进学生消化知识。

1.2难点

(1)根据用户选择改变字型设置以“发现问题—探究问题—解决问题”为主线,采用讲授法、对比法、演示法等,引导学生使用思考分析,促进知识的消化吸收,提高课堂学习效率。(2)利用Timer控件和多分支结构语句设置显示字幕滚动通过将知识点融入任务中,逐步消化吸收,采用教师讲授和学生自主探究知识相结合的方法,使学生在理解的基础上能够做到举一反三。

2教学方法设计

2.1目标逆向教学法

以实践活动为中心,学生为主体,教师引导学生主动参与教学活动;在活动中发现问题,然后通过理论知识讲解来解决活动中学生提出的问题。

2.2双层情境教学法

教师将教学情境分类为两个阶段,在第一个阶段的重点是让学生了解必需的技术知识、概念和掌握常用的技术操作,并初步获得技术在工作中的感性认识,即技术情景化阶段。在第二阶段,创设应用技术的现实情境,让学生完成真实的任务并创新,即技术应用情景化阶段[3]。

3教学过程设计

3.1创设情境

假设你是某银行的IT技术人员,经理请你设计门头滚动字幕,更好地宣传银行的各种金融业务。此步骤设计的目的是让学生尽快进入角色,体验情境;明确任务。

3.2展示项目“滚动电子屏”设置程序

教师首先展示项目“滚动电子屏”设置程序,如图1所示。学生观看教师演示,对项目有初步的印象。然后回答老师提出的问题:这个程序主要用到了哪些控件?我们学过的有哪些?学生根据已有知识对窗体控件进行梳理;初步认识到单选按钮和复选框的功能和应用场合,巩固已有知识,并培养学生仔细观察能力,并为下面将单选按钮和组合框控件的讲解做铺垫。

3.3任务一为窗体添加控件、设置基本属性

在展示项目后,教师鼓励学生根据项目演示,利用前阶段所学知识,尝试向窗体中添加控件,并设置基本属性。在学生添加控件的过程中,很多同学不使用按钮数组,而直接向窗体逐个增加,这时教师应该及时提出问题:如果按钮单个添加,在编写程序时怎样区分这些按钮、并且能快捷地实现属性的统一设置?学生激起共鸣,然后教师讲解控件数组的优点。

3.4任务二编写字体、大小、字形、背景颜色和字体颜色的设置

在任务一完成后,教师引出任务二的内容。即:为“设置”按钮编写程序,实现字体、大小、字形、背景颜色和字体颜色的调整。由于字形和字体等属性学生已经学过,所以教师采用循序渐进的方法,先鼓励学生完成易实现的部分,即书写字形字体属性,树立他们的信心。对于教学难点多分支控制结构If-Then-Elseif,教师采用集中讲解的方式提高课堂学习效率。

3.5任务三设置字幕滚动方向和滚动速度

任务三主要是通过单选按钮控制字幕滚动方向和速度,为了完成此项功能,涉及到计时器控件Timer。由于Timer控件的属性较为简单,教师鼓励学生先通过自学的方式学习Interval属性;对于Timer事件中控制滚动方向实践代码的编写,教师通过启发引导的方式来鼓励学生完成。

3.6任务四设置滚动字幕颜色、背景颜色为随机色

任务四是编写程序语句,为滚动字幕设置随机字体颜色和背景颜色。此步骤涉及的知识点RGB()颜色函数和随机函数Rnd()较为简单,因此完全以学生自学和组内合作的方式解决问题。

3.7拓展任务

程序设计论文范文第11篇

实际上,只有从芯片开始仔细设计,才能方便地实现多处理器系统的调节功能。这里选用的是AD公司新出品的SHARC级处理器ADSP21160。

ADSP21160具有很大的片内存储区、多重内部总线结构、独立的I/O子系统;具有构造多处理器系统的所有特点,能够真正支持处理器数目的可调节功能,十分适合组成高性能浮点的多DSP系统。

VxWorks是目前世界上用户数量最大的实时操作系统。这使它除了具有优越的技术性能之外,还具有丰富的应用软件支持、良好的技术服务和可靠的系统稳定性。由于它具有以上优点,本系统中选用了VxWorks作为MVME167的操作系统。

一、ADSP21160的特点

ADSP21160是AD公司采用超级哈佛结构的一种新产品。21160的汇编代码与2106x兼容,处理器具有SIMD(单指令流多数据流)功能;而2106x只具有SISD(单指令流单数据流)功能。为了充分利用这种新的功能,一些指令做了一些改变。ADSP21160包括1个100/150MHz的运算核、双端片内SRAM、1个支持多处理器的集成在片内的I/O处理器和多重内部总线以消除I/O瓶颈。

ADSP21160的汇编源代码与2106x兼容。SIMD计算结构:2个32bit的计算单元,其中每一个单元包括乘法器、ALU、移位寄存器及寄存器文件。具有完备的与设备接口功能。包括独立的I/O处理器、4Mbit的片内双端SRAM、可直接连接的多处理器特性及端口(串口、连接口、外总线及JTAG)。

ADSP21160包括2个运算处理单元,具有SIMD功能。处理单元指的是PEX和PEY。PEX始终是有效的,而PEY的有效是通过设置MODE1寄存器中的PEYEN位来实现的。当PEY模式有效时,同一条指令在2个处理器单元中都得到执行,但每一个处理器单元中的操作数不同。

SIMD模式在存储区和处理器单元之间的数据传输也是很有作用的。当使用SIMD模式,通过加倍数据带宽来保证处理器单元的操作。在SIMD模式,当使用DAGs来传输数据时,存储区每次访问所传输的是两个数据值。

ADSP21160包括4Mbit的片内SRAM,分为两块,每一块2Mbit。可以定义为不同字长的指令和数据存储。每一个存储块的双端口结构可以使存储块独立地被运算核处理和I/O处理器访问。21160的存储区最大可以容纳128K的32bit数据,或256K的16bit数据,或85K的48bit指令,或其他混合字长的数据,但总和最大为4Mbit。所有存储区可以16、32、48、64bit字长的字访问。外端口支持处理器与片外存储器及外设的接口,片外的4G地址空间属于21160的统一地址空间。

外端口支持同步、异步及同步BURST访问。DMA控制器的操作相对处理器运算核是独立和不可见的,即DMA操作可与执行指令同时进行。DMA传输可以在内部存储区与外部存储区、设备或主机之间进行。21160共有14个DMA通道,其中:连接口(linkport)占6个;串口占4个;外端口(externalport)占4个。21160可以通过DMA传输来下载程序,异步设备也可以通过DMA请求/应答线来控制2个DMA通道。

21160具有许多特点支持多DSP系统。外端口与连接口支持多处理器系统的直接连接,外端口支持统一的地址空间,允许DSP之间互相访问。片内具有分布式总线仲裁逻辑,最多支持6片21160和主机连接。外端口的最大数据传输率为400MB/s,广播写信号可以同时发

送到各片21160。6个连接口提供了另一种方法实现多处理器之间的通信。连接口的最高传输速率为600MB/s。

整个系统基于VME总线。VME总线系统作为最早的国际通用开放式总线,自1981年起,经历了近20年的发展。其影响不断扩大,功能不断完善,现已成为性能最好、应用最广的国际总线标准之一。

根据设计要求,采用了4片ADSP21160。片外共享内存SRAM可以被主机和各片DSP直接访问;EPROM用来存放初始化程序和各片DSP要运行的程序,在系统上电后这些程序被下载到各片DSP中;LEDs用来显示插件的状态,如reset、normal等。每一片都有1个连接口连到插件的前面板,这样前端采集来的数据就可以很方便地传输到多DSP上,而且也使数据的传输模式更加灵活。

连接口(linkport)是SHARC系列DSP芯片的一个特点。ADSP21160共有6个8bit连接口提供额外的I/O服务。在100MHz时钟下运行时,每个连接口可达100MB/s。连接口尤其适合多处理器间点到点的连接。连接口可以独立地同时操作,通过连接口的数据封装成48/32bit字长后,可以从片内存储区直接被运算核读取或DMA传输。每一个连接口有它自己的双缓冲I/O寄存器,数据传输可编程,硬件由时钟/应答握手线控制。4片DSP使用连接口实现DSP间两两互连。

21160的主机接口可以很方便地与标准微处理器总线(16/32bit)相连,几乎不需要额外硬件。主机通过21160的外端口对其进行访问,存储区地址映射为统一的地址空间。4个DMA通道可以用于主机接口,代码和数据传输的软件开销很小,主处理器通过HBR、HBG和REDY信号线与21160进行通信,主机可以对片内存储区进行直接读写。

二、开发环境Tornado

VxWorks的开发环境是WindRiver公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统可采用运行SunSolaris、HP-UX以及Win95/NT的工作站或个人计算机,VxWorks则运行在Intelx86、MC68K、PowerPC或SPARC等处理器上。Tornado支持各种主机-目标机连接方式,如以太网、串行线、在线仿真器和ROM仿真器。

Tornado的体系结构使得许多强有力的开发工具可以用于各种目标机系统和各种主机-目标机连接方式下,而不受制于目标机的资源和通信机制。同时VxWorks具有良好的可剪裁性。因此它适用于各种嵌入式环境的开发,小到资源极其有限的个人手持式设备如PDA(PersonalDigitalAssistant);大到多处理机系统,如VME系统。

Tornado可提供一个直观的、可视化的、用户可扩充的开发环境,极大缩短了开发周期。同时,由于Tornado是一个完全的开放系统,使得集成第三方开发工具变得十分容易。

主机与目标机之间的通信是通过运行各自处理器上的进程来完成的,使主机上的开发工具和目标机的操作系统可以完全脱离相互连接的方式。

为了摆脱主机-目标机通信带宽和目标机资源的限制,Tornado将传统的目标机方的工具迁移到主机上,如shell、loader和符号表等。这样,系统不再需要额外的时间和带宽在主机和目标机之间交换信息,降低了对连接带宽的需求,也避免了目标机的资源(如内存)被工具或符号表大量占用,使得应用程序拥有更多的系统资源。同时这种迁移也使得各种主机开发工具独立于目标机存在,从而使同一主机平台上的工具可以用于所有的目标机系统。

作为一个应用软件开发环境,Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。

三、程序设计

我们选用的DSP开发工具是AD公司提供的VisualDSP。这是一个集成开发环境,支持对SHARC系列DSP芯片的开发。实时操作系统VxWorks的开发工具是WindRiver公司的Tornado集成开发工具。VisualDSP可以C语言或汇编语言编

写的DSP代码,最新版本的VisualDSP还支持C++。它还有1个优点,就是可以编译多片DSP的源代码,并产生下载文件,这就可以很方便地进行多DSP系统的软件模拟。

ADSP21160阵列的设计结构使它既可以构成单指令流多数据流(SIMD)的并行处理机,也可以构成多指令流单数据流(MISD)或多指令流多数据流(MIMD)的流水线处理机,视用户的要求而定。这两种并行方案的选择,简单来说就是选择分割数据流还是分割处理工序。SIMD方案的原理如图1所示。

以下介绍我们实验室承担的水声信号处理系统。本系统以VME总线为系统开发平台,前端调理模件、模数转换模件和前端控制模件等为VME插件,采用SHARC级DSP芯片阵列完成声纳信号实时处理,基于嵌入式实时操作系统VxWorks及X窗口系统的中央控制和显示。

图2是4片DSP的任务分配图。从前端采集来的信号,经波束形成和复解调,再经过窄带滤波后的信号分为两路,一路送去进行幅度检波,一路做频域处理。幅度检波就是对复信号求模,根据信号幅度判决有无目标存在。频域处理分两种情况:当发射信号为单频脉冲时,进行功率谱估计,然后根据多普勒频移估计目标速度;当发射信号为双曲调频信号时,进行相关处理。

声纳综合数据处理主要包括主动声纳信号处理和被动声纳信号处理。其中,主动声纳信号处理又根据发射信号的不同,分为非相干处理、相干处理、功率谱处理。声纳综合数据处理主要完成:目标自动检测、目标参数测定和动目标跟踪。

四、操作流水线

操作流水线是模块内数据计算与I/O的流水线,物理上表现为CPU与I/O端口的DMA之间的并行。在前端处理中由于数据率高,通信开销很大。以通信任务最为繁重的复解调和多普勒补偿模块为例,输入数据率为2Mw/s,输出数据率为4Mw/s,高速连接口LinkPort最高速率为100Mw/s,如果采用串行传输的话,通信时间就将占用60%以上的处理时间,计算时间显然严重不足。所以必须采用并行执行,流程图如图3所示。这也是一种异步流水线方式,每次传送和计算完成都须要设置标志以通知下一操作。

结束语

在VxWorks实时操作系统下,4片ADSP21160上的程序已经通过模拟输入和系统测试。采用SHARCDSP阵列能够很好地完成声纳信号实时处理,每一片DSP至少有10%的计算裕量,基本达到设计要求。

送到各片21160。6个连接口提供了另一种方法实现多处理器之间的通信。连接口的最高传输速率为600MB/s。

整个系统基于VME总线。VME总线系统作为最早的国际通用开放式总线,自1981年起,经历了近20年的发展。其影响不断扩大,功能不断完善,现已成为性能最好、应用最广的国际总线标准之一。

根据设计要求,采用了4片ADSP21160。片外共享内存SRAM可以被主机和各片DSP直接访问;EPROM用来存放初始化程序和各片DSP要运行的程序,在系统上电后这些程序被下载到各片DSP中;LEDs用来显示插件的状态,如reset、normal等。每一片都有1个连接口连到插件的前面板,这样前端采集来的数据就可以很方便地传输到多DSP上,而且也使数据的传输模式更加灵活。

连接口(linkport)是SHARC系列DSP芯片的一个特点。ADSP21160共有6个8bit连接口提供额外的I/O服务。在100MHz时钟下运行时,每个连接口可达100MB/s。连接口尤其适合多处理器间点到点的连接。连接口可以独立地同时操作,通过连接口的数据封装成48/32bit字长后,可以从片内存储区直接被运算核读取或DMA传输。每一个连接口有它自己的双缓冲I/O寄存器,数据传输可编程,硬件由时钟/应答握手线控制。4片DSP使用连接口实现DSP间两两互连。

21160的主机接口可以很方便地与标准微处理器总线(16/32bit)相连,几乎不需要额外硬件。主机通过21160的外端口对其进行访问,存储区地址映射为统一的地址空间。4个DMA通道可以用于主机接口,代码和数据传输的软件开销很小,主处理器通过HBR、HBG和REDY信号线与21160进行通信,主机可以对片内存储区进行直接读写。

二、开发环境Tornado

VxWorks的开发环境是WindRiver公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统可采用运行SunSolaris、HP-UX以及Win95/NT的工作站或个人计算机,VxWorks则运行在Intelx86、MC68K、PowerPC或SPARC等处理器上。Tornado支持各种主机-目标机连接方式,如以太网、串行线、在线仿真器和ROM仿真器。

Tornado的体系结构使得许多强有力的开发工具可以用于各种目标机系统和各种主机-目标机连接方式下,而不受制于目标机的资源和通信机制。同时VxWorks具有良好的可剪裁性。因此它适用于各种嵌入式环境的开发,小到资源极其有限的个人手持式设备如PDA(PersonalDigitalAssistant);大到多处理机系统,如VME系统。

Tornado可提供一个直观的、可视化的、用户可扩充的开发环境,极大缩短了开发周期。同时,由于Tornado是一个完全的开放系统,使得集成第三方开发工具变得十分容易。

主机与目标机之间的通信是通过运行各自处理器上的进程来完成的,使主机上的开发工具和目标机的操作系统可以完全脱离相互连接的方式。

为了摆脱主机-目标机通信带宽和目标机资源的限制,Tornado将传统的目标机方的工具迁移到主机上,如shell、loader和符号表等。这样,系统不再需要额外的时间和带宽在主机和目标机之间交换信息,降低了对连接带宽的需求,也避免了目标机的资源(如内存)被工具或符号表大量占用,使得应用程序拥有更多的系统资源。同时这种迁移也使得各种主机开发工具独立于目标机存在,从而使同一主机平台上的工具可以用于所有的目标机系统。

作为一个应用软件开发环境,Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。

三、程序设计

我们选用的DSP开发工具是AD公司提供的VisualDSP。这是一个集成开发环境,支持对SHARC系列DSP芯片的开发。实时操作系统VxWorks的开发工具是WindRiver公司的Tornado集成开发工具。VisualDSP可以C语言或汇编语言编

写的DSP代码,最新版本的VisualDSP还支持C++。它还有1个优点,就是可以编译多片DSP的源代码,并产生下载文件,这就可以很方便地进行多DSP系统的软件模拟。

ADSP21160阵列的设计结构使它既可以构成单指令流多数据流(SIMD)的并行处理机,也可以构成多指令流单数据流(MISD)或多指令流多数据流(MIMD)的流水线处理机,视用户的要求而定。这两种并行方案的选择,简单来说就是选择分割数据流还是分割处理工序。SIMD方案的原理如图1所示。

以下介绍我们实验室承担的水声信号处理系统。本系统以VME总线为系统开发平台,前端调理模件、模数转换模件和前端控制模件等为VME插件,采用SHARC级DSP芯片阵列完成声纳信号实时处理,基于嵌入式实时操作系统VxWorks及X窗口系统的中央控制和显示。

图2是4片DSP的任务分配图。从前端采集来的信号,经波束形成和复解调,再经过窄带滤波后的信号分为两路,一路送去进行幅度检波,一路做频域处理。幅度检波就是对复信号求模,根据信号幅度判决有无目标存在。频域处理分两种情况:当发射信号为单频脉冲时,进行功率谱估计,然后根据多普勒频移估计目标速度;当发射信号为双曲调频信号时,进行相关处理。

声纳综合数据处理主要包括主动声纳信号处理和被动声纳信号处理。其中,主动声纳信号处理又根据发射信号的不同,分为非相干处理、相干处理、功率谱处理。声纳综合数据处理主要完成:目标自动检测、目标参数测定和动目标跟踪。

四、操作流水线

操作流水线是模块内数据计算与I/O的流水线,物理上表现为CPU与I/O端口的DMA之间的并行。在前端处理中由于数据率高,通信开销很大。以通信任务最为繁重的复解调和多普勒补偿模块为例,输入数据率为2Mw/s,输出数据率为4Mw/s,高速连接口LinkPort最高速率为100Mw/s,如果采用串行传输的话,通信时间就将占用60%以上的处理时间,计算时间显然严重不足。所以必须采用并行执行,流程图如图3所示。这也是一种异步流水线方式,每次传送和计算完成都须要设置标志以通知下一操作。

程序设计论文范文第12篇

自从CandidaFerria提出GEP概念乊后,国内外研究者对GEP做了大量研究工作。H.Md.Azamathulla[6]用GEP成功地建立了明渠河横向污染系数模型。Hung-HsinChen[7]GEP应用于Х同基釐投资,首先用GEP得出基釐买入卖出时机规则,再根据此规则结合基釐投资领域EQ和MV模型迚行基釐配置。实验数据表明,较乊于传统Х同基釐投资模型,引入GEP乊后模型具有更高投资回报率和更投资风险。AminuddinAb[8]人则用GEP建立了马拉亚河流泥沙流移预测模型,实验结果表明,GEP模型在泥沙流移预测上具有很好精度和鲁棒性。PauMartí[9]人用GEP评估微灌系统砂滤器出口溶解氧溶度,较于人工神经网络和多元线性回归算法,GEP模型有更高预测精度,能够给微灌系统设计者和实施者提Ν很好考。HuanhuanWang[10]则GEP引入配水网系统优化设计,在基准测试程序,GEP得出了较乊于其它优化算法更好解щ案幵且具有更快运算速度。SaeedSamadianfard[11]则首次GEP引入到了流摩擦系数评估上,实验结果表明,GEP在流摩擦系数评估上较乊于传统模型具有更高准确度。AmirH.Gandomi[12]人则使用GEP建立纤细钢混泥土切变强度预测模型,该模型预测切变强度准确度高,因此能够其应用于实际施工前期规划和设计,具有不错实用价值。文[13-15]则探讨了GEP本身改迚。如通过改变个解码法则,邓嶶[13]探讨了便于语义重用、分布评估深度优先解码法则。文[14]提出了一种型GEP算法UGEP,其染色由多个不受限制基因组成,基因不区分头部和尾部,该算法有地增加了种群多样性和染色个扩展性。杜欣[15]则GEP基因传统头尾结构变为了头身尾三段式结构,改迚结构有于加快算法收敛速度。以上简介绍了GEP研究、应用近ъ。从这些工作看,表示、算法结构大都一致,而它们却是制约算法性能重。以下对它们迚行改迚。

2开放尾部GEP

GEP算法拓展,还是GEP应用研究,GEP在个表示上多以2.1节所述结构为蓝本。这种结构虽然有地保证了基因有性,也使得GEP缺乏功能上多样性。开放尾部GEP不仅能够扩展表现型种类,而且能在不增加个表示复杂性基础上重用功能有地引入到GEP,扩大算法搜范围。考虑用GEP迚行符号回归实验,目标函数为x5+x4+x3+x2+x,在迚化过程可能会得到表现型为x3+x2+x,x5+x4,x3+x2+x为目标函数部分个,这些个有着较高适应度幵且接近目标函数数特征。如果这些运行过程产生最优个动态地保存到一个特定结构,在下一代迚化过程再从选取个加入到种群个基因尾部,由于这些个运算过程信息都得以保留,所以在个解码和计算过程都需重复计算,因此能够在不增加个计算复杂性基础上更好地逼近目标函数,从而提高运算精度。考虑更为一般情ъ,若GEP演化是具有一定特征程序,这个程序由ABCDE五个模块组成。在演化过程,GEP可能会产生形如AB,CE,BCD模块组合,若这些模块放入间存储结构,再其引入下一代迚化计算,这样便有助于算法更加准确地逼近目标。这一点类似于软件复用构件复用技术,已经得到构件存放入构件库,到下次开发时再从构件库取出构件迚行组合,生成构件,实现构件复用。基于以上考虑,我们提出了迚化过程产生优良个迚行保存幵且动态地引入迚化种群个基因尾部开放尾部GEP算法,以期实现运算精度提升。下面具介绍开放尾部GEP开放原理和实现机制。

2.1终端集与个体

传统GEP终端集只包含常数或者变量,开放尾部GEP终端集在常数和变量基础上引入了。对于给定函数集和终端集,开放尾部GEP基因头部由函数集和终端集仸意元组成,尾部则由开放尾部GEP终端集元组成。例如给定GEP基因头部长度h=6,函数集F={+,-,*,/},终端集T={a,b},则应开放尾部GEP终端集T={a,b,},满足上述件一个开放尾部GEP基因如下:其头部(用下划线标识)由6个函数集和终端集仸意元组成,尾部由7个开放尾部终端集元组成,其?代表了开放结构。为了保存开放结构(在运行每一代产生最优个),本文定义了ExpandTail结构。

2.2开放结构引入

开放尾部GEP开放结构(即运行过程产生最优个)引入是通过变异算子实现。具而言对于个+-*aba/abbbabaa,如果变异置发生在尾部第二个置b,则b替换为,变异后个则变为+-*aba/abbabaa。其转换为对应表现型为(a-b)+a*(a/)。

2.3与ExpandTail映

在引入?乊后得到个表现型为(a-b)+a*(a/),那么现在完成替换即与ExpandTail元映。本文给定映机制是:产生一个随机数R幵其对ExpandTail长度L迚行求余得到数t,即t=R%L。这样便与ExpandTail第t个元ExpandTail[t]迚行了Ц联。

2.4表现型计算

在完成映乊后便可接用ExpandTail[t]保存结果完成计算,因为ExpandTail保存了每一代优秀个所有信息,而不需重复计算此结构,实现了结构重用。如果ExpandTail[t]所对应个表现型为a+b那么个表现型为(a-b)+a*(a/(a+b))。

2.5特点

设F、T、T_open=T{?}和ExpandTail分代表函数符集、终端符集、拓展终端符集,以历史最优个集,则开放尾部GEP主特点如下:从表示复杂性看,开放尾部GEP与现有GEP没有本质差,若取头长为h、尾长为t,前者个表现形式是ht(FT)T_open,后者是ht(FT)T。从表现型看,开放尾部GEP与现有GEP解码法则似,本质上是后者解码法施用到ht(FT)(TExpandTail)个形式上(T_open””解释为ExpandTail某历史最优个)。由此可见,法个表示和解读基本没有增加难度(表示基本一致),更多可能有解却因尾部开放法则而移入到有法区,从而达到扩展视野目。比较表现型描述可以看到,法在扩展有法解搜视野同时,也为功能重用提Ν了便。这一点在个形式解读表述ht(FT)(TExpandTail)上有明显现。

3实验与分析

自GEP提出以,研究者们便对其迚行了结构和功能上诸多研究和改迚,是这些改迚算法往往适用于特定问题领域或满足特定性能需求,而传统GEP则因其不Ξ赖于特定问题域,而被各个领域研究者广泛地采用(2.3节所述应用研究采取传统GEP)。因此我们选取了传统GEP作为实验比较对象,用以说明开放尾部GEP通用意义。本文迚行了六组经典符号回归实验,比较了传统GEP和开放尾部GEP平均运算精度。每组实验都设置了同运行数。

4结束语

程序设计论文范文第13篇

案例需要选取复杂程度适中,学生比较感兴趣的实例,使课堂变得生动活泼。每位同学设计自己的实施方案,鼓励大家去思考、去创造,经过老师的讲解,可以完成整个案例的实现。学生之间可以通过讨论,经验交流,互相取长补短,完善自己的案例制作。当学生完成作品时,教师应当对此次案例的实施进行总结,并且在此基础上,将问题延伸,对其进行完善或改进,根据课时情况,鼓励学生设计并实现。

2与自身专业相结合

为了提高VisualBasic程序设计的实用性,增强学生学以致用的能力,需要将该门课程与学生所学专业有机的结合在一起,这样能够使学生的学习兴趣更加浓厚,提高学习热情。以交通运输专业为例,课程开展至图形图像的使用时,可以选取红绿灯变换例题作为学生的操作案例,如图2所示。在这个案例中,与交通专业的专业知识也许还有一定的差距,但这样一个简单的实例足以吸引学生的注意力,控件要求也比较简单,代码结构并不复杂,但是需要提醒学生注意的是需要对于Image3控件需要添加具有3个元素的控件数组,来存储红、黄、绿三种颜色。类似的案例教师可以通过网络搜索或图书资料等多种方法搜集,难度不能太大,如果太复杂,反而会影响学生学习的积极性,以上就是对于非专业学生,将案例教学法应用于理论教学中的一些建议。

3程序实践教学改革

程序设计论文范文第14篇

关键词遗传算法;TSP;交叉算子

1引言

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。总的说来,遗传算法是按不依赖于问题本身的方式去求解问题。它的目标是搜索这个多维、高度非线性空间以找到具有最优适应值(即最小费用的)的点[1]。

基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择算子、交叉算子和变异算子作用于种群,最终可得到问题的最优解和近似最优解。

2遗传算法程序设计改进比较

2.1基本遗传算法对TSP问题解的影响

本文研究的遗传算法及改进算法的实现是以C++语言为基础,在Windows2000的版本上运行,其实现程序是在MicrosoftVisualStadio6.0上编写及运行调试的。

1)遗传算法的执行代码

m_Tsp.Initpop();//种群的初始化

for(inti=0;i<m_Tsp.ReturnPop();i++)

m_Tsp.calculatefitness(i);//计算各个个体的适应值

m_Tsp.statistics();//统计最优个体

while(entropy>decen||variance>decvar)//m_Tsp.m_gen<100)

{

//将新种群更迭为旧种群,并进行遗传操作

m_Tsp.alternate();//将新种群付给旧种群

m_Tsp.generation();//对旧种群进行遗传操作,产生新种群

m_Tsp.m_gen++;

m_Tsp.statistics();//对新产生的种群进行统计

}

2)简单的遗传算法与分支定界法对TSP问题求解结果的对比

遗传算法在解决NPC问题的领域内具有寻找最优解的能力。但随着城市个数的增加,已没有精确解,无法确定遗传算法求解的精度有多高。一般情况下,当迭代代数增大时,解的精度可能高,但是时间开销也会增大。因此可以通过改进遗传算法来提高搜索能力,提高解的精度。

2.2初始化时的启发信息对TSP问题解的影响

1)初始化启发信息

在上述实验算法的基础上,对每一个初始化的个体的每五个相邻城市用分支界定法寻找最优子路径,然后执行遗传算法。

2)遗传算法与含有启发信息的遗传算法求解结果的对比

当城市数增至20个时,用分支定界法已经不可能在可以接受的时间内得到精确的解了,只能通过近似算法获得其可接受的解。试验设计中算法的截止条件:固定迭代1000代。表2中的平均最优解为经过多次试验(10次以上)得到的最优解的平均值,最优解的出现时间为最优解出现的平均时间,交叉操作次数为最优解出现时交叉次数的平均值。

表220个城市的TSP问题求解结果数据

算法交叉操作

次数最优解

出现时间平均

最优解

简单遗传算法80244.479.4s1641.8

含初始化启发信息的GA79000.237.4s1398.9

从表2中可以看出,当初始种群时引入启发信息将提高遗传算法的寻优能力。同时缩短了遗传算法的寻优时间和问题的求解精度。

2.3交叉算子对TSP问题解的影响

1)循环贪心交叉算子的核心代码

for(i=1;i<m_Chrom;i++)

{

flag=0;

city=m_newpop[first].chrom[i-1];//确定当前城市

j=0;

while(flag==0&&j<4)

{

sign=adjcity[city][j];//adjcity数组的数据为当前城市按顺序排列的邻接城市

flag=judge(first,i,sign);//判断此邻接城市是否已经存在待形成的个体中

j++;

}

if(flag==0)//如果所有邻接城市皆在待扩展的个体中

{

while(flag==0)

{

sign=(int)rand()/(RAND_MAX/(m_Chrom-1));//随机选择一城市

flag=judge(first,i,sign);

}

}

if(flag==1)

m_newpop[first].chrom[i]=sign;

}

2)问题描述与结果比较

下面笔者用经典的测试遗传算法效率的OliverTSP问题来测试循环贪心交叉算子的解的精度和解效率。OliverTSP问题的30个城市位置坐标如表3所示[2]。

从表4、图1中可以看到,贪心交叉算子大大提高了遗传算法的寻优能力,同时也降低了交叉操作次数。在多次试验中,贪心交叉算子找到的最优解与目前记载的最佳数据的误差率为2.7%。而部分匹配交叉算子找到的最优解与目前记载的最佳数据的误差率高达7%。从而可以得到交叉算子对于遗传算法

2.4并行遗传算法消息传递实现的核心代码

1)主程序代码

//接收各个从程序的最优个体

for(i=0;i<slave;i++)

{

MPI_Recv(Rchrom[i],chrom,MPI_UNSIGNED,MPI_ANY_SOURCE,gen,MPI_COMM_WORLD,&status);

}

//计算接收各个从程序的最优个体的回路距离

for(i=0;i<slave;i++)

{

fitness[i]=0.0;

for(intj=0;j<chrom-1;j++)

fitness[i]=fitness[i]+distance[Rchrom[i][j]][Rchrom[i][j+1]];

fitness[i]=fitness[i]+distance[Rchrom[i][0]][Rchrom[i][chrom-1]];

}

//找到最优的个体并把它记录到文件里

for(i=0;i<slave;i++)

{

if(1/fitness[i]>min)

{

sign=i;

min=1/fitness[i];

}

}

fwrite(&gen,sizeof(int),1,out);

for(i=0;i<chrom;i++)

fwrite(&Rchrom[sign][i],sizeof(unsigned),1,out);

fwrite(&fitness[sign],sizeof(double),1,out);

//每九代向从程序发送一个最优个体

if(gen%9==0)

MPI_Bcast(Rchrom[sign],chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);

2)从程序代码

//将上一代的最优个体传回主程序

MPI_Send(Rchrom1,chrom,MPI_UNSIGNED,0,gen,MPI_COMM_WORLD);

//每九代接收一个最优个体并将其加入种群中替换掉最差个体

if(gen%9==0)

{

PI_Bcast(Rchrom2,chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);

Tsp.IndiAlternate(Rchrom2);

}

//进行下一代的计算

Tsp.Aternate();

Tsp.Generation();

Tsp.Statistics();

3)并行遗传算法的性能

笔者在MPI并行环境下,用C++语言实现了一个解决TSP问题的粗粒度模型的并行遗传算法。该程序采用的是主从式的MPI程序设计,通过从硬盘的文件中读取数据来设置染色体长度、种群的规模、交叉概率和变异概率等参数。试验环境为曙光TC1700机,测试的对象是OliverTSP问题的30个城市的TSP问题。

正如在测试串行遗传算法所提到的数据结果,并行遗传算法也没有达到目前所记录的最好解,但是它提高了算法的收敛性,并行遗传算法的收敛趋势如图2所示[4]。

图2遗传算法的收敛过程

3结束语

本文通过对基本遗传算法的不断改进,证明了添加启发信息、改进遗传算子和利用遗传算法固有的并行性都可以提高遗传算法的收敛性,其中对遗传算法交叉算子的改进可以大大提高遗传算法的寻优能力。

参考文献

[1]刘勇、康立山,陈毓屏著.非数值并行算法-遗传算法.北京:科学出版社1995.1

[2]IMOliverDJSmithandJRCHolland,Astudyofpermutationcrossoveroperatorsonthetravelingsalesman[C]//ProblemofthesecondInternationalConferenceonGeneticAlgorithmsandTheirApplication,Erlbaum1897:224-230

程序设计论文范文第15篇

《Android应用程序设计》是一门理论与实践结合紧密的课程[3],该课程教学目标与社会对人才的需要密切相关,但由于受传统教学模式的影响,在具体的教学实践中不能取得预期的教学效果,主要表现以下方面。

1.1核心知识点模糊

2010年之后,很多高校开始开设Android相关课程,对其培养目标、课程体系和核心知识点还处于探索阶段,教学方法仍处在研究和实践阶段,导致教师在对核心知识点的选择各有不同。

1.2学生基础薄弱

《Android应用程序设计》课程要求学生掌握Java知识、数据库应用和计算机网络等方面的基础知识,对学生的实际动手能力要求较高,因此很多学生学习该课程存在一定的难度。

1.3实践教学环节薄弱

受传统教学模式的影响,《Android应用程序设计》的课程讲授仍采用理论授课为主、上机实验为辅的教学模式,缺乏与实际应用结合;部分教师虽然在课堂教学中采用了案例教学,但这些案例往往是对特定知识点的练习,与实际项目开发相差很大,学生毕业后遇到项目开发时不能正确科学分析具体问题;课后作业虽然在一定程度上锻炼学生的编程能力,但这些题目往往针对某个特定的知识点,导致很多学生作业完成得很好,但实践能力得不到提升[3-4]。

1.4考核方式不科学

目前大多数高校采用类似表1所示的课程考核标准;其中期末考试占70%,其他占30%。这种考核方式主要考核理论学习,与《Android应用程序设计》强调实际动手能力的教学目标不一致,往往导致学生的笔头能力强而实践能力薄弱,因此,这种考核方式不能科学地反映学生的实践能力、团队合作和交流沟通等综合素质。针对上述问题,结合黄河科技学院信息工程学院应用型人才培养的目标,确定《Android应用程序设计》课程的目标是培养学生对移动互联网产品的设计、开发、测试、维护等能力,因此通过在教学过程中引入案例教学法达到提高学生实际操作能力的目的。

2案例教学在《Android应用程序设计》中的应用

20世纪初,哈佛大学创造了“案例教学法”。案例教学法是指教师以学生为中心,围绕教学目标和教学任务,对实际应用的真实的情景加以典型化处理,使学生进入特定情境之中,然后通过学生对事件进行积极主动的探究活动,来提高学生分析问题和解决问题能力的一种教学模式[3-5]。

2.1案例的设计

教师在选择典型案例时,应考虑以下4个因素:①案例的选择应该覆盖若干个核心知识点;②案例的选择应该贴近实际生活且生动有趣;②确定案例的规模要适当;④确定案例的难度要适中;表2显示了《Android应用程序设计》核心知识点与典型案例的对应关系。教师对学生采用案例教学,能够充分调动学生学习的主动性和创造性。例如针对当前很多大学生都非常喜欢在手机应用商店下载自己喜好的APP,教师可以以这个兴趣为话题,引导学生开发简易音乐播放器为切入点,教会学生了解软件开发的流程以及在开发过程中应当注意过程控制。

2.2案例的实施

Android应用程序的开发环境需要在PC机搭建,搭建步骤:第一步,安装Java的运行环境;第二步安装Eclipse集成开发环境;第三步安装SDK套件,配置SDK的安装路径;第四步创建Android模拟器(AndroidVirtualMachine),可以模拟仿真不同型号的Android智能手机。

2.3案例的讨论

开展案例教学培养学生具有独立分析问题能力、项目管理能力、团队协作和沟通协调能力等职业素质,丰富学生的实际移动互联APP开发经验[7]。教师在案例教学过程中应注意以下几点:①要求学生掌握Android应用程序开发过程和方法;②采用启发式教学,恰当地引进教学案例;③学期开始就安排学生自由组队,每4~6人组成一个项目团队,以小组为单位完成一个Android应用程序的开发。教师在案例教学过程中穿插一些相关知识点,通过开发科学计算器,满足学生的成就感,提高学生的学习热情,使学生对Android课程产生浓厚的兴趣。2.4案例的考核结合《Android应用程序设计》的课程特点,该课程主要考核学生基本技能和解决实际问题的能力,因此课程考核采用如表3所示考核标准。

3结语