中南大学计算机实践报告

发布 2019-05-26 17:14:15 阅读 9276

中南大学。

本科生课程设计(实践)任务书、设计报告。

计算机程序设计基础—fortran)

计算机基础教学实验中心。

2012年 6 月 29 日。

通过本课程设计,培养程序设计能力以及综合解决实际问题的能力。通过自己分析问题、寻求算法、编写、调试程序的过程,掌握fortran程序设计与调试方法,提高灵活运用所学知识解决问题的能力。

二、设计任务。

线性病态方程组问题:

1)求方程的解。

2)将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。

3)计算系数矩阵a的条件数并分析结论。

提示:矩阵a的条件数等于a的范数与a的逆矩阵的范数的乘积,即。这样定义的条件数总是大于1的。

条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差。矩阵a的条件数,其中,aij系矩阵a的元素。

要求:1)方程的系数矩阵、常数向量均从文件中读入。

2)定义求解线性方程组ax=b的子程序,要求该子程序能求解任意线性方程组。

3)在主程序中调用子程序,并对求解结果进行对比分析。

4)绘制常数向量修改前后所求得的方程解的数据分布图。

三系统坏境。

系统开发环境为 console applicat三. 系统功能及系统详细设计。

四系统功能及系统详细设计。系统功能分析针对题目要求, 我设计的系统主要为了解决题目中所提出并要求的问题。子程序则各尽其用,不仅可以作为整体系统的重要部分,还可以使用于通用问题。

如三角分解法, 可以解决线性方程组的求解问题。求范数和矩阵求逆的子程序,可以解决相应的问题。再如绘图程序,将问题(2)的结果直观化,更直观明显的表现了病态方程的特点与定义。

(1)主程序模块: 用三角分解法,首先将系数矩阵的值及常数项的值存入文件中,然后通过读取文件中值调用子程序 lud求出原方程的解,并将解存入文件中;对于矩阵求逆法,同理,首先将系数矩阵的值及常数项的值存入文件中,然后通过读取文件中值调用子程序 lub 和 lud求解和 quickwin 图形库。出原方程的解,并将解存入文件中。

(2) 、子程序模块: 1. subroutine agaus 这个子程序是将最大元素放主对角线上; 2.

subroutine lud 这个子程序是将 a 分解成 l、u 的乘积; fanshu这个子程序求范数。 njz用来求逆矩阵。

lub 这个子程序是利用分解后的上三角阵求解矩阵的;

3)绘图模块: 先从文件中读取两次所求的解,然后利用绘制方程解的数据分布图。比较前后所求得的方程解的图形可以很容易看出常数向量的微小变化对解的影响较大。

五. 遇到的问题及解决的办法。

在设计和调试这个程序过程中,我遇到了很多问题。这些问题对我的编程进度有很大影响。主要的方面包括以下几点:

1.在读取数据的时候遇到了“end of file encoutered ”,这句话的意思是遭遇到了文件的结尾。这是因为自己设计的文本文件是格式不对或者就是没有数据,导致不能正常运行出来。 2 . 如果在一个子程序中遇到 “ unresolved external symbol_main ” 和。

1unresolved externals” ,这是由于没有主程序或者是没有和主程序建立连接导致的。 3.在编译链接是出现“cannot open debng/yin exe for writing” ,这是因为所写程序不在工作区间里面。解决办法就是将程序都调入一个空间。

4. 在格式输入输出语句中要确定好每一个变量的范围及类型,否则可能导致运行不正确。 5. 循环变量的变化范围需要明确,防止数据溢出。

6. 在绘制折线图时坐标轴的间距需计算好,才能使图的大小和位置恰当。 第一绘制折线图时坐标轴的间距需自己先计算好, 这样在能保证图形有较好的效果。

不然图形大小、位置可能都不会达到理想的效果。在绘制折线图时,刚刚开始总是有一部分不能显示,因为解中有一个负解的,而坐标轴刚刚开始没有定义负半轴。最后采取将纵坐标都加上一个适当的数将坐标总体平移,这样整个图形就可以显示在屏幕上。

在设置坐标起点时,刚刚开始是任意选的一个数,后来发现这样的图形不太理想。解决的办法就是将第组值设置为绘图起点。尽管这个程序不是很完美,我相信在以后的学习中我会尽量去改正这些缺陷与不足,尽自己最大努力做到最好。

六、 心得与体会

课程设计是一次实践的过程,需要自己动手去做,这可以锻炼我的动手能力。在编写程序的时候我发现自己的知识掌握得并不是很好,熟练程度也不够, 所以在编写程序的时候碰到了很多问题,出现了很多错误,不过通过看书或者是与同学,老师交流,我们比较好的解决了这个问题。能够让自己的程序比较好地得到运行,让自己更加牢固地掌握了这些知识,虽然在这个程序的编写过程中花。

