FORTRAN语言程序设计
变量的种别,是指一个变量由几个字节组成。其种别值(即kind值) 与常量相同。 5.6.3.2 变量的类型
变量的类型均用类型说明(或称类型声明)指定。其目的是通知编 译系统为变量分配存储单元,以便存放程序中的数据。
显式类型说明 类型说明方式
隐式类型说明
28
1.显式类型说明
由类型说明(声明)语句指明变量的类型。
14
第四章 FORTRAN语言开发环境
详见教材:3.3 FORTRAN语言开发环境
15
第五章 FORTRAN 语言基础知识
16
5.1 字符集
FORTRAN语言允许使用的字符集为:
英文字母
A-Z 或 a-z(即大、小写英文字母)
阿拉伯数字
0、1、2、3、4、5、6、7、8、9
特殊符号
空格 = + - * / # ? ( ) ,. ’ : “!&;<>$_
主程序单元
外部子程序单元1
PROGRAM MAIN
SUBROUTINE SUB1()
主程序体
子程序体
…
END PROGRAM
END
其中主程序单元只能有1个,其它程序单元可以有0-n个。
程序单元的描述详见第十章。
19
5.4 语句的排列顺序
一个程序单元中语句的排列顺序如下: 非执行语句
程序单元
可执行语句
7
2.2 算法特点
计算机特别适合做大量的重复性操作,如连续加、连续乘或者其他连续判 断或处理。计算机对于大量的重复性操作,并非一次性完成,而是每次按部 就班,循环往复重复前一次的操作 ,即每次操作方法(即循环体)相同,但
操作数据不同而已。
例如,求1,2,…10的累加和,其程序如下:
do i=1,10
一般形式:(a,b)
例:(-3,5)
!表示复数:-3+5i
(0,1)
!表示复数:i
(2.4,-2.5E2) !表示复数:2.4-2.5x102i
24
5.6.2.4 字符型常量 在程序中用以表示文字等非数值信息。 一般形式: ‘字符串’ 或 “字符串” 其中:字符串可以是字母、数字、汉字、特殊符号。通常字符串中字 符的个数称为字符长度。 例: PRINT *,’南京信息工程大学’ PRINT *,”a+b=”,a+b
说明:
1.逻辑常量仅有两个,.TRUE.(真)和.FALSE.(假)。注意:逻辑常量 两侧的两个小数点不能省略。逻辑型常量是具有逻辑型数据类型的非数 值数据,又称为逻辑值或布尔值。
2.对于逻辑值.TRUE.,在其存储单元字节内每位为“1”,可视为整数值
-1;对于逻辑值.FALSE.,在其存储单元字节内每位为“0”,可视为整 数值0,它们均能参与整数运算。如7+.FALSE.,结果仍为7。1+.TRUE., 结果则为0。
26
5.6.2.6 符号常量
用一个符号所表示的常量值,称为符号常量。例如,圆周率、重力 加速度等。使用符号常量时,应当用参数语句(PARAMETER语句)对符 号常量予以声明。
PROGRAM ex05_01 IMPLICIT NONE REAL pi PARAMETER(pi=3.1415926) WRITE (*,*) sin(pi/6)
低级语言:机器语言和汇编语言。
3
1.2 程序设计方法和步骤
1.2.1 程序设计方法 1.结构化方法
(1)采用“自顶向下,逐步求精”的程序设计方法. (2)采用“单入口单出口”的控制结构. (3)三种基本程序结构:顺序、选择和循环.
结构化程序设计的特征: (a)模块化:把一个较大的程序划分为若干个子程序,每一个子程序独立
例:NUMBER、x1、root_2、y$ _ab、5xy、x.y
5.2.2 保留字 一个语句中的特定单词,如PROGRAM、END、IF、ENDIF、
DO、ENDDO等,称为语句保留字。 说明: FORTRAN90程序中允许用保留字作为其它实体的名
称,但是一般不提倡。
18
5.3 程序单元
一个完整的FORTRAN程序,应由以下程序单元构成:
说明:1)引号(‘ ’或 “ ”)是字符串的分隔符,并非字符常量的一 部分。 2)字符串中的空白符有意义,要计数的。例:“A B” ,其字符长度 是3。 3)当字符长度为0时,即为空串。 4)字符串内的字母区分大小写,‘a’和‘A’是不同的字符常量。 5)如果字符串中含有单引号,则这个单引号要用两个连续的单引号 表示,如:‘I’’m a boy.’。或者单引号和双引号交替使用,如 “I’m a boy.”。
成为一个模块; (b)层次化:先设计第一层(即顶层)。然后步步深入,逐层细分,逐步
求精,直到整个问题可用程序设计语言明确地描述为止。 (c)逐步求精:是对一个复杂问题,从抽象到具体,最终编制出一个可执
行的程序。 2.面向对象方法
详见P5
4
1.2.2 程序设计步骤 1.分析问题 2.建立数学模型 3.选择算法 4.编写程序 5.调试运行 6.分析结果 7.写出程序的文档
5
第二章 算 法
6
2.1 算法概述
1.算法:计算机解题的方法和步骤. 2.算法特征: (1)有穷性
一个算法必须总是在执行有限步骤之后结束。 (2)确定性
算法中的每一个步骤应当是确定的,无二义性;相同的输入只能得出相 同的输出。 (3)可行性 算法中的每步骤都是有效地执行。 (4)有零个或多个输入 (5)有一个或多个输出 3.算法的分类: (1)数字运算:用于求数值解,此类算法有现成的模型,运用较成熟. (2)非数字运算:用于非数据处理的一些事务性工作,此类算法面广量大, 要求各异,有一定难度.
!循环语句
s=s+i
!循环体
enddo
上述循环所要执行的重复操作是: s=s+i (即循环体),但每一次循环时, 循环体的操作数据s,i的值是不同的。
.
8
2.3 算法的表示方法
(1)传统流程图 即用有向线段将描述算法步骤的各功能框连接起来.如下图所示:
A B 图(a)顺序结构
真
假
条件P
A
B
图(b)选择结构
n 是一个十进制数字(0~9)序列。 Kind值为:1、2、4、8之一。分别表示1、2、4、8个字节个数。
FORTRAN 90/95标准中整型常量的范围没有明确规定。
例如:122、0、-36、559_2 100.0、100,000、100 0、1002
5.6.2.2 实型常量
均为合法的整型常量 均为非法的整型常量
10
第三章 FORTRAN语言简介
11
3.1 FORTRAN 语言概述
1.何谓FORTRAN语言? FORTRAN是英文“FORmula TRANslate”的缩写,即中文的“公式翻
译器”之意。FORTRAN语言是一种用于科学计算的程序设计语言。 2.何谓FORTRAN源程序?
用FORTRAN语言编制的程序,称为FORTRAN源程序。 举例:编制FORTRAN源程序ex02_01.f90,求x、y、z的平均值aver 。 PROGRAM ex02_01
22
5.6.2 常量
整型、实型、复型常量是一个代数值;逻辑型常量是一个逻辑值 (.true.或.false.);字符型常量是一个字符串。以上常量均以书写方式确 定其类型。
5.6.2.1 整型常量
整型常量表示普通代数中的整数。
十进制整型常量的一般形式:±n[ _Kind值] 其中: ±是该整型常量的符号。
类型说明语句的一般形式:
例:编制FORTRAN源程序eex5_1.f90,求x、y、z的平均值aver 。 PROGRAM eex5_1 REAL x,y,z,aver READ *,x,y,z aver=(x+y+z)/3 PRINT *,aver END
20
5.5 程序的书写格式 (1)固定格式:将一个语句行分为若干个区域,如下图所示:
假
循环条件
真
循环体
循环体
假
循环条件
真
图(c)当型循环结构
图(d)直到型循环结构
9
(2)N-S流程图 它是一种去掉流程线的流程图,称为盒图. N-S流程图形式如下图所示:
A
B
图(a)顺序结构
条件
真
假
A
B
图(b)选择结构
当执行循环的条件成立 循环体
图(c)当型循环结构
循环体 直到退出循环的条件成立
图(d)直到型循环结构
E±s是指数部分,表示10的几次方。其中:
E是指数符号,s是指数数值,±是指数数符。
例:指数实型常量:12E2 0.12E-2 2E5
1E-10
相应代数值: 12x102 0.12x10-2 2x105
1x10-10
注意:单独的指数部分不能构成一个实型常量。 例:E5
5.6.2.3 复型常量
表示普通代数中的复数。即: a ± bi(其中a是实部, b是虚部)
READ *,x,y,z aver=(x+y+z)/3 PRINT *,aver END
12
3.2 FORTRAN程序的执行过程
13
3.3 FORTRAN语言的发展历程
(1)1951年,John Backus在纽约首次提出FORTRAN语言 ,并于1954 年对外发布,称FORTRANⅠ。
(2)1958年,扩充和完善FORTRANⅠ, 推出FORTRANⅡ。 (3)1960年,推出FORTRAN Ⅲ,但没有在计算机上实现。 (4)1963年,推出了FORTRAN Ⅳ。没有充分考虑兼容性。 (5)1966年,推出FORTRAN 66美国标准,后被ISO采用。 (6)1978年,推出FORTRAN 77,兼容性好,结构化特征。 (7)1991年,推出FORTRAN 90现代语言,可视化编程。 (8)1997年,公布FORTRAN 95标准,并行运算的支持。 (9)1997年,微软和数据设备公司合作推出Digital Visual FORTRAN 5.0。