FORTRAN第二章
fortran90第二章
2.1.2 符号常量
£ 符号常量,是用一个标识符来代表一个常量。符号常量常用 PARAMETER语句来定义。例如: PARAMETER (PI=3.1416,M=10)
£ 该语句定义了两个符号常量PI和M,在该程序单位内,PI代表3.1 416,M代表10
£ PARAMETER为特有的常量定义标识,要定义的项必须放在() 内,如果有多项,项之间要用逗号隔开。
FORTKAINND值中字变节量二的进位类型精度的定义取有值三范种围(方绝对式值:)
1.
类型说4 明语4句
8
8
32 64
7位 15位
0,[10-38,10+38] 0,[10-308,10+308]
£格式为:类型说明符 变量名1,变量名2…
说明:大于最大值,产生上溢错,小于最小值,按0处理。
£其中类型说明字为:
£ 符号常量与变量有着本质的区别,PARAMETER语句是非执行语 句,变量对应于一个存储单元,程序执行时,可将表达式的值存 放到变量所对应的存储单元中(即给变量赋值)或从变量所对应 的存储单元中取出相应的值。 符号常量不能当变量使用
例1 输入圆柱体的半径和高,求圆柱体的表面积和体积
PROGRAM fex REAL R, H, S, V PARAMETER (PI=3.141593) PRINT *, “请输入半径和高:” READ *, R, H S=PI*R*2*H V=PI*R**2*H PRINT *, “表面积为:”, S PRINT *, “体积为:”, V END
SIN(x)
实型 求正弦
sinx
SQRT(x)
实型 求平方根 √x
TAN(x)
实型 求正切
第2章Fortran语法基础
• 不可执行程序单位,在程序中主要用来为其他程 序单元提供定义。不可执行程序单元有两种:模 块程序单元和数据块程序单元。
2.5 命名方式
• 在Fortran中为对象命名有一定的要求。简单的说, Fortran 77的命名要求和Fortran 90/95的命名要求是不同 的。本节主要介绍不同标准下的命名方式。
• 在Fortran 77标准中,程序和变量等对象的名字是由不多 于6个字符(包括英文字母A-Z、a-z和数字0-9)组成的字 符段。同时,对象名字的第1个字符必须是字母,名字的有 效使用范围原则上仅限于一个程序单元之中(内部过程除 外)。下面的代码段演示了Fortran 77标准的对象命名方 式。
• 在C语言程序中,需要使用“/*”和“*/”这样的特殊标 记来界定注释的内容而不管行边界。采用这种方式进行注 释时经常出现的错误就是漏掉结束的界定符,使得后面的 语句也变成了注解;好处也很明显,就是能够方便的实现 代码的块注释。
• 而Fortran 95语言中的“!”,Ada语言中的“-”,或是 C++语言中的“//”,注释都是在行的任意位置开始直到行 的末尾结束。这种做法更为合理、不容易出错,但要实现 大段代码的整体注释就不是特别方便了。
• INTEGER 0B
!错误
• INTEGER C-10
!错误
• REAL sin
!正确
• REAL test:real
!错误
2.6 程序单元和语句顺序
• 程序单元是程序中的基本组成部分,了解程序单 元的用途可以加深对计算机程序的理解。本节主 要介绍Fortran程序中的程序单元和句顺序的基本 概念及相关规定。Fortran中的程序单元分为两大 类:可执行程序单元和不可执行程序单元。
第2章Fortran程序设计基础.ppt
• 子程序是构造大型程序的有效工具,一个实用程序(不 管是系统程序还是应用程序),一般都含有多个子程序。
• FORTRAN 90 中的子程序按子程序完成的功能划分有子 例行程序、函数子程序、数据块子程序等,按是否定义 在某个特定的程序单元内部来划分有程序单元子程序、 模块子程序以及内部(INTERNAL)子程序等,这些通称为 子程序。
FUNCTION SM(M,N,L) SM=0 DO I=M,N
IF (L>0) THEN SM=SM+I**L
ELSE
PROGRAM EXAM2
!开始主程序单元定义
WRITE(*,*)'S1=',SM(1,100,2) !调用函数子程序SM完成S1的计算
WRITE(*,*)'S2=',SM(100,140,3)
PROGRAM EXAM1B
INTEGER X
6.2 函数子程序
语句函数由于要求在一个语句中完成函数的定义,因而它只能解决一些较 简单的问题,当函数关系比较复杂,用一个语句无法定义时,语句函数就 无能为力了,这时需要用到函数子程序。
6.2.1 函数子程序的定义
函数子程序是以保留字 FUNCTION 开头,并以保留字 END结束的 一个程序段,该程序段可以独立存储为一个文件,也可以和调用 它的程序单元合并存储为一个程序文件。函数子程序的定义格式 是:
INTEGER F(X,Y)=X**2+Y**2 ! 定义了一个整型函数F
NF(X,Y)=X**2+Y**2 F
! 也同样定义了一个整型函数
2.语句函数的虚参
在语句函数定义语句中的函数参数称为虚参,他们本身是没有值的,只有在 函数调用时才用实际参数(称为实参)代替。实参或是常数、或是一个有确定 值的变量、或是一个可以计算值的表达式。虚参在形式上与普通变量相同, 一个语句函数中的虚参不能同名。不同语句函数中的虚参可以同名,虚参也 可以和程序中的变量同名。
Chapt-2Fortran简介
§2.2 Fortran语句功能分析
例 请上机调试下面这两个程序看看能否 得到相的同结果。求1!~10!的累加 和 5 S=0 10 DO I=1,10 20 P=1 30 DO J=1,I 40 P=P*J 50 END DO 60 S=S+P 70 END DO 80 WRITE(*,*) ″S=″;S 90 END
§2.1 Fortran 语言中的运算量、 运算符和表达式
六、Fortran表达式求解时运算的先后次序 括号→函数→乘方→乘除与整除→取余→加减,同级运算则按从左到右的顺 序进行。 七、将一般数学表达式翻译为BASIC表达式时应注意的问题 1. Fortran 中括号不分大、中、小,一律用小括号(),但使用括号时必须 配对 例如 数学表达式: X={B[(B+C)-D]+E} Fortran表达式:X=A*(B*(B+C)-D)+E) 2.乘号“*”不能省,也不能用点代替 3. 翻译除号“÷”时要在适当的地方补加括号 a +b a +b b 数学表达式: y= +d
§2.1 Fortran 语言中的运算量、 运算符和表达式
二、变量(数值型变量和字符型变量) 变量是指程序支行过程中值发生变化的量 1. 数值型变量与字符型变量的取名规则:变量名中只允 许出现英文字母和阿拉伯数字(A~Z和0~9),而且 必须以字母开头,在变量名中不允许插入空格和运算 符。有整型变量、实型变量、双精度型变量 2.字符型变量($)与数值型变量的区别,简单变量与下 标变量的区别 A$ A AI A(I)
§2.1 Fortran 语言中的X) ATN(X) LOG(X) EXP(X) 数学函数 sinx cos(x)
tanx
Fortran2
implicit 语 句 ( 隐 含 说 明 语 句 ) : 可 以 用 implicit语句将某一字母开头的全部变量指定为 implicit 语句将某一字母开头的全部变量指定为 所需类型。 所需类型。
IMPLICIT IMPLICIT INTEGER (A, C, T-V) INTEGER (A-C), REAL (I, K) (ALOGO
write?vc?vc?kmh?write?ve?ve?kmh?write?time??minutes?endlogo21fortran21fortran常量常量22fortran22fortran变量变量2323内部函数内部函数2424算术表达式算术表达式2525赋值语句赋值语句2626简单的输入输出语句简单的输入输出语句2727程序执行控制语句程序执行控制语句2828程序举例程序举例
LOGO
2.4 Fortran算术表达式 算术表达式
一些正误比较
LOGO
2.4 Fortran算术表达式 算术表达式
表达式运算中的类型问题: 表达式运算中的类型问题:
77允许不同类型的算术量 包括整型、 允许不同类型的算术量( FORTRAN 77允许不同类型的算术量(包括整型、 实型、双精度、复型)间的算术运算, 实型、双精度、复型)间的算术运算,但不允许 在算术量和非算术量(如逻辑型、字符型) 在算术量和非算术量(如逻辑型、字符型)之间 进行算术运算。 进行算术运算。 同类型的算术量之间运算的结果仍保持原类型, 同类型的算术量之间运算的结果仍保持原类型, 5/2=2、1/2=0。不同类型时, 如 5/2=2、1/2=0。不同类型时,编译系统遵循 低级转换成高级” 实型比整型高) “低级转换成高级”(实型比整型高)原则将它 们转换成同一类型,然后进行运算。 们转换成同一类型,然后进行运算。 类型的转换是从左而右进行的, 类型的转换是从左而右进行的,在遇到不同类型 的算术量时才进行转换。 的算术量时才进行转换。如:1/4*20.0=0.0
第二章 关于FORTRAN的初步知识
前一页
休息
6
FORTRAN语言的常量
2:实型常量
有两种表示方法: (1)小数点法表示: 如: 12.5 0.12 12. .55等 (小数点表示) (2)科学计数法(指数)表示: 实数或整数E或e整数
如: 1.8635E2 5.d-1 等 (指数表示)
前一页 休息 7
FORTRAN语言的常量
3:双精度型常量
前一页
休息
14
FORTRAN语言的变量
2:隐含说明语句
implicit double precision (字母1,字母2)或(单个字 符),...... implicit complex (字母1,字母2)或(单个字符),...... implicit logical (字母1,字母2)或(单个字符),...... implicit character (字母1,字母2)或(单个字符),...... 其意义见前页。
5:逻辑型常量
逻辑型常量的表示: .true. 表示真值 .false. 表示假值
6: 文字型常量
文字型常量的表示: ‘若干个字符’ 例如:'abcdef' '123456xyz'
前一页 休息 10
FORTRAN语言的变量
标识符的命名规则:
以字母(不分大小写)开头,后跟若干个字母或数字。 变量类型: 1:隐含说明(约定) 凡不加说明的标识符,以字母I~N( 或i~n)开头的为整型变量,以其它字母开头的变量为实 型变量。 2:显示说明语句 3:隐含说明语句
前一页 休息 12
FORTRAN语言的变量
1:显示说明语句
complex 若干个标识符彼此间用逗号分隔
定义的每一个标识符为复型变量。
第二章_Fortran程序设计基础
例如:要在不同的平台下表示±1010内的整数 I, 可以采取如下的声明方式:
INTEGER,PARAMETER :: K10 = SELECTED_INT_KIND(10) INTEGER(K10)I
先声明依赖于特定平台的种类常数, 再以该常数为种类参数声明变量。
::表示在变量声明数据类型的同时,给变量赋初值
Fortran 90 允许出现多达39个续行。 允许出现多达39个续行。
三.空白的作用
^ 空白没有意义,不参加编译。适当地运用空白空间,可 以增加程序的可读性,例如程序块中的代码缩进。 以增加程序的可读性,例如程序块中的代码缩进。 DO 1 I=1,10 DO 2 J=1,20 …… 2 CONTINUE 1 CONTINUE
有下列几点值得注意: (1)只能以字母开头(3M,_Right 为无效标识符); (1)只能以字母开头(3M, 为无效标识符) (2)不能含有空格字符(Time Rate为无效标识符); (2)不能含有空格字符(Time Rate为无效标识符) (3)不区分字母大、小写(Vel,VEL,vel 为同一标识符); (3)不区分字母大、小写(Vel,VEL, 为同一标识符) (4)长度限定为31 个字符(Fortran 77 为6个字符); (4)长度限定为31 个字符(Fortran 个字符) (5)避免与关键字、标准例程重名。 (5)避免与关键字、标准例程重名。
平台(处理器和编译器)不同,相同的种类参数可能 有不同的取值范围。 缺点:影响程序代码的可移植性。 Fortran 90 提供SELECTED_INT_KIND 函数,即:
result = SELECTED_INT_KIND(r)
result 代表整数 n 在范围-10r<n<10r内的种类参数
Fortran程序设计第2章-简单的程序设计
错例:2<‘A’, (4)复型:只能进行 .EQ.、.NE.
(5).EQ.(= =)或.NE.(/=)要小心使用 0.1*10==1结果可能为.FALSE.
实型量一般要改写: abs(0.1*10-1)<=1E-6 运算规则:先计算算术表达式的值
第二章 简单的程序设计
§2.1 程序表达式 §2.2 赋值语句 §2.3 输入输出语句
§2.1 程序表达式
Fortran语言中的表达式是指一个或多个运算的组合。 表达式是由运算符和括号将各运算元素(常量、变量、 函数、数组元素)连接起来以表示某种运算或操作的 式子。 Fortran的表达式可分为四种: #算术表达式、 #关系表达式、 #逻辑表达式、 #字符表达式
3、算法的表示(流程图)
4、编写程序
5、静态调试(口头运行)
6、上机调试
7、文档说明
例:鸡兔同笼,总头数H,总脚数F,求鸡兔各多少只 (x,y) 分析:
x +y=H
2x+4y=F
x y
4H F 2
F 2H 2
程序举例:
【1】求三角形面积:
【2】输入5个数,要求打印出其中绝对值最 大的数。
(1)功能:用一个符号代表一个常量,称为符号常 量(常数),通常目的在于简化程序码、减少错误、 方便修改以及增加可读性。 (2)写法: PARAMETER(PI=3.14159) 例:Area=PI*radius**2 Real,Parameter ::G=9.8 &&说明类型时赋值 (3)位置:位于可执行语句之前
(逻辑不等、逻辑异)
FORTRAN语言第2章(共8章)PPT课件
Fortran对于关键字不予保留,即允许其关键 字作为其他实体的名称。但是,不主张这样做,因 为使用关键字作为实体名称会到导致程序难以理解 和阅读。
例如:用户可以将自己的变量名、数组名等命 名为read、print、end、integer、program、 print、do等关键字,编译程序会根据上下文来识 别一个字符串究竟是关键字还是实体名称。
型。 Fortran常量包括整型、实型、复型、字符型和逻辑型
五种内部类型常量和一种特殊的常量——符号常量,下面
分别介绍它们的表示方法及其注意事项。
第一节 FORTRAN常量
三、FORTRAN常量 1、整型常量
整型常量由0~9的一系列数字组成,包括正数、负数 和0。如125,-258,+28等。注意:
n代表整数部分,
m代表小数部分,不允许出现非数值 字符(如逗号、顿号和空格等)。
第一节 FORTRAN常量
三、FORTRAN常量 2、实型常量
指数形式:用来表示一个绝对值非常大或非常小的数。 指数形式的实数三部分组成:有效数字、E(或e)和指数。
例如: +0.125E+2、-132.48e-1、243E-3、 .12e+2,1.2e+1
Fortran 95规定:标识符只能由字母、数字、 下划线和美元符号“$”组成,且起始字符必须是 英语字母。
Fortran的关键字
关键字是Fortran95中的一种特定字符串。 如 read*,a,b
read是关键字。 类似的关键字有:print、write、program、 integer、do、if、then、end、subroutine、 function等。 在编译环境中正确的关键字会以蓝色字符显示。 关键字都有特定的含义,在程序中有具体的位置要求, 不能随意改变,否则将产生一个语法错误。
_fortran-第二章fortran基础知识全解
•程序单元中的每个Fortran 变量有唯一的名字, 变量名是内存中特定位置的标号,该标号方便 人类记忆和使用。Fortran 95 中的变量名可以 长达31 个字符,由字母、数字和下划线字符的 任意组合构成,但是名字的第一个字符必须是 字母。 •编程时,给变 量取有意义的名 字
Fortran95/2003程序设计
第二章 Fortran 基础知识
本章学习目标: • 了解Fortran 中的合法字符 • 了解Fortran 语句和Fortran 程序基本结构 • 了解可执行和不可执行语句之间的区别 • 了解常量与变量的区别 • 理解INTEGER、REAL 和CHARACTER 数据类 型的区别 • 掌握默认和显式类型说明的不同,理解为什么 总该使用显式类型说明 • 了解Fortran 赋值语句的结构
type , PARAMETER name=value [, name2= value2 , ...]
type 是常数的类型(整型、实型、逻辑型或字符型)
CHARACTER, PARAMETER :: ERROR MESSAGE= 'Unknown error!'
2.6 赋值语句和算术运算
variable name = expression i=i+1
•Fortran 有5 个自带或"内置"的常数和变量数 据类型,其中三个对数字有效(INTEGRE, REAL 和COMPLEX) ,一个是逻辑的(LOGICAL) ,还 有一个是字符串组成的(CHARACTER) •除内置数据类型以外, Fortran 允许程序员定 义派生数据类型(derived data type)
Fortran讲义第二章汇总课件
优先级(最好加括号) : ①括号 ②函数 ③** ④*、/ ⑤单目+、- 双目+、-
类型转换(向高看齐),int, nint, real, dble, cmplx
复数运算
exam_2_5
表达式和赋值语句
❖ 字符表达式 ①
子字符串 字符串的连接 相关内部函数
exam_2_6
❖ 关系表达式: ②
内部过程或模块过程
END
Fortran源程序的书写格式
❖ 固定格式(*.for或*.f)
Fortran源程序的书写格式
Fortran源程序的书写格式
lists.for
Fortran源程序的书写格式
❖ 自由格式(*.f90)和固定格式的比较
exam_2_1
固定格式
自由格式
每行字符数 80
132(VF 中几乎不限制)
Fortran的名称
❖ 用来标识程序中的实体(变量、子程序、函数…)
❖ <名称>→<英文字母>{<英文字母>|<数字>|_|$}
❖ 名称长度不能超过6(FORTRAN77) 31(Fortran90) 63(Visual Fortran)
Fortran的名称
program X-Y-Z Find_it 1A _program $total
注释
第一列: c *
任意位置: !
73-80列
任意位置:!(第六列除外)
每行语句数 多条,用;隔开
多条,用;隔开
(FORTRAN77只能有1条)
续行
第六列,非0非空格 最多续19行
& 最多续39行
Visual Fortran允许续511行
fortran程序设计第2章
[例2.5]对一个大于或等于3的正整数,判断 它是不是一个素数。
所谓素数,是指除了1和该数本身之外,不能被其他任何整数整 除的数。例如,13是素数,因为它不能被2,3,4,……,12整除。 判断一个数n是否素数的方法是很简单的:将n作为被除数,将2 到n-1各个整数先后作为除数,如果都不能被整除,则n为素数。 算法可以表示如下: S1:输入n的值 S2:i=2(i作为除数) S3:n被i除,得余数r S4:如果r=0,表示n能被i整除,则输出n“不是素数”,算法结束;否 则执行S5 S5:i+1⇒i S6:如果i≤n-1,返回S3;否则输出n“是素数”,然后结束。
[例2.14]将例2.4的算法用N-S图表示。 求1-1/2+1/3+…+1/99-1/100。
PROGRAM EXAM SUM=1.0 DENO=2.0 SIGN=1 10 SIGN=(-1)*SIGN TERM=SIGN/DENO SUM=SUM+TERM DENO=DENO+1 IF (DENO .LE. 100.0) GOTO 10 PRINT *, SUM END
N-S流程图用以下的流程图符号: (1)顺序结构:顺序结构如下图所示。A和B 两个框组成一个顺序结构。
A B
(2)选择结构:选择结构如下图所示。当p条件成 立时执行A操作,p不成立则执行B操作结构。
成立 A
p
不成立 B
(3)循环结构: 当型循环结构下,图符表 示先判断后执行,当p条件 成立时反复执行A操作, 直到p条件不成立为止。 直到型循环结构下,图符 表示先执行后判断,当p条 件不成立时反复执行A操 作,直到p条件成立为止。
[例2.4] 求1-1/2+1/3-1/4+…+1/99-1/100
_fortran-第二章 fortran基础知识
•Fortran 中有下列标准算术操作符:
+ * / ** 加法: 减法: 乘法: 除法 指数运算: a+b a-b a*b a/b a**b
•注意:
•两个操作符不可以连续出现。a*+b •乘法符号不能省略。 a(x+y) •圆括号把一组数据项按要求组合在一起。 2.6.1 整型运算 整型运算的结果始终是整型。如3/4=0, 4/4=1, 5/4=1, 9/4=2
一些内置函数
2.8 表控(list-directed)输入和输出语句
输入语句( input statement) 从输入设备读入一个或 多个数值,并将其存储到指定的变量中。输入设备 可以是交互环境中的键盘,或批处理环境中的磁盘 文件。输出语句( output statement) 写一个或多个 数值到输出设备。输出设备可以是交互环境的显示 屏幕,或批处理环境的输出设备。
没有初始化的变量可能带来 严重问题!
有三种方法初始化变量: 赋值语句、READ 语句和类型声明语句中的初始化。
2.10 IMPLICIT NONE 语句
•IMPLICIT NONE 语句出现在类型声明语句之前。
•IMPLICIT NONE 语句使默认类型功能丧失。
•当程序含有IMPLICIT NONE 语句,没有显式类型 声明语的变量被认为是错的。
2.5.4 默认和显式变量类型 •有两种方法可以定义变量的类型:默认式和显 式。 •如果在程序中没有明确指定变量类型,那么就 是默认式定义变量类型:
任何以字母i,j,k,l,m,n 开头的变量名假 定为整型,其他字母开头的变量名则 假定为实型。
•这一类型默认习惯从1954 年FORTRAN I 就开始启用。注意, 默认情况下没有变量的类型为CHARACTER,因为在 FORTRAN 1 中不存在该数据类型!
第二章 Fortran程序设计基础
第二章 Fortran程序设计基础2.1.1字符集“字符集”是指编写Fortran程序时,所能使用的所有字符及符号。
Fortran所能使用Fortran标准中规定,编译器只需要认得大写的英文字母,而如果程序代码中使用小写英文字母,则会把它们视为大写字母。
简单说,Fortran是不区分大小写的语言。
特殊符号除了用来做数学计算符号外,还有其他用法,后面用到时会介绍它们。
2.1.2书面格式Fortran程序代码的编写格式有两种,Free Format(自由格式)及 Fixed format(固定格式)。
Fixed format(固定格式)属于旧式写法,它在编写版面上有很多限制。
Free Format (自由格式)是Fortran90之后的新写法,取消了很多旧的限制。
这里,我们要求用Free Format格式来编写程序。
以*.F90为扩展名的文件,就是用Free Format来编写的程序。
Free Fortran格式基本上允许非常自由的格式,它没有规定每一行的第几个字符有什么作用。
需要注意以下几点:(1)叹号“!”后面的文本都是注释,Fortran90编译程序对源程序进行编译时,对注释区内的内容不予处理。
(2)每行可以编写132个字符。
(3)行号放在每行程序的最前面。
(4)要求以一个“&”作为一个续行标志;一行中可以写多条语句,用“;”隔开。
下面是一个用Free Format格式的编写实例:1.! Free Format2. program main3. write(*.*) “hellow” !这也是注释4. write(*.*) &5. “hellow”6. end这里,读者可发现第一、三行中都有注释,第一行整行都是注释,第三行只有叹号后面的部分是注释。
第四行的最后是连接符号&,所以第五行会连接在它后面。
2.1.3 Fortran的数据类型1.整数(INTEGER)整数的类型又分为两种,长整型与短整型。
FORTRAN程序设计第二章
标识符的使用
(1)表示程序中的变量名、程序名、函数名和符号常 表示程序中的变量名、程序名、 量 (2)标识符中大小写是等价的 ) (3)标识符中的空格不起作用 ) (4)内部函数名、语句关键词等都可以用作标识符, )内部函数名、语句关键词等都可以用作标识符, 尽量不要用这些作为标识符 SIN=3.0 READ=10.5 (5)在给标识符起名时,应考虑所代表对象的含义 )在给标识符起名时,
FORTRAN常量 2.1 FORTRAN常量
常量:在程序运行过程中,其值不改变的量 直接常量 符号常量
直接常量: 直接常量:指数据本身就是一个常量 1. 整型常量(整型常数或整数) 包括正整数、负整数和0 除正负号外,其他符号一律不能出现在整 型常量中 10.0000, 3+2, 78*31, 1/3 (×) 1E-2
(2)指数形式 指数形式由数字部分 指数部分组成 数字部分和 组成。 指数形式由数字部分和指数部分组成。
± a.bE ± c或 ± a.be ± c
数字部分可以是不带小数点的整数, 数字部分可以是不带小数点的整数,也可以是带 可以是不带小数点的整数 小数点的实数。 小数点的实数。 注意:指数不能为小数; 注意:指数不能为小数;E左右两边的数字部分和 指数部分必须同时出现, 指数部分必须同时出现,指数部分不能单独用来代 表一个常数。指数部分不能省略。 表一个常数。指数部分不能省略。 例如:3E5.6、8.6E-3.7、E12、12.3*E8、1.02E均非法。 均非法。 例如:3E5.6、8.6E-3.7、E12、12.3*E8、1.02E均非法 +12.3E+08、12.3E8、0.91E-30、3E5、等合法。 +12.3E+08、12.3E8、0.91E-30、3E5、等合法。
ch02 fortran
从键盘上接收一个12小时内降雪量,输出下雪 的等级。
FORTRAN语言程序设计 第二章 算法-程序的关键
FORTRAN语言程序设计
第二章 算法-程序的关键
10
NANJING UNIVERSITY OF INFORMATION SICENCE & TECHNOLOGY
2.程序的三种基本结构
(1)顺序结构:从头到尾一次执行每一个语句。 严格按照语句的书写顺序从上到下,从左到右 执行。 (2)选择结构:根据不同的条件执行不同的语句 或者语句体;可分为:单分支、二分支和多分 支结构。 (3)循环结构:重复的执行语句或者语句体,达 到重复执行一类操作的目的;常见有:计数型 循环、当型循环、直到型循环。
FORTRAN语言程序设计
第二章 算法-程序的关键
5
NANJING UNIVERSITY OF INFORMATION SICENCE & TECHNOLOGY
细化后得到精确的算法:
s1: 输入A,B,C。 s2: 若A > B, 则 MAX ← A; 否则 MAX ← B。 s3: 若C > MAX,则 MAX← C。 s4: 输出MAX,MAX即为最大数。
FORTRAN语言程序设计
第二章 算法-程序的关键
21
NANJING UNIVERSITY OF INFORMATION SICENCE & TECHNOLOGY
本章小结
算法是程序的关键和灵魂 算法是使用计算机求解问题的思路和步骤 一个好的算法不仅能节省计算时间和存储空 间,而且能提高计算结果 重点阐述了常见算法表示方法,使读者能够 理解算法的表示和描述,有利于提高编程的 质量
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-9-23
Fortran 变量
16
在程序运行过程中其值可以改变的量,称为变量。变量用 标识符表示,称为变量名。每个变量是以变量名来代表的, 变量名是名字的一种。 变量必须‚先定义后使用‛,变量的命名最好是‚见名知 义‛ 系统为变量分配存储单元,存储变量的值。 编写程序时通过变量名来存、取变量值。 在同一个程序单位中不能用同一个标识符代表不同的变量。 变量定义的一般格式:
stop
end 运行结果:(屏幕显示) 1.000000 + 0.100000 =
write(*,*) a,"+",b,"=",a+b
stop end program ex0409
1.100000
= 100000.0 (wrong)
100000.000100000
运行结果:(屏幕显示) 100000.0 + 9.9999997E-05 运行结果:(屏幕显示)
17
2013-9-23
实型变量(Real)
实型变量又称浮点数变量,分为单精度和双精度类型, real(kind=4) a 单精度 real(kind=8) a 双精度 计算机在存储实型数时 ,先转化成科学计数法.要考虑有效 位数的概念,正确使用单(双)精度类型。 1.例如要保存12345会转化成1.2345*104 ,其中的数值部分可 以保存约6位数字;
数据类型说明符
例如:
声明使用 整型态数
变量列表;
a
a是自己取的名字,在程序中以 这个名字表示一块存放整数的空 间,称为变量
2013-9-23
integer
Fortran 变量(续)
Fortran90变量的基本类型与常量一样也有五种,即整 型变量、实型变量、复型变量、逻辑型变量和字符型 变量。 Fortran中的五种变量的类型说明关键字是: 说明整型变量的关键字:Integer 说明实型变量的关键字:Real 说明复型变量的关键字:Complex 说明逻辑型变量的关键字:Logical 说明字符型变量的关键字:Character
2013-9-23
算术表达式要点(续)
一些正误比较
8
2013-9-23
表达式运算中的类型问题
1. FORTRAN 允许不同类型的算术量(包括整型、实 型、双精度、复型)间的算术运算,但不允许在算术量和 非算术量(如逻辑型、字符型)之间进行算术运算。 2.同类型的算术量之间运算的结果仍保持原类型,如 5/2=2、1/2=0。不同类型时,编译系统遵循‚低级转换成 高级‛(实型比整型高)原则将它们转换成同一类型,然 后进行运算。 类型的转换是从左而右进行的,在遇到不同类型的算 术量时才进行转换。如:1/4*20.0=0.0 (高)复型 例: 1/2*2=0 双精度型 实型 整型(低)
合法。
下面四组实型数中,有错误的一组是( B )
2013-9-23
Fortran 常量(续)
4.字符型常量
14
字符型常量又叫字符串或字符常数,其缺省种别由一对单撇号或 一对双撇号之间的字符序列组成。 例如: "ABCD" ‘CHINA’ ‘4653374’ 字符型的类型说明符是关键字CHARACTER 5.逻辑型常量 逻辑型常量只有真(.TRUE.)和假(.FALSE.)两个值 逻辑型的类型说明符是关键字LOGICAL
9
8/5+2.0*5/2=6.0(逐步转化)
2013-9-23
2.2 赋值语句
1. 格式:变量名=表达式 (“=”为赋值号)
10
2. 作用:将表达式的值赋给一个变量(或数组元素 等),即先计算赋值号右边表达式的值,然 后将该表达式的值赋给赋值号左边的变量。
注意:赋值号‚=”与数学中的等号,形式相同, 但意义不同,例如: N=N+1 在数学中,是错误的,但在FORTRAN程序中,它却 是一个合法的赋值语句,它的语义是把变量N的旧 值取出来,加上1,然后再送到变量N的存储单元 中。重复执行上述语句,这是一个基本算法,叫 计数法。
4**3**2,先计算3**2, 再进行4**9的运算。 -A 相当于 0-A; -A**2相当于 0-A**2 即 -(A**2), not(-A)**2。
6
2013-9-23
算术表达式要点(续)
(6)所有系统函数的参数(自变量)都必须写在函数后的 一 对括号中
1 sin 6 x 2.1log x
2013-9-23
名字 (FORTRAN的标识符)
15
标识符是用来表示一个程序成分,变量、符号常量、函数、 程序单元、派生类型等对象的一组符号。
标识符的命名规则 (1) 名字的长度不能超过 31个字符。 (2) 由字母、数字、下划线组成。 (3) 名字的第一个字符必须为字母,特别注意名字中不能出现空格。 (4) 内部函数名、语句关键词等都可以用作标识符,但尽量不要用这 些作为标识符 SIN=3.0 (因为SIN是内部函数名,尽量不用) READ=10.5 (×)
B)
2013-9-23
2.3 Fortran 常量与变量
常量:在程序运行过程中,其值不改变的量
12
1. 整型常量(整型常数或整数) 包括正整数、负整数和0,除正负号外,其他符号一律不 能出现在整型常量中 10.0000,3+2,78*31,1/3 ,1E-2 (×) 2. 实型常量(实型常数或实数) a.b, .b, 或 a. (1)小数形式 由一个或多个数字和一个小数点组成(必须包含一个小 数点而且只能有一个小数点)。如+12.3、-68.56、3.75、 0.0合法。小数点前或小数点后可以不出现数字,但不能 小数点前后都不出现数字。如60.、.36、.0合法,而 .非 法(只有一个小数点而无数字)。 (2)指数形式 指数形式由数字部分和指数部分组成。数字部分可以是 不带小数点的整数,也可以是带小数点的实数。
program ex0411 complex (kind=4)a !单精度,Fortran90 添加 complex a,b complex::(kind=8)b !双精度,Fortran90 添加 屏幕显示: a=(1.0,1.0) complex *4 a !单精度,Fortran 77 传统 a+b= (2.000000,3.000000) b=(1.0,2.0) complex (4) a !单精度,Fortran 77 传统 a-b= (0.0000000E+00,-1.000000) write(*,*) "a+b=",a+b a*b= 双精度,Fortran 77 传统 complex *8 a ! (-1.000000,3.000000) write(*,*) "a-b=",a-b a/b= (0.6000000,-0.2000000) complex (8) a !双精度,Fortran 77 传统 write(*,*) 例: a=(1.0,2.0)"a*b=",a*b !a=1+2i write(*,*) "a/b=",a/b stop end
5
乘方**
乘*
除/
加+
减-
★同一优先级,遵循“从左到右”原则。
3 5 6 * 8.0 / 4 **2
④
⑤
②
③
①
2.Fortran算术表达式的含义和表示方法 Fortran的运算符和括号将各Fortran运算元素(包括常 量、变量、函数、数组元素)连结起来的一个有值的式子。
2013-9-23
算术表达式要点
例1:I=3 I=I+1 例2: 交换X与Y的语句
T=X X=Y Y=T
2013-9-23
算术赋值规则
表达式 赋值规则 变量 整型 实型 直接赋值 先取整,再赋值 直接赋值 整型 实型
11
先化为实型,再 赋值
例:赋值语句X=2**3**2执行后,实型变量的值是( A 512 B 512.0 C 64 D 64.0
2
7
对应的FORTRAN表达式为: SIN(6*X)**2+2.1*LOG10(1/X)
(7)FORTRAN 算术表达式的求值优先顺序为 (高)括号 函数 ** *,/ +,- (低)
(8)表达式中的所有字符都必须写在一行,特别是带有下 标的变量、分式等,不能像写数学表达式那样书写。 如Z=X1十X2不能写成Z=Xl十X2。
(1)由于用“/”号作为除号,因此在写除法运算式子应加 上必要的括号。两整数相除,结果为整数,不会进行四舍 五入, 而是把小数后面的部分切掉。当分子小于分母时, 结果一律为0。例如:3* 2/3=2 与 2/3 *3 =0 (2)算术表达式中乘号不能省略 如 例 5/2 = 2 X*Y*Z不能写成XYZ 。 -5/2.0 = -2.5 = (3)Fortran中无大、中、小括号, 一律用小括号。 (4)如果连续使用乘方符号,按 “先右后左”原则处理。为避免出 错,建议使用括号。 (5)对单边运算符,相当于在 它前面有一个运算量“0”。
Fortran 语言程序设计
第2章 Fortran 程序设计基础
数据类型、表达式及输入输出
2013-9-23
本章主要内容
2
2.1 2.2 2.3 2.4 2.5
Fortran语言的基本元素 赋值语句 常量与变量 简单输入输出语句 FORTRAN内部函数及举例
2013-9-23
2.1基本元素
1.FORTRAN字符集:
大写英文字母:A B C …… X Y Z 小写英文字母:a b c …… x y z 数字:0 1 2 …… 9 特殊字符:空格
3
: = + - * /(),.‘!“ % &;><?$ _(下划线)