费了很多时间但我觉得只要是自己动手做了这件事情,就学到了很多的东西。这不仅是锻炼我们的学习情况,也是为我们今后走入社会,接受工作打下基础。 通过这一个星期的学习,我自己在程序编写方面有了很大提高。

通过这两个星期的学习,不仅锻炼了自己的动手能力,而且也让自己的知识有了一个系统的提高。在这次实践中,我们都是综合了本学期所学的全部编程思路,如果想编好这个程序, 那就必须把书本上的问题都解决好。 比如我们用到 “文件” ,绘图”等方面的有关内容。

对于图形问题,我花费了很多时间去研究,因为这一方面的知识老师讲得很少只有通过自己去不断地探索, 才能很好的解决这个问题。这次实践使我受益匪浅,虽然在这个程序中还存在有些不足,但我相信通过这次实践我能够把自己的思维提升了一个高度, 能够让自己更加好的适应这个社会,锻炼了自己的动手做事能力,这也不能是不是一个提高。总之,这次实践让我学到了不少东西,提高了自己的能力,是一次很有意义的实践。

参考文献] 1.《fortran90 程序设计教程》 学出版社 《 刘卫国、 戴忠 2. fortran90 程序设计上机指导与习题选解》 主编:

京邮电大学出版社 3.徐士良.fortran 常用算法程序集(第二版).清华大学出版社 4.网上资料北主编:刘卫国、蔡旭晖北京邮电大。

大学计算机基础实践教程实践心得

通过一个假期的关于 大学计算机基础实践教程 的学习,我深刻地认识到了学习好计算机的必要性。我们处在一个信息技术高度发达的社会,学好计算机已经成为21世纪的新青年的必修课。如果想在这个社会立足,计算机就已经成为你的必备技能之一。在这本书里,我学到了计算机的基础知识,比如指法以及中英文输入,window...

大学计算机基础授课计划

编写说明。一 使用课程标准或实用大纲 二 使用教材 书名 主编 出版社 大学计算机文化基础 王璐烽中国原子能出版社。三 课时情况 1 课程标准或大纲要求本课程总学时数 40 学时 2 专业计划本课程期数 1 学期。实际教学总时数 40 学时 3.本期总课时数学时 每周 4 学时 10 周其中 理论教...

计算机专业大学生毕业实习报告

考核的内容,就是在公司的商务 上任选一个页面,然后在规定的时间内做完,我还不错,技术比较熟练,是第四个做完的。我是学院06级信息安全系的学生,在去前毕业后,我来到了 公司进行实习工作,我主要做的是 设计工作,我发现通过实习工作,自身专业技术提高的非常快,通过在 公司进行工作,我学到了很多在学校接触不...

计算机导论学习总结报告

计121 张进 1213022016 当初填志愿的时候还没考虑过学计算机这方面,觉得这方面虽然前途很广,但是也算个热门专业。学的人太多,市场也算是饱和了,比起其他专业这个竟争也算比较大的了,何不如选个相对较冷的专业,将来就业也能好一点。现在上学后才发现自己看的太简单了,计算机科学与技术专业才是个出人...

计算机导论读书报告

读书报告。李佳 计1501班 41524111 一 引言。如何认识计算学科,存在很多争议。1984年7月,美国计算机科学与工程博士单位评审部的专家在犹他州召开的会议上对计算认知问题进行了讨论。这一讨论以及其他类似讨论促使 美国 计算机协会与 美国 电气与电子工程师学会计算机分会于1985年春联合组成...

计算机培训计划

一 指导思想 为进一步促进教师现代化教育信息意识和能力的提高,充分运用远程教育资源在各学科教学中的运用,推动学校教育现代化的进程,使每一位教师在现代教育思想和理论的指导下,熟练运用多 技术开展教育 教学活动,打破传统教学模式,从而提高师生的信息素养和能力,促使课堂教学效率的提高,适应远程开放教育这种...

计算机培训方案

计算机应用基础培训方案。一 培训目的。计算机应用基础是一门实践性很强的应用课程,通过培训学习,不仅要求村级工作人员掌握计算机的初步知识,更要求村级工作人员具有使用计算机的基本能力。培训的目的是培养村级工作人员的计算机基本操作能力,为普及和推广计算机在日常工作中的应用奠定良好的基础,利用内部局域网逐步...

计算机基础计划

三穗职高2011秋计 2 班 计算机应用基础 教学计划。短短一个月的暑假已经过去,又回到了这个熟悉的讲台。这个学期我担任了计算机基础这门学科的教学工作,计算机知识是新世纪每个首先具备的一门十分重要的技能,作为中等职业学校的学生,都应该了解计算机,掌握计算机的各种常规操作,并能应用于各行各业。为能更好...