第3章 Fortran语言程序设计初步 §1 Fortran语言发展概况 §2简单的 Fortran程序分析 §3 Fortran源程序格式 4常量 §5变量 §6 Fortran内部函数 §7 Fortran算术表达式 §8 Fortran的简单语句(教材39~313) §9程序举例 2021/2/24
1 2021/2/24 第3章 Fortran语言程序设计初步 §1 Fortran语言发展概况 §2 简单的Fortran程序分析 §3 Fortran源程序格式 §4 常量 §5 变量 §6 Fortran内部函数 §7 Fortran算术表达式 §8 Fortran的简单语句(教材3.9~3.13) §9 程序举例
§1 Fortran语言发展概况(45-46)2 Fortran语言发展简史 Fortran语言是世界上第一个被正式推广使用的高级语 言, Fortran是 Formula translation的缩写,意为“公式 翻译”,它最初是由数值计算方面的需要而发展起来的。 ◇1957年,M公司开发出第一套 Fortran语言,运行 在BM704计算机上 令1966年,美国标准化协会ANS制定了两个标准版本 ①标准 Fortran(x39-1966)(也就是 Fortran66);②标 准基本 Fortran(x310-1966)。这时 Fortran语言还不是 结构化的程序设计语言。 ◆1976年,ANS重新对 Fortran66进行了评估和拓展, 公布了新的 Fortran标准,也就是 Fortran77。 2021/2/24
2 2021/2/24 §1 Fortran语言发展概况(p45-46) 一、Fortran语言发展简史 Fortran语言是世界上第一个被正式推广使用的高级语 言,Fortran是Formula Translation的缩写,意为“公式 翻译”,它最初是由数值计算方面的需要而发展起来的 。 ❖ 1957年,IBM公司开发出第一套Fortran语言,运行 在IBM704计算机上。 ❖ 1966年,美国标准化协会ANSI制定了两个标准版本: ①标准Fortran(x3.9-1966)(也就是Fortran66); ②标 准基本Fortran(x3.10-1966)。这时Fortran语言还不是 结构化的程序设计语言。 ❖ 1976年,ANSI重新对Fortran66进行了评估和拓展, 公布了新的Fortran标准,也就是Fortran77
3 Fortran77是具有结构化特性的编程语言,它 在短时间内取得了巨大的成功,广泛地应用于 科学和工程计算,几乎统治了数值计算领域。 ◆1980年, Fortran77被国际标准化组织so接 纳为国际标准。 ◆1991年发布的 Fortran90改进了旧版 Fortran 的型式,加入了对象导向的观念与指针,并同 时加强数组的功能。 Fortran现在已经有了 Fortran95, Fortran 2003 §1 Fortran语言发展概况 2021/2/24
3 2021/2/24 Fortran77是具有结构化特性的编程语言,它 在短时间内取得了巨大的成功,广泛地应用于 科学和工程计算,几乎统治了数值计算领域。 ❖ 1980年,Fortran77被国际标准化组织ISO接 纳为国际标准。 ❖ 1991年发布的Fortran90改进了旧版Fortran 的型式,加入了对象导向的观念与指针,并同 时加强数组的功能。 ❖ Fortran 现在已经有了Fortran95,Fortran 2003。 §1 Fortran语言发展概况
二、 Fortran语言的特性 今 Fortran语言的最大特性是接近数学公式的自然描述, 在计算机里具有很高的执行效率。 ◆易学,语法严谨。 ◆可直接对矩阵和复数进行运算,这一点类似 Matlab。 ◆自诞生以来广泛地应用于数值计算领城,积累了大量高 效而可靠的源程序。 ◆很多专用大型数值运算计算机针对 Fortran做了优化。 ◆广泛地应用于并行计算和高性能计算领域。 ◆ Fortran90, Fortran95, Fortran2003的相继推出使 Fortran语言具备了现代高级编程语言的一些特性。 51 Fortran语言发展概况 2021/2/24
4 2021/2/24 二、Fortran语言的特性 ❖ Fortran语言的最大特性是接近数学公式的自然描述, 在计算机里具有很高的执行效率。 ❖ 易学,语法严谨。 ❖ 可直接对矩阵和复数进行运算,这一点类似Matlab。 ❖ 自诞生以来广泛地应用于数值计算领域,积累了大量高 效而可靠的源程序。 ❖ 很多专用大型数值运算计算机针对Fortran做了优化。 ❖ 广泛地应用于并行计算和高性能计算领域。 ❖ Fortran90,Fortran95,Fortran2003的相继推出使 Fortran语言具备了现代高级编程语言的一些特性。 §1 Fortran语言发展概况
三、 Fortran集成编程平台( Windows系统下) 5 目前主要有两个: Compaq visual Fortran,ntel Visual fortran。 Compaq visua| Fortran发展历史: 令 Fortran power station40(FPs40),微软公司开 发的编程平台,1997年3月转让给DEC公司。 4 Digital Visual Fortran(DVF), Fortran Power Station的DEC公司版本。 令 Compag visual Fortran(CVF),1998年1月, DEc公司被康柏公司收购, Digital Visual Fortran更 名为 Compag visual Fortran。一个著名的版本是 Compaq visua| Fortran65。目前康柏公司已并入惠 普公司。 Compag visual Fortran的最新版是66 51 Fortran语言发展概况 2021/2/24
5 2021/2/24 三、Fortran集成编程平台(Windows系统下) 目前主要有两个:Compaq Visual Fortran,Intel Visual Fortran。 Compaq Visual Fortran发展历史: ❖ Fortran Power Station 4.0 (FPS 4.0),微软公司开 发的编程平台,1997年3月转让给DEC公司。 ❖ Digital Visual Fortran (DVF),Fortran Power Station的DEC公司版本。 ❖ Compaq Visual Fortran (CVF),1998年1月, DEC公司被康柏公司收购,Digital Visual Fortran更 名为Compaq Visual Fortran。一个著名的版本是 Compaq Visual Fortran 6.5。目前康柏公司已并入惠 普公司。Compaq Visual Fortran的最新版是6.6。 §1 Fortran语言发展概况
6 四、几个著名的 Fortran程序包 MSL-国际数学和统计链接库 BLaS--Basic Linear Algebra Subroutines 8 LAPACK--Linear Algebra PACKage 51 Fortran语言发展概况 2021/2/24
6 2021/2/24 四、几个著名的Fortran程序包 ❖ IMSL--国际数学和统计链接库 ❖ BLAS--Basic Linear Algebra Subroutines ❖ LAPACK--Linear Algebra PACKage §1 Fortran语言发展概况
§2简单的 Fortran程序分析(P46-48)7 【例31】求x、y、z三个数的平均值。(p46) c Calculate the average of the numbers x=90.5注程行:首字任必须是C或“ y=87.0}第2~4行:赋值语句,分别给3个变量 z=68.5X、y、z赋值。 aver=(x+y+2)3.0第5行:计算赋值语句,计算3个 数的平均值并赋给变量aver write(", ")The three numbers are,X, y, z writer(,+) average=,aver6m7行:输出语句 分别输出3个数和它们 end→表示程序结束 的平均值。 2021/2/24
7 2021/2/24 C Calculate the average of the numbers x=90.5 y=87.0 z=68.5 aver=(x+y+z)/3.0 write(* , *) 'The three numbers are', x, y, z write(* , *) 'average=', aver end 【例3.1】求x、y、z三个数的平均值。(p46) 第2~4行:赋值语句,分别给3个变量 x、y、z 赋值。 第5行:计算赋值语句,计算3个 数的平均值并赋给变量aver。 第6~7行:输出语句, 分别输出3个数和它们 的平均值。 §2 简单的Fortran程序分析(p46-48) 注释行,首字符必须是“C”或“*”, 表示该行是注释行。 表示程序结束
8 ◆变量:在程序中按规定规则组合的、代表存 储单元的符号串。 变量代表的存储单元在计算机内存当中 每个变量存放一个数(包括字符),由编译系 统自动分配。 对变量中存放的数,再次赋值时被覆盖, 否则一直保留。 §2简单的 Fortran程序分析 2021/2/24
8 2021/2/24 ◆变量:在程序中按规定规则组合的、代表存 储单元的符号串。 变量代表的存储单元在计算机内存当中, 每个变量存放一个数(包括字符),由编译系 统自动分配。 对变量中存放的数,再次赋值时被覆盖, 否则一直保留。 §2 简单的Fortran程序分析
【例32】分别计算半径R=1、3、12、5时的圆周 长C(p47) 本题思路: ①计算圆周长C的公式都一样,即C=2mR。 ②编程时,分别给半径R赋不同的值,用同一个 公式计算c; ③据此,把程序写成两部分:子程序专门用于 计算圆周长;主程序用不同的半径值分别调用子程 序,并输出C值。 §2简单的 Fortran程序分析 2021/2/24
9 2021/2/24 本题思路: ①计算圆周长C的公式都一样,即C=2πR。 ②编程时,分别给半径R赋不同的值,用同一个 公式计算C; ③据此,把程序写成两部分:子程序专门用于 计算圆周长;主程序用不同的半径值分别调用子程 序,并输出C值。 【例3.2】分别计算半径R=1、3、12、5时的圆周 长C。(p47) §2 简单的Fortran程序分析
c主程序 10 program ex3 2 write(*,)'r=,1.0,"c=,c(10) write(*,*)'r=,30,"c,c(3.0) write()r=,120,c=,c(12.0) write(,)r=,50,C=,c(5.0) end c子程序 function c() 3.1415926 C=2.0*pi*r end §2简单的 Fortran程序分析 2021/2/24
10 2021/2/24 §2 简单的Fortran程序分析 C 主程序 program ex3_2 write(* , *) 'r=', 1.0, ' c=', c(1.0) write(* , *) 'r=', 3.0, ' c=', c(3.0) write(* , *) 'r=', 12.0, ' c=', c(12.0) write(* , *) 'r=', 5.0, ' c=', c(5.0) end C 子程序 function c(r) pi=3.1415926 c=2.0*pi*r end