7 Fortran 程序设计7-函数
- 格式:ppt
- 大小:198.00 KB
- 文档页数:20
Fortran语⾔基本语法a、Fortran 之基本规定:在Fortran的规定中,程序的开始需先宣告变量形式,接着才能⽤这些变量来写程序内容,再整个程序中的第⼀⾏必须空⽩,除⾮键⼊英⽂字母c或*⽤以表⽰那⼀列为说明项⽽⾮实际之计算式⼦。
第⼆⾏⾄第五⾏为地址⾏,可⽤数字标⽰其地址,⽤以执⾏程序时控制之⽤。
第六⾏⽤以填⼊⼀个⾮零的数字或字母表⽰连结上⼀列的式⼦。
第7⾏⾄72⾏则为程序主体之所在,若不⼩⼼在72⾏之后键⼊程序Fortran将不于理会。
再程序的最后⼀列⽤ end命令告知程序终了。
b、变量(Variable)Fortran语法中的变量相当于函数上变量,但其种类则更多,举凡复数(complex)、整数(integer)、实数(real)、逻辑(logical)和字符串(character)等等。
对于变量的规定是变量的第⼀个字母为英⽂字母,其长度最长为6个字,除刚刚说的第⼀个字之外,其余的可为数字或字母,以下为⼏个简单范例: Integer count,pg1real time,po2pc、运算符号与内定函数:Fortran 基本的运算符号如下:+加法;-减法;*乘法;/ 除法**平⽅;**(n) n次⽅除了上列之基本运算符号之外,数值计算上常⽤之函数如三⾓等等亦以写成内定含式,常⽤的以下⼏项:log 对数函数;exp 指数函数;sin、cos、tan、cot、sec和csc等三⾓函数;abs 绝对值;asin、acos、atan、acot、asec和acsc等反三⾓函数。
D、控制结构:结构化Fortran有⼀些控制的结构,关系控制即是其中之⼀种,⽤以⽐较两变量之间关系,包含有:.lt. 表⽰⼩于.gt. 表⽰⼤于.eq. 表⽰等于.le. 表⽰⼩于或等于.ge. 表⽰⼤于或等于.ne. 表⽰不等于另⼀种重要的控制为逻辑控制,包含有:.not. .not. p => 若p为⾮真则为真.and. p .and. q => p和q为真则为真.or. p .or. q => p或q其⼀为真则为真.eqv. p .eqv. q => p和q同为真或同为⾮真则为真.neqv. p .neqv. q => p或q之中⼀为真⼀为⾮真则为真e、输⼊与输出结构:> Fortran 经常会有⼀些数值需要输⼊或计算的值需要输出,这时 Fortran 便提供了⼀些格式码好让使⽤者将欲输⼊或输出的数值针对其变量的特性作较佳的安排设计,兹举例如下,其中输出之资料格式完全相同:a、write(*,10) i,j,k10 format (1x,2I5,I3)b、assign 10 to ifmt10 format (1x,2I5,I3)write (*,ifmt) i,j,kc、write (*,'(1x,2I5,I3)') i,j,kd、character*11 fmtchfmtch='(1x,2I5,I3)'write (*,fmtch) i,j,k其中X表⽰空格之意,1x即是空⼀格, write为输出的指令,若改为 read 则为输⼊指令,I为整数的格式码, 2I5 表⽰输出的总位数为五,⽽这样的格式重复两次,其余尚有不同之各种格式码,常⽤的有:1. F 格式码,⽤于实数变量,其⼀般型态为 rFw.d ,其中F表实数,r为重复次数,w为总位数,⽽d为⼩数字数。
fortran课程设计一、课程目标知识目标:1. 掌握Fortran编程语言的基本语法和结构;2. 理解Fortran程序的基本运行流程和控制逻辑;3. 学会使用Fortran进行简单的数值计算和数据处理。
技能目标:1. 能够独立编写简单的Fortran程序,并进行调试和优化;2. 能够运用Fortran语言解决实际问题,如求解线性方程组、计算函数值等;3. 能够阅读和分析Fortran程序,理解程序的设计思路和算法。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习主动性和积极性;2. 培养学生严谨、细致的编程习惯,注重代码质量和效率;3. 增强学生的团队合作意识,学会与他人合作解决问题。
课程性质:本课程为计算机编程入门课程,以实践为主,理论联系实际,注重培养学生的动手能力和编程思维。
学生特点:学生为初中生,具备一定的数学基础和逻辑思维能力,对计算机编程有一定的好奇心。
教学要求:结合学生特点和课程性质,采用案例教学、任务驱动等方法,引导学生主动探索,注重实践操作和课堂互动。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. Fortran基础知识- 程序结构及基本语法- 数据类型与变量定义- 运算符与表达式- 控制结构(顺序、选择、循环)2. 简单数值计算与数据处理- 数组的使用- 函数与子程序- 简单的输入输出操作- 常用数学函数与模块3. 程序设计方法- 任务分析与问题求解- 算法设计- 编码实现与调试- 代码优化与效率分析4. 实践项目与案例分析- 线性方程组求解- 函数绘图- 数据排序与查找- 综合案例分析与实现教学内容根据课程目标制定,涵盖Fortran编程基础、数值计算与数据处理、程序设计方法等方面。
教学大纲明确教学内容安排和进度,结合教材章节进行组织。
在教学过程中,将依据学生的掌握程度,适时调整教学进度,确保内容的科学性和系统性。
教学内容与实践项目相结合,提高学生的实际操作能力和问题解决能力。
第7章属性的声明最后,对于数据我们剩下的工作,就是如何运用FROTRAN语言来完整地加以描述。
FORTRAN语言完成对数据的描述的语法单位是数据声明语句,在前面2章里面,我们整理好问题当中需要涉及的数据及其结构之后,要以FORTRAN语言写下来,就是使用FORTRAN的声明语句,这些语句的句法设计保证能够完备的描述我们关于数据所需要说明的一切属性。
数据对象首先需要予以说明的当然就是它的类型,因此我们首先给出对象的类型声明语句,特别地,需要说明在最初FORTRAN标准里面遗留下来的一种数据类型描述方法——隐式类型描述法,然后讨论各种数据对象所可能具有的属性。
● 数组属性;● 指针属性;● 值特征;● 对象可访问性与使用属性;● 特征兼容性;● 自动数据对象;● 存储关联。
由于本章集中讨论FORTRAN的声明语句,而声明的对象除了数据之外,其他的程序对象,例如函数,过程等也需要声明其类型或属性,因此本章一并讨论对其他程序对象的声明:● 过程属性;● NAMELIST语句;7.1 属性及其声明方式所谓一个对象的属性,就是程序使用该对象的方式。
本章所讨论的属性的大体分类与作为其名称的关键词见表7-1:表7-1属性的分类及其关键词数据类型INTEGERREAL(以及DOUBLE PRECISION)COMPLEXLOGICALCHARACTERTYPE(派生类型的名称由用户命名)数组属性DIMENSIONALLOCATABLE指针属性POINTERTARGET值设置DATAPARAMETER对象可访问性与调用 PUBLICPRIVATEINTENTOPTIONALSAVE过程属性EXTERNALINTRINSIC对象关系属性NAMELISTEQUIVALENCECOMMON这些关键词的使用,或者说属性的声明有2种方式:●在类型声明时附加属性说明,这种语句形式侧重在给出数据对象,属性说明是附加的;●使用单独的属性声明语句,这种语句形式侧重在说明属性本身。
中国海洋大学本科生课程大纲一、课程介绍1.课程描述:本课程主要针对环境科学与丄程学院动力方向(主要是本科三年级)的本科生开设的数值讣算的课程。
本课程作为编程技巧学习的重要课程,其主要任务是向学生介绍有关计算机程序设计的基本知识,使学生掌握FoitianQO和Foitran95的基本内容及程序设计的基本方法与编程技巧。
课题将理论讲解与上机实验紧密结合,旨在使学生在学习之后,能够熟练编写简单的程序,包括子程序和模块的编写。
因此,通过本课程的学习,可为学生以后进行动力方面的研究如数值模拟打下坚实的基础。
Tlie numerical calculation course is primarily aimed at undergraduates (mainly in Giade Tlii ee) ill the dynamic dii ection of the School of Environment Science and Engineering. As an important course for leaniiiig programming skills, its mainly task is to introduce students to the basic knowledge of computer programming,so that students can master the basic content of the Foitraii90 and Fortran95, as well as the basic methods and progianmiing skills. Tlie subject closely combines theoretical explanations with computer Experiment, aiming to enable students to write simple programs skillfully,including subroutines and modules. Through studying of tliis course, students can lay a solid foundation for their fxitiue dynamic research such as niunerical simulation.2.设计思路:Fortran语言是一门适合于科学和工程计算问题的程序设计语言;也是计算机高级语言发展史上使用最早的一种程序设计语言。
Fortran用法小结目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9 章,都是最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran 和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。
要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
如果有不妥的方,希望大家指正。
谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释Fortran=Formula Translator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
Fortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortr an90。
Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。
以下是77和90的一些格式上的区别。
Fortran 77:固定格式(fixed format),程序代码扩展名:.f或.for(1)若某行以C,c或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入出等);7~72为程序代码编写区;73往后被忽略;(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。
Fortran学习笔记——吴登将2014.10.15小技巧:!写出到excelexcel的默认格式,估计是大家所期望的输出格式。
方法很简单,只要知道xls文件的分列符号是tab键就行了,于是在同行的各数据间加上" "字符(按一下tab键,在fortran 输出时两边加上英文引号)就搞定了。
1.新建项目:步骤2. 面向过程的方法--就是程序的组成单位是函数(过程),也就是说,一个程序是由若干个函数组成的。
“结构化程序设计方法”应该与“面向过程的程序设计方法”是同义词。
面向对象的方法--就是程序的组成单位是类class ,程序是由若干个类组成的。
当然类里面有成员函数,所以这2种方法并不是相互排斥的。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
而面向对象的设计则是从另外的思路来解决问题。
整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
可以明显地看出,面向对象是以功能来划分问题,而不是步骤。
同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。
FORTRAN语言课程设计摘要:科技的日新月异使得计算机领域不断取得新的研究成果。
计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活和科研中也越来越离不开计算机。
特别是在天体运动方面需要运用到计算机处理大量的数据。
这次我选的实践课题是用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=B,这其中涉及的就是天体运动的轨迹问题,我利用从FORTRAN 90中学到的迭代、循环、子程序等知识设计程序,通过Fortran PowerStation 4.0进行运行、调试,不得不提的是QuickWin,它在绘制行星的运动轨迹上发挥出了相当大的贡献。
通过这次的实践我从中充分体会到了Fortran语言接近数学公式的自然描述,在计算机里具有很高的执行效率的最大特性。
同时我也看到了Fortran语言是一种极具发展潜力的语言,在数值计算中,Fortran语言仍然不可替代。
Fortran90标准引入了数组计算等非常利于矩阵运算的功能。
在数组运算时,Fortran能够自动进行并行运算,这是很多编程语言不具备的。
运用Fortran 语言,你能够运用很多现成的函数软件包,所以非常便利。
关键词:Fortran ;Jacobi迭代和Gauss-Seidel迭代;天体运动1设计思想这次的课程设计我选的是第三个课题,关于求解天体的运行轨道,原题如下:●用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=b。
一天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,在五个不同的点对小行星作了五次观察,测得轨道上五个点的坐标数据(单位:万公里)如下表所示:由开普勒第一定律知,小行星轨道为一椭圆,椭圆的一般方程可表示为:a1x2+2a2xy+a3y2+2a4x+2a5y+1=0分别将五个点的数据代入椭圆一般方程中,得到线性方程组,求出待定系数a1,a2,a3,a4,a5。
1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
2.2 用类型说明语句确定变量类型:可以改变I-N规则2.3 用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如 IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
2.4 数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2.5 使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/-1.0,-1.0,-1.0/DATA A/-1.0/,B/-1.0/,C/-1.0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*' '/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。