当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第十一章 子程序(赵永军)

资源类别:文库,文档格式:PPT,文档页数:49,文件大小:1.18MB,团购合买
1 函数子程序 2 子例程子程序 3 实参和虚参之间的数据传送 4 程序举例
点击下载完整版文档(PPT)

第11章子程序 §1函数子程序 §2子例程子程序 §3实参和虚参之间的数据传送 §4程序举例 2021/2/24

1 2021/2/24 §1 函数子程序 §2 子例程子程序 §3 实参和虚参之间的数据传送 §4 程序举例 第11章 子程序

引言 子程序是相对于主程序而言的,到目前为止, 我们涉及到的程序都只有主程序。 一个 Fortran程序可以由一个主程序和若干个 子程序组成。程序中可以只有主程序而没有子程 序,但不能没有主程序而只有子程序。 程序在运行时,总是从主程序开始执行,由主 程序调用子程序,最后在主程序中结束整个程序 的运行

2 子程序是相对于主程序而言的,到目前为止, 我们涉及到的程序都只有主程序。 一个Fortran程序可以由一个主程序和若干个 子程序组成。程序中可以只有主程序而没有子程 序,但不能没有主程序而只有子程序。 程序在运行时,总是从主程序开始执行,由主 程序调用子程序,最后在主程序中结束整个程序 的运行。 ❖引言

Fortran的子程序有三种:函数子程序、子例程 子程序、数据块子程序。 通常我们将函数子程序和子例程子程序统称为 子程序,数据块子程序仅用于给公用区中的变量赋 初值。本章提到的“子程序”即指函数子程序或子 例程子程序。 子程序可以被主程序调用,也可以被其它子程 序调用。但标准 Fortran77的子程序不能直接或间 接地调用自己,即不允许递归调用

3 Fortran的子程序有三种:函数子程序、子例程 子程序、数据块子程序。 通常我们将函数子程序和子例程子程序统称为 子程序,数据块子程序仅用于给公用区中的变量赋 初值。本章提到的“子程序”即指函数子程序或子 例程子程序。 子程序可以被主程序调用,也可以被其它子程 序调用。但标准Fortran77的子程序不能直接或间 接地调用自己,即不允许递归调用

