作为最早出现的高级编程语言之一.pdf
《作为最早出现的高级编程语言之一.pdf》由会员分享,可在线阅读,更多相关《作为最早出现的高级编程语言之一.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、利用C语言开发高效率的有限元程序上海交大国家模具CAD工程中心叶又上海大学计算中心戚燕摘要本文通过与FORTRAN语言的比较,说明利用C语言开发有限元程序的可行性。结果表明,C语言不仅可以提供更强大实用的编程环境,同时由于提供指针变量、动态内存分配函数和结构变量,使其编写的软件在维护性、可读性和内存利用效率方面具有明显的优势,是有限元软件的发展方向。关键词C语言有限元程序FORTRAN语言1引言FORTRAN作为最早出现的高级编程语言之一,在科学计算领域应用广泛。当前有限元程序的源代码几乎清一色由FORTRAN写成,此情况还在持续。与FORTRAN一样,C也是一种结构化的程序设计语言。结构化程
2、序设计要求程序的逻辑结构有顺序、标准。当学生利用实力挑战的测验方式从题库中调题选做时,计算机可随时给出得分和评价。当学生为了综合检验本门课学习情况时,可以从题库中抽调任意难度系数的100分试题,进行模拟考试,以便对自己的学习情况有个综合了解,做到胸中有数。可见,该试题库亦可作为教师出题的试题库,一举多得。5系统的运行环境与设计特点本系统在中文W indow s3.1环境下运行。设计上采用画面管理的方式。即可同时运行多道程序,执行多项任务,又能充分利用内存,方便地交换信息。同时,为CA I系统综合处理图形、图象、声音、动画、文本等多种信息媒体提供了优越的平台。利用这个平台,电子技术CA I系统具
3、备了画面管理窗口的功能。所以,该系统在设计上采用全屏幕图形化设计方法,以汉字菜单为主,图形菜单为辅,同时辅以合理地热键,配合光标键、回车键或鼠标键,选择各级菜单及实现各种功能。根据电子技术课程本身的特点和CA I专家系统的功能,该系统在设计上突出了以下特点:511模块化的设计方法为了便于移植和升级、整个系统采用面向对象的设计方法,用C和C+语言实现。其中“学习指导”、“ECAD”、“试题库”、“图形库”均是可以独立运行的软件式模块。各模块之间溶汇贯通,亦可并行使用。为便于升级和扩充,每个模块均配有特设的录入程序,且操作方便,以满足电子技术飞速发展的需要。512图形功能强大由于电子技术CA I系
4、统内容丰富,而电子技术课程涉及到的图形符号众多。如果调用现行绘图软件到该系统,使用很不方便,而且不利于升级。因此,在该系统中设置了图形库、配合图形库设计的绘图软件使用方便。各种图形符号在屏幕上可任意翻转、移动、扩大、缩小、改变颜色,电路图可自动布线,自动剪裁、无论是专业人员,还是非专业人员,使用该系统,均可绘出标准而精美的电路图。513高度交互、虚拟现实在计算机的应用软件设计中,人机交互界面占有十分重要的地位,因此,界面美观,清晰、使用方便,高度交互性,成为衡量应用软件质量的又一标志。为达此目标,我们尽了最大努力,使整个系统构思新颖、功能完善,高度智能化。友好的界面,为用户提供了一个舒适而生动
5、的学习与设计环境。尤其是封面的精良设计,更加给用户以美的享受、使用户在欣赏之余乐于等待系统的启动。(定稿日期96年7月)参考文献11 倪安顺.W indow s3.1使用手册,学苑出版社.1993。21 刘传菊.模拟电子技术基础学习与解题指导.黑龙江教育出版社.1995。31 刘传菊等.用C+实现计算机辅助逻辑设计与仿真.计算机工程与应用.1996.334计算机工程与应用1997111研究与探讨选择和循环3种基本结构,C提供了编写结构化程序所需要的语句。同时,使用C也便于进行模块化程序设计,C程序由众多的函数组成,函数是进行模块化程序设计的基本单位,与FORTRAN的子程序功能相似。另外,C还
6、提供了较FORTRAN丰富得多的运算符和数据类型,甚至允许用户利用基本数据类型自己定义数据类型。虽然,C的发展只有十几年,却有一种后来居上的趋势,开始成为开发高质量软件的主要编程语言。目前在各种机型和各种操作系统上都运行有C语言的编译器,提供了丰富的库函数和实用程序,以改善用户程序界面,I?O效率,并简化编程。本文的主要目的是通过与FORTRAN语言的比较,说明利用C语言开发有限元程序的可行性。C语言提供的指针数据类型实现了真正意义上的内存动态分配,同时合理有效地定义结构数据类型极大地增加了程序可读性和维护效率,特别是对于大型有限元程序的开发调试。这些无疑是C语言的诱人之处。2FORTRAN与
7、C语言的语法结构作为一种功能强大的高级语言,C提供了FOR2TRAN程序设计所需的语句,以完成科学计算编程的3种基本逻辑结构顺序、选择、循环。FORTRAN语言的主要可执行语句与C有明确的语句对应完成相应的功能,见表1。表1FORTRAN主要句法与C的对应关系FORTRANCEL SE IF(.)THENelse if(.)IF(.)THENif(.)EL SEelse END IFDO I=a,b,cfor(i=a,i=b,i+=c)DO I=a,bfor(i=a,i=b,i+)END DOSUBROU T I N E子程序名(.)类型 函数名(.)ENDRETURNreturn;PR I
8、N T3,cout endl;nnn CON T I NU EL abel_nnn:GOTO nnngoto L abel_nnn;C最初出现是用作UN IX操作系统的记述语言,发展之初一直作为“较低级语言”编写与硬件关系密切的底层软件。由于UN IX的成功和广泛使用,C语言开始流行起来,并成为一种普遍使用的程序设计语言。由于二者产生的背景不同,它们是有差异的。主要表现在函数的调用和参数的传递,特别是多维数组的处理方面不如FORTRAN直观和易于理解。FORTRAN从一开始就用于科学计算,必须处理诸如矩阵一类的数学问题,多维数组是它的主要使用工具,而C语言一开始主要是面向系统程序员的,在应用中
9、很少会涉及多维数组。但这并不意味着在处理多维数组时会遇到很多麻烦。文3提供了利用指针数据类型处理多维数组及其在函数中传递的两种方法。利用这些方法可以方便地将FORTRAN的数组操作移植成C语言的。3动态内存分配技术让我们先来研究一下利用FORTRAN编写的有限元程序所使用最广的一种内存动态管理方法。该方法在程序一开始就在无名公共块中定义一个大数组A,在程序不同运行阶段存放不同的内容。CPROGRAM MA I NCOMMONA(100010)REALALTOM=100000CALLNODEI NCSUBROU T I NE NODEI NCNUNP-NUMBER OF NODE PO I NT
10、SCNDOF-NUMBER OF DEGREE OF FREEDOM SPER NODE PO I NTCNSOD-SW ITCH OF SI NGLE OR DOUBLE PRE2C ISI ONCOMMON A(1)REAL ACOMMON?NODE?NUNP,NDOF,NSODN 1=1N 2=N 1+NUNPN 3=N 2+NUNPN 4=N 3+NDOF3NUNPN 5=N 4+NUNP3NSODN 6=N 5+NUNP3NSODCALL I NPU T(A(N 1),A(N 2),A(N 3),A(N 4),A(N 5),A(N 6),NDOF)RETURNENDSUBROU T
11、I NE I NPU T(NU SNP,NPNP,MDOF,X,Y,Z,NDOF,)I M PL IC IT REAL38(A-H,O-Z)D I M EM SI ON NU SNP(1),NPNP(1),MDOF(NDOF,1)D I M ENSI ON X(1),Y(1),Z(1)由于A数组的大小必须事先给定,为满足解题规模,会尽可能开得足够大。当求解一个较小问题时,它同样占据着很大的内存,无疑造成计算机资源的浪费,这种情况对于目前多任务多进程的操作环境更为重44研究与探讨1997111计算机工程与应用要。同时,为了求解更大规律的问题,还必须调整A数组的大小,重新编译源程序。实际计算问题的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作为 最早 出现 高级 编程 语言 之一
限制150内