7 Fortran 程序设计7-函数

合集下载

补充相关计算机Fortran77语言知识

补充相关计算机Fortran77语言知识

4.FORTAN函数
FORTRAN提供了一些系统函数供某些专门运算,如求 sinx 三角函数的值, ,cosx,指数函数ex,对数 lnx,logx 等, 变量,即可得到相应的值。如: SIN(1.0)= =0.8414709 LOG 3.0)=log3=1.098612 ( INT 8.6)=8 ( SIGN 4.5,-0.5)=-4.5 ( SIGN -0.5, 4.5)= 0.5 ( REAL(8)=8.0
(二) FORTRAN语言数据类型说明 1.常量
常量是指其值始终不变的一些量,在Fortran77 中允许6种常量类型:

⑴整型常量(Integer)
⑵实型常量(Real) ⑶双精度常量(Double)

⑷复型常量(Complex)
⑸逻辑常量(Logical)
⑹字符常量(Character)
①系统为每个整数分配10~13列,数据打印在这些列的 右端。

②一个实数分配给15 ~ 18列,其中小数部分6 ~ 7列。如 果实数的值很大,以上格式无法容纳,则系统会自动改成用 标准化的指数形式输出。
③对一个用指数形式输出的实数分配给15列,其中指数部 分4 ~ 5列,小数部分6列。
④如果实数的整数部分位数多于系统规定的有效位数(例如 IBM—PC为7位),或实数的数值小于1,则在输出时会自动 转换成规范化的指数形式输出。如123×106和0.132的输 出为,
类型的转换是从左而右进行的,在遇到不同类型的算 术量时才进行转换。如:1/4*20.0=0.0
(四) 运算的误差问题
整型量没有任何误差(确认在整数范围内)。 实型量的运算由于有效位数的限制会出现一些误差, 在运算中尽量不要使两个相差很大的数值直接相加或相 减,判断实数相等时用 A B 。

Fortran语言基本语法

Fortran语言基本语法

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课程设计

fortran课程设计

fortran课程设计一、课程目标知识目标:1. 掌握Fortran编程语言的基本语法和结构;2. 理解Fortran程序的基本运行流程和控制逻辑;3. 学会使用Fortran进行简单的数值计算和数据处理。

技能目标:1. 能够独立编写简单的Fortran程序,并进行调试和优化;2. 能够运用Fortran语言解决实际问题,如求解线性方程组、计算函数值等;3. 能够阅读和分析Fortran程序,理解程序的设计思路和算法。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习主动性和积极性;2. 培养学生严谨、细致的编程习惯,注重代码质量和效率;3. 增强学生的团队合作意识,学会与他人合作解决问题。

课程性质:本课程为计算机编程入门课程,以实践为主,理论联系实际,注重培养学生的动手能力和编程思维。

学生特点:学生为初中生,具备一定的数学基础和逻辑思维能力,对计算机编程有一定的好奇心。

教学要求:结合学生特点和课程性质,采用案例教学、任务驱动等方法,引导学生主动探索,注重实践操作和课堂互动。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. Fortran基础知识- 程序结构及基本语法- 数据类型与变量定义- 运算符与表达式- 控制结构(顺序、选择、循环)2. 简单数值计算与数据处理- 数组的使用- 函数与子程序- 简单的输入输出操作- 常用数学函数与模块3. 程序设计方法- 任务分析与问题求解- 算法设计- 编码实现与调试- 代码优化与效率分析4. 实践项目与案例分析- 线性方程组求解- 函数绘图- 数据排序与查找- 综合案例分析与实现教学内容根据课程目标制定,涵盖Fortran编程基础、数值计算与数据处理、程序设计方法等方面。

教学大纲明确教学内容安排和进度,结合教材章节进行组织。

在教学过程中,将依据学生的掌握程度,适时调整教学进度,确保内容的科学性和系统性。

教学内容与实践项目相结合,提高学生的实际操作能力和问题解决能力。

Fortran程序设计第7章属性的声明

Fortran程序设计第7章属性的声明

第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种方式:●在类型声明时附加属性说明,这种语句形式侧重在给出数据对象,属性说明是附加的;●使用单独的属性声明语句,这种语句形式侧重在说明属性本身。

Fortran程序设计-20200831-高阳

Fortran程序设计-20200831-高阳

中国海洋大学本科生课程大纲一、课程介绍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程序设计初步

源程序的编辑与运行
创建源程序文件,即编写源程序,通常以 .f 为扩展名 可以使用任何文本编辑器编写 也可以用 f77 编译并连接源文件 (可以一步完成)
g77 -o
输出文件
源文件
-o :指定输出文件名,缺省为 a.out -c :只编译不链接,即只生产目标文件(.o 文件) -Ipath :指定或增加包含文件(如 *.h)的搜索路径 -Lpath :指定(增加)库文件的搜索路径 -lname:与库文件 libname.a 链接 -O, -O1, -O2, -O3 :优化开关 -g :在目标码中加入更多信息,用于程序调试 运行编译生成的可执行文件
Fortran 中的变量
类型声明语句 (显式声明) 推荐方式
类型声明语句 变量列表
integer i, i2 real x, y double precision sum complex c1, c2 logical l1, l2 character ch1, ch2
!
real*8 sum
Fortran 中的变量
! 表示10个3.1
简单输出语句
输入/输出三要素:对象(数据)、格式、设备 Fortran 输出语句分类 表控格式输出、格式输出、无格式输出
表控输出格式:按计算机系统规定的格式输出 整数:每个整数占 11 列,数印右端,左补空格 实数:占 15 列,数印右端,左补空格,小数部分占6列 表控输出语句
逻辑运算符两边为逻辑量 逻辑量:逻辑常量、逻辑变量、关系表达式 两个逻辑常量:.True.
.False.
运算结果为逻辑值:真(True)或 假(False)
算术运算 → 关系运算 → 逻辑运算 .not. →.and. →.or. →.eqv./.neqv.

fortran程序设计第3章

fortran程序设计第3章

2、用类型说明语句确定变量类型 FORTRAN中有六个类型说明语句: INTEGER语句(整型说明语句) REAL语句(实型说明语句) DOUBLE PRECISION语句(双精度说明语句) COMPLEX语句(复型说明语句) LOGICAL语句(逻辑型说明语句) CHARACTER语句(字符型说明语句) 例如: INTEGER A, SUM, TOTAL
3.6 简单的输出语句 3.6.1 输出语句的作用和分类
程序的作用是对输入的数据进行加工处理,然后将结果 输出。最常用的输出是显示。可用PRINT语句实现打印输出。 输出一个或多个数据时需要通知系统以下信息: (1)输出哪些数据; (2)用什么格式输出(如每个数据占多少列,小数部 分占多少列,是用小数形式输出还是用指数形式输出?) (3)在什么设备上输出。 3 如果已确定用显示器输出,可以用PRINT语句,用 PRINT语句意味着只能在显示器输出。在PRINT语句中将上 面提到的第1、2个信息告之系统。
3. 隐含说明语句IMPLICIT语句 IMPLICIT INTEGER (A, C, T-V) IMPLICIT REAL (I, J) IMPLICIT INTEGER (A, B), REAL (I, K)
说明:
1、类型说明语句最优先,IMPLICIT语句次之,I-N 规则最低。 例如: IMPLICIT REAL (I, J) INTEGER IMAX 2 、IMPLICIT语句和类型说明语句应该出现在程序 单位中的所有执行语句的前面,IMPLICIT语句又 应该在所有的类型说明语句的前面。
3.4 FORTRAN算术表达式 3.4.1 算术运算符和运算优先级
五种算术运算符号:+ - * / ** 不同的运算符按以下优先级次序: **最高 *, /次之 +, -最低 同一优先级的两个运算,按“先左后右”原则。 例如: 3+5-6.0*8.0/4**2

第3章 Fortran程序设计初步-1(fortran77)

第3章 Fortran程序设计初步-1(fortran77)

在FORTRAN77的基础上添
加了很多内容,FOR95只 能视为FOR90的修正版, 加强了并行运算方面的 支持功能.
5/116
NEXT
3.2 简单程序分析
10 20 30 40 50 60 70 80 01234567890123456789012345678901234567890123456789012345678901234567890123456789
3/116
3.1 FORTRAN语言发展概况




FORTRAN-Formula Translation (公式翻译) 是世界上第一个被正式推广使用的高级语言 (于1954年提出; 1956年正式使用) Fortran是数值计算领域里使用的主要语言; 发展(有代表性的几个版本): 早期的版本不是 Fortran Ⅱ 1958 结构化语言,没 Fortran Ⅳ 1962 (Fortran 66) 有直接实现三种 基本结构的语句 Fortran 77 1978 (使用goto实现 Fortran 90 1990 特定操作).F77
35/116
FORTRAN编译系统—连接装配
36/116
FORTRAN编译系统—开始运行
37/116
FORTRAN编译系统—显示结果
38/116
FORTRAN编译系统—开始运行
FORTRAN90编译系统界面简介 FORTRAN90编译系统操作步骤 FORTRAN90编译系统基本设置等
3.3 Fortran书写格式
Fixed Format(固定格式)
第1个字符
当为字母c、C或*,这一行文本会当成说明 或批注,不会被编译。 当为数字,就是用来给这一行程序代码取 个代号,不然只能是空格。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
九 函数和子程序

♦ ♦ ♦ ♦ ♦
概述
语句函数 函数子程序(自定义函数)(funcation) 子例行程序(subroutine) 实参和虚参之间的数据传送 其它应用
♦ 概述
使用顺序结构、选择结构和循环结构可设计和编写一些比较复杂的程 序; 使用函数和子例行程序能编写编写结构清晰、层次分
明、短小简洁的好程序,是编写高质量、高水平、高效率 程序的有效手段。 在设计和编写程序时,程序中不同部位会多次出现相同或相 似的运算或处理过程(程序代码)
PROGRAM water_prices REAL a,b,c,h,area,cubage,p,q,w_prices !输入三棱台底面三角形边长a,b,c和三棱台高h READ *,a,b,c,h !计算三角形面积area p=(a+b+c)/2 q=p*(p-a)*(p-b)*(p-c) area=SQRT(q) !计算三棱台容积cubage cubage=area*h !计算水价w_prices PRINT *,'每天需支付水价为:',t_prices END
用函数方法求解两问题:
!使用函数求解问题一程序,area为外部函数 PROGRAM total_prices EXTERNAL area !声明area为外部函数 REAL a,b,c,t_prices READ *,a,b,c !输入三角形边长a,b,c t_prices=area(a,b,c)*1000 !计算总价t_prices !定义外部函数area PRINT *,'地块总价为:',t_prices FUNCTION area(x,y,z) END REAL area,x,y,z,p,q !计算三角形面积area !使用函数求解问题二程序,area为外部函数 p=(x+y+z)/2 PROGRAM water_prices q=p*(p-x)*(p-y)*(p-z) EXTERNAL area !声明area为外部函数 area=SQRT(q) REAL a,b,c,h,cubage,w_prices END FUNCTION area READ *,a,b,c,h !输入棱台底面三角形边长a,b,c和台高h cubage=area(a,b,c)*h !计算三棱台容积cubage w_prices=cubage*0.8*2 !计算水价w_prices PRINT *,'每天需支付水价为:',w_prices END
一般方法求解
!计算五边形面积area area=area1+area2+area3 PRINT *,‘五边形面积:',area END
函数方法求解
PROGRAM pentagon REAL a,b,c,d,e,f,g REAL area !输入五边形5条边长和两条对角线 READ *,a,b,c,d,e,f,g !计算五边形面积area area=t_area(a,f,e)+t_area(g,d,f)+t_area(b,c,g) PRINT *,'五边形面积为:',area CONTAINS !定义计算任意三角形面积函数t-area FUNCTION t_area(a,b,c) REAL t_area,a,b,c,p,q p=(a+b+c)/2 计算任意三角形 q=p*(p-a)*(p-b)*(p-c) t_area=SQRT(q) END FUNCTION t_area END
例如:求五边形ABCDE的面积问题,如图9-1所示。 已知:五边形5条边长为:a、b、c、d、e,两条对角线为: f、g。五边形面积计算问题变为3个三角形面积计算问题,3个 三角形面积area1、area2、area3之和就是五边形面积area。 三角形面积A求解公式:三边长为x,y,z。
p (x y z ) / 2 A p(p x)(p y )(p x)
PROGRAM total_prices REAL a,b,c,area,p,q,t_prices !输入三角形边长a,b,c READ *,a,b,c !计算三角形面积area p=(a+b+c)/2 q=p*(p-a)*(p-b)*(p-c) area=SQRT(q) !计算总价t_prices t_prices=area*1000 PRINT *,'地块总价为:',t_prices END
如情况2:
பைடு நூலகம்
问题一:某房地产公司买下一块呈三角形形状的地盘准备盖住宅小 区,地价为每平方米1000元,求这块地的总价。
求解问题的核心是计算三角形面积。
问题二:某单位有一个呈三棱台形状的水箱,平均每天消耗2水箱水, 水价为每立方米8角钱,计算每天需支付的水费。
求解问题的核心是计算三角形面积。
用一般方法求解:
e E d
A a area1 f area2 g D c area3 C b B
如情况1:
PROGRAM pentagon REAL a,b,c,d,e,f,g REAL area1,area2,area3,area,p,q !输入五边形5个边长和两条对角线 READ *,a,b,c,d,e,f,g !计算三角形ABE的面积area1 p=(a+f+e)/2 q=p*(p-a)*(p-f)*(p-e) area1=SQRT(q) !计算三角形BDE的面积area2 p=(g+d+f)/2 q=p*(p-g)*(p-d)*(p-f) area2=SQRT(q) !计算三角形BCD的面积area3 p=(b+c+g)/2 q=p*(p-b)*(p-c)*(p-g) area3=SQRT(q)
对于比较复杂的问题 ,设计和编写程序需要采用科学的程 序设计方法。模块化和结构化程序设计方法是常用的程 序设计方法,使用这些方法可大大降低问题的复杂性 ,使复 杂问题的求解变得相对容易。使用函数和子程序可使用 模块化和结构化程序设计方法设计和编写大型、复杂、 高质量程序。 对复杂问题逐层进行任务分解,得到问题分层结构图。根 据分层结构图, 逐层设计和编写程序。最顶层问题用主程 序实现,其余层子问题用函数或子例行程序实现,最后将主 程序和若干函数或子例行程序组装成完整的可运行程序。 设计和编写主程序时,可假定下一层子问题已经通过函数 或子程序实现,暂不考虑其具体实现内容
相关文档
最新文档