§1函数子程序(P234238) 【引例】求函数(x)=x2+x+1在x=1,2,3时的值。 函数用一条语句即可实现,既可采用语句函数的形式, 也可采用函数子程序的形式。 write ( * )f(1.0), f(2.0), f(3.0) function f(x) end 仁x*x+X+1 end +1(x>0 【例111】计算函数:y=10(x=0)的值。 l(x<0 函数用一条语句无法实现,只能采用函数子程序的形 式。 51子程序 2021/2/24

4 2021/2/24 §1 函数子程序(p234-238) 【例11.1】计算函数: 的值。      −  = +  = ( ) ( ) ( ) 1 0 0 0 1 0 x x x y 【引例】求函数f(x)=x 2+x+1在x =1, 2, 3时的值。 函数用一条语句即可实现,既可采用语句函数的形式, 也可采用函数子程序的形式。 write(* , *)f(1.0), f(2.0), f(3.0) end function f(x) f=x*x+x+1 end 函数用一条语句无法实现,只能采用函数子程序的形 式。 §1 子程序

5 函数子程序: ②主程序:④ function y(x) write (*, Asinput x if(xgt. 0.o)then le read(", "x y=1.0 wrte()y=’,y(x) else if(x.eg. 0.0)then end 0.0 else y=-1.0 end if end ④4 51子程序 2021/2/24

5 2021/2/24 function y(x) if(x.gt.0.0) then y=1.0 else if(x.eq.0.0) then y=0.0 else y=-1.0 end if end write(* , *)‘input x’ read(* , *)x write(* , *)‘y=’, y(x) end 函数子程序: 主程序: §1 子程序 ② ① ③ ④

函数子程序的定义「函数头,也称为unom语句 定义形式: [类型说明] function函数名(虚参) 函数体 注: end ()函数名既是该函数的名字又代表该函数的函数值, 故函数名有类型,其类型既可隐式说明也可显式定义 (2)函数名后圆括号中为函数的虚参,多个虚参用逗号 隔开,没有虚参时括号不能省略。 虚参的类型既可隐式说明也可显式定义。显式完义时, 虚参的类型定义语句是放在函数体中的。 虚参可以是变量、数组或子程序名。 51子程序 2021/2/24

6 2021/2/24 一、函数子程序的定义 定义形式: 注: ⑴ 函数名既是该函数的名字又代表该函数的函数值, 故函数名有类型,其类型既可隐式说明也可显式定义。 ⑵ 函数名后圆括号中为函数的虚参,多个虚参用逗号 隔开,没有虚参时括号不能省略。 虚参的类型既可隐式说明也可显式定义。显式定义时, 虚参的类型定义语句是放在函数体中的。 虚参可以是变量、数组或子程序名。 [类型说明] function 函数名(虚参) end 函数体 函数头,也称为function语句 §1 子程序

函数子程序的定义「函数头,也称为unom语句 定义形式: [类型说明] function函数名(虚参) 函数体 注 end ()函数体中语句排列顺序与主程序相同,即说明语句 在前,执行语句在后。 个程序单元(主程序或子程序)中语句的具体顺序参 见教材p328附录工。 51子程序 2021/2/24

7 2021/2/24 一、函数子程序的定义 定义形式: 注: ⑶ 函数体中语句排列顺序与主程序相同,即说明语句 在前,执行语句在后。 一个程序单元(主程序或子程序)中语句的具体顺序参 见教材p328附录Ⅱ。 [类型说明] function 函数名(虚参) end 函数体 函数头,也称为function语句 §1 子程序

附录工一个程序单元中语句的顺序 8 program, function, subroutine, block data语句 注 implici语句 释 ormat parameter语句 其它说明语句 行语句 data语句 语句函数语句 可执行语句 end语句 交出句可以任地与mp句和基资明 data语句可以任意地与语句函数语句和可执行语句交替 出现。 51子程序 2021/2/24

8 2021/2/24 §1 子程序 注 释 行 program, function, subroutine, block data语句 format 语句 parameter语句 implicit语句 其它说明语句 data语句 语句函数语句 可执行语句 end语句 附录Ⅱ 一个程序单元中语句的顺序 parameter语句可以任意地与implicit语句和其它说明 语句交替出现。 data语句可以任意地与语句函数语句和可执行语句交替 出现

函数子程序的定义「函数头,也称为 Function语句 定义形式: 类型说明] function函数名(虚参, 函数体 注 end (4)函数体下面的end语句表示结束本子程序,返回到调 用它的程序单元。 若在函数体中间返回,需用 return语句 (5)在返回前,须将需要返回的计算结果赋给函数名。 即函数名至少要在函数体中被赋值一次。 赋值形式:函数名=计算结果 51子程序 2021/2/24

9 2021/2/24 一、函数子程序的定义 定义形式: 注: ⑷ 函数体下面的end语句表示结束本子程序,返回到调 用它的程序单元。 若在函数体中间返回,需用return语句。 ⑸ 在返回前,须将需要返回的计算结果赋给函数名。 即函数名至少要在函数体中被赋值一次。 赋值形式:函数名=计算结果 [类型说明] function 函数名(虚参, …) end 函数体 函数头,也称为function语句 §1 子程序

(6)函数子程序是一个独立的程序单元,函数体内所用10 的变量、语句标号等的作用范围仅局限于本子程序内。 每个函数子程序仅通过函数名和虚参或公用区)与其它 的子程序以及主程序建立联系。 小结: Fortran77中有三种形式的函数 ◆内部函数:是 Fortran系统自己提供的函数,如:abs、 sqrt等函数。 ◆语句函数:用一个语句定义的函数,只能被其所在的 程序单元使用。 ◆函数子程序,即外部函数:用户定义的子程序,可以 被其它子程序、主程序调用,但不能自己调用自己。 51子程序 2021/2/24

10 2021/2/24 ⑹ 函数子程序是一个独立的程序单元,函数体内所用 的变量、语句标号等的作用范围仅局限于本子程序内。 每个函数子程序仅通过函数名和虚参(或公用区)与其它 的子程序以及主程序建立联系。 小结:Fortran77中有三种形式的函数  内部函数:  语句函数:  函数子程序,即外部函数: 是Fortran系统自己提供的函数,如:abs、 sqrt等函数。 用一个语句定义的函数,只能被其所在的 程序单元使用。 用户定义的子程序,可以 被其它子程序、主程序调用,但不能自己调用自己。 §1 子程序

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共49页,可试读17页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有