Transcript
Page 1: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

1. 1. 字符集字符集 2. 2. 名称名称 3. 3. 关键字关键字 4. 4. 程序单元程序单元 5. 5. 语句语句 6. 6. 书写格式书写格式 7. 7. 数据类型数据类型

第 3 章 FORTRAN90 基础知识第 3 章 FORTRAN90 基础知识

《程序设计语言 (FORTRAN) 》课多媒体课件

Page 2: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

FORTRAN 90 源程序是一个符合 FORTRAN 90 词法、语法和语义规定的特殊文本 , 它由 FORTRAN 90 字符集规定的字符按照词法、语法和语义规定进行描述。

概述概述

字符集字符集

说明说明

3.1 字符集3.1 字符集

第三章 FORTRAN 90 基础知识

Page 3: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

字符集字符集

说明说明

3.1 字符集 /字符集3.1 字符集 /字符集

FORTRAN 90 字符集由下面四部分字符组成:

1 .英文字母

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

a b c d e f g h I j k l m n o p q r s t u v w x y z

2 .阿拉伯数字: 0 1 2 3 4 5 6 7 8 9 。

3 .下划线:“ _” 。

4 .特殊字符

空格 <Tab> + - * / ( ) , . ' : ! " % & ; < > ? $ 。 Visual FORTRAN 字符集增加了一些可打印字符 , 包括十六

进制 ASCII 码为 09h(Tab 符 ) 、 20h 至 7Eh 之间的字符和某些特殊字符集 ( 如: IBM 字符集 ) 中字符。

3.1 字符集3.1 字符集

第三章 FORTRAN 90 基础知识

Page 4: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

字符集字符集

说明说明

3.1 字符集 /说明3.1 字符集 /说明

① 除字符型常量外 , 源程序中词法和语法描述不区分字母的大小写 , 如语句“ INTEGER I” 和语句“ integer i” 是等价的。

②FORTRAN 90 字符集以外的可打印字符 , 只能出现在注释、字符常量、字符串编辑符和输入输出记录中。

③ 字符: _ ! " % & ; > < ? 为 FORTRAN 90 新增字符。

3.1 字符集3.1 字符集

第三章 FORTRAN 90 基础知识

Page 5: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.2 名称3.2 名称

名称在其它语言中称“标识符”。名称在程序中用来标识有关实体 ( 如 : 变量、命名常量、函数、

过程、程序单元、公用块、名称表组和哑元等 ) 。 概述概述

语法描述语法描述

作用域作用域

示例示例

3.2 名称3.2 名称

PROGRAM main INTEGER length,width,area,price READ*,length,width area=length*width price=4000*area PRINT*,’ 总地价:’ ,price,’ 元’ END

PROGRAM main INTEGER length,width,area,price READ*,length,width area=length*width price=4000*area PRINT*,’ 总地价:’ ,price,’ 元’ END

第三章 FORTRAN 90 基础知识

Page 6: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

语法描述语法描述

作用域作用域

示例示例

3.2 名称 /语法描述3.2 名称 /语法描述

< 名称 >→< 英文字母 >{< 英文字母 >∣< 数字 >∣“_”∣“$”}

说明:

① 名称只能由英文字母、数字、下划线符“ _” 和美元符号“ $” 组成。

② 名称第一个字符必须是英文字母。

③ 名称不能超过 31 个字符。

注:某个参数如果在子程序或函数中没有用到,那就被称为哑元 , 用到了的称为实元。

3.2 名称3.2 名称

第三章 FORTRAN 90 基础知识

Page 7: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

语法描述语法描述

作用域作用域

示例示例

3.2 名称 /作用域3.2 名称 /作用域

作用域指使用范围 , 每个名称都规定了作用域。名称的作用域为该名称声明所在的程序单元、函数或过程。

作用域为整个程序的名称称为全局名称 ,否则称为局部名称。

程序单元名、外部过程名、命令块名和模块名为全局名称 ,且在整个程序中必须唯一。

3.2 名称3.2 名称

第三章 FORTRAN 90 基础知识

Page 8: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.2 名称 /示例3.2 名称 /示例

[ 例 3.1] 判定下列名称 ,哪些是合法名称?哪些是非法名称?解释非法名称错误原因。 Number, Max, X-Y-Z, PrOgRaM, FIND_IT, read, x, 8q, a.5, _wrong, a3b7, U.S.A., DR.WANG, china, total, x$y$z, $abcd,r a t e 。解:合法名称有 :Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。 非法名称有 :X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。 表3-1给出非法名称错误原因。下面是几个使用合法名称的语句例子。 INTEGER total !total 命名了一个整型变量 SUBROUTINE example !example 命名了一个过程 PROGRAM area !area 命名了一个程序单元 Lable : DO I=1,N !Lable 命名了一个 DO循环

3.2 名称3.2 名称

概述概述

语法描述语法描述

作用域作用域

示例示例

第三章 FORTRAN 90 基础知识

Page 9: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

非法名称 错误原因 非法名称 错误原因

X-Y-Z 名称中含减号“ -” U.S.A. 名称中含小数 点“ .”

8q “8” 作为第一字符 DR.WANG 名称中含小数点“ .”

a.5 名称中含小数点“ .” $abcd “$” 作为第一字符

_wrong “_” 作为第一字符 r a t e 名称中含空格

名称示例表 3-1名称示例表 3-1

第三章 FORTRAN 90 基础知识

Page 10: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.3 关键字3.3 关键字

关键字是 FORTRAN 90 中用于描述语句语法成分或命名哑元名称的特定字符串。 FORTRAN 90 关键字分为语句关键字和变元关键字。

概述概述

分类分类

说明说明

3.3 关键字3.3 关键字

PROGRAM main INTEGER length,width,area,price READ*,length,width area=length*width price=4000*area PRINT*,’ 总地价:’ ,price,’ 元’ END

PROGRAM main INTEGER length,width,area,price READ*,length,width area=length*width price=4000*area PRINT*,’ 总地价:’ ,price,’ 元’ END

第三章 FORTRAN 90 基础知识

Page 11: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

分类分类

说明说明

3.3 关键字 /分类3.3 关键字 /分类

FORTRAN 90 关键字分为语句关键字和变元关键字。语句关键字是用于描述语句语法成分的固定的合法单词。 如语句“ IF (A<B) THEN” 中的“ IF” 和“ THEN” 是语句关键字 , 类似的关键字有: PROGRAM 、 INTEGER 、 REAL 、 READ 、 PRINT 、 WRITE 、 DO 、 END 、 SUBROUTINE 、 FUNCTION 等。变元关键字是命名特定哑元名称的合法单词。 变元关键字是 FORTRAN 90 特有的性质 ,FORTRAN 90对所有的内部函数和过程都规定了变元关键字 , 它们在有关接口块中做出了具体规定 ,允许在调用时使用变元关键字。 使用变元关键字可提高程序的可读性 , 如内部函数 CMPLX ( X [ , Y] [ , KIND] ) 的 X 、 Y 和 KIND 为变元关键字 , 可使用下面语句调用 CMPLX 函数: CMPLX (10, 20, 4) ! 按序指定参数。 CMPLX (y=20, kind=4, x=10) ! 按变元关键字指定参数。 CMPLX (10, kind =4) ! 跳过 Y参数。

3.3 关键字3.3 关键字

第三章 FORTRAN 90 基础知识

Page 12: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

分类分类

说明说明

3.3 关键字 /说明3.3 关键字 /说明

关键字都有特定的含义 , 在描述中有具体的位置要求 , 不能改变或移位 ,否则将产生语法错误。如语句“ PROGRAM main” 中的关键字“ PROGRAM” 的含义是说明源程序是一个主程序单元 ,位于语句首部 , 如果写成“ PROGRAMMING main” 或“ main PROGRAM”将产生语法错误。

FORTRAN 90对关键字不予保留 ,即允许其关键字作为其它实体的名称 ( 变量名、数组名、函数名、程序名等 ), 可将 PROGRAM 、 INTEGER 、 REAL 、 READ 、 PRINT 、 WRITE 、DO 、 END 、 SUBROUTINE 、 FUNCTION 等作为变量名、数组名、函数名或程序名。编译程序根据上下文来识别一个字符串是关键字 ,还是实体名称。如语句“ PROGRAM PROGRAM” 中第一个“ PROGRAM”将被编译程序识别为关键字 ,第二个“ PROGRAM”将被识别为实体名称 (主程序单元名 ) 。

程序中应避免使用关键字作为实体名称 ,因为使用关键字作为实体名称会导致程序难以理解和阅读 ,降低程序的可读性。

3.3 关键字3.3 关键字

第三章 FORTRAN 90 基础知识

Page 13: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.4 程序单元3.4 程序单元

一个 F90 程序可由多个程序单元组成 ( 至少一个主程序单元 ) 。

程序单元由数据声明和相关操作 ( 语句 )构成 , 用 END 语句结束。

概述概述

分类分类

描述描述

示例示例

3.4 程序单元3.4 程序单元

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

第三章 FORTRAN 90 基础知识

Page 14: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

分类分类

描述描述

示例示例

3.4 程序单元 /分类3.4 程序单元 /分类

FORTRAN 90 规定有四种程序单元:主程序单元、外部子程序单元、模块单元和块数据单元。每个程序单元可分别编译 ,一起构建 (连编 )产生可执行程序。

主程序单元:程序中被首次执行的程序单元 , 程序运行的入口点 , 其它程序单元执行的启动器。由 PROGRAM 语句开始,可缺省。

外部子程序单元:不包含在主程序单元、模块单元和其它外部子程序单元中的函数或例行子程序所构成的程序单元 , 其中外部函数和外部例行子程序能被 FORTRAN 90 程序中其它程序单元调用执行。由 FUNCTION 或 SUBROUTINE 语句开始。

模块单元:能被其它程序单元访问的一组定义 (数据类型定义、过程定义、过程接口定义 )所构成的程序单元,其中模块子程序允许本模块或其它程序单元调用执行。由 MODULE语句开始。

块数据单元:为命名公用块中变量指定初始值的程序单元。由 BLOCK DATA 语句开始。

主程序单元、外部子程序单元和模块单元可以包含内部子程序 ,包含内部子程序的程序单元称为宿主 (Host),内部子程序能被其宿主或宿主内的其它子程序调用执行。

3.4 程序单元3.4 程序单元

第三章 FORTRAN 90 基础知识

Page 15: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

启示录:有一句话说的好:经常议论别人的缺点,你就是一个道德水准低下者;经常议论人类的缺点,你就是一个思想家。

结论:不能光看小的,要看大处 。

Page 16: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.4 程序单元 /描述3.4 程序单元 /描述

< 程序 >→<主程序单元 >{< 外部子程序单元 >∣<模块单元 >∣< 块数据单元 >} <主程序单元 >→[ <PROGRAM 语句 > ] [ < 说明部分 > ] [ <操作部分 > ] [ <内部子程序部分 > ] <END 语句 > <PROGRAM 语句 >→PROGRAM < 程序名称 > <END 语句 >→END [ PROGRAM [ 程序名称 ] ] < 说明部分 >→{<内部数据类型说明语句 >∣ <派生数据类型说明语句 >∣ < 数组类型说明语句 >∣ < 指针类型说明语句 >} <操作部分 >→{<非说明语句 >} <内部子程序部分 >→CONTAINS {<内部子程序 >}

3.4 程序单元3.4 程序单元

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

概述概述

分类分类

描述描述

示例示例

第三章 FORTRAN 90 基础知识

Page 17: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

概述概述

分类分类

描述描述

示例示例

3.4 程序单元 /示例3.4 程序单元 /示例

[ 例 3.2]编写一个包含下列语句的主程序单元 ,给出所有可能的主程序单元结构。 INTEGER a,b,c a=10;b=20 c=a+b PRINT *,' a+b=',c解:有 5种程序单元结构。

3.4 程序单元3.4 程序单元

第三章 FORTRAN 90 基础知识

Page 18: 第 3 章   FORTRAN90 基础知识

程序单元程序示例程序单元程序示例

第三章 FORTRAN 90 基础知识

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END PROGRAM

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END PROGRAM

PROGRAM add

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END

PROGRAM add

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END

PROGRAM add

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END PROGRAM

PROGRAM add

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END PROGRAM

PROGRAM add

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END PROGRAM add

PROGRAM add

INTEGER a,b,c

a=10;b=20

c=a+b

PRINT *,'a+b=',c

END PROGRAM add

Page 19: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.5 语句3.5 语句

FORTRAN 90 语句分为两类:可执行语句:表示程序要完成某个操作。非执行语句:描述程序的某种属性。

概述概述

排列次序

3.5 语句3.5 语句

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

第三章 FORTRAN 90 基础知识

Page 20: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.5 语句 /排列次序3.5 语句 /排列次序

程序中语句要求按规定次序排列 ,即语句位置不能随意放置 ,否则将产生语法错误 , 如 INTEGER 语句和 PRINT 语句的先后顺序就不能颠倒。

语句排列次序规定如表3-2所示(课本 61页 ), 表中给出了全部语句的排列次序要求。语句的排列次序与执行次序不完全相同。

3.5 语句3.5 语句

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

概述概述

排列次序

第三章 FORTRAN 90 基础知识

Page 21: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.6 书写格式3.6 书写格式

每种程序设计语言对书写格式都有特定要求。传统 FORTRAN 语言 ,采用固定格式。FORTRAN 90采用固定格式和自由格式。推荐自由格式。

概述概述

标志符标志符

语句标号语句标号

自由格式自由格式

3.6 书写格式3.6 书写格式

PROGRAM main

!flgjfdkjl

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

PROGRAM main

!flgjfdkjl

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

第三章 FORTRAN 90 基础知识

Page 22: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.6 书写格式 /标志符3.6 书写格式 /标志符

书写格式都定义若干标志符 , 指出文本的意义。F9ORTRAN90 定义 3 个通用标志符:注释标志符“ !” 可出现在程序单元任何位置,表示其后至行末为注释文本。注释行只起解释和说明作用,对程序单元的编译没有影响。一行均为空格也是一个注释行。语句分隔标志符“;” 可出现在两条语句之间,表示左右为两条独立的语句。允许一行书写多条语句 , 用符号“;” 分隔语句。续行标志符“ &” 可出现在一条语句内部,表示前后文本属于一条语句。一条长语句可分多行书写 , 中间需用“ &”连接 , 出现在前一续行的末尾。在 Digital Visual FORTRAN 5.0 中 ,续行可达 511 行。

3.6 书写格式3.6 书写格式

概述概述

标志符标志符

语句标号语句标号

自由格式自由格式

第三章 FORTRAN 90 基础知识

Page 23: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.6 书写格式 /语句标号3.6 书写格式 /语句标号

语句前面可设置语句标号 (即语句编号 ) 。语句标号作用是可改善和提高程序可读性 ;便于其他语句访问该语句 ,获取信息或转移控制。语句标号可放在任何完整语句前面 ,但不属于后面的语句。语句标号是长度不超过 5位十进制正整数 , 不允许全 0 。空语句不能加语句标号。语句标号的声明具有唯一性 , 在同一程序单元中不能声明相同的语句标号。

3.6 书写格式3.6 书写格式

1 PROGRAM main

2 INTEGER length,width,area,price

3 READ*,length,width

4 area=length*width

5 price=4000*area

6 PRINT*,’ 总地价:’ ,price,’ 元’

7 END

1 PROGRAM main

2 INTEGER length,width,area,price

3 READ*,length,width

4 area=length*width

5 price=4000*area

6 PRINT*,’ 总地价:’ ,price,’ 元’

7 END

概述概述

标志符标志符

语句标号语句标号

自由格式自由格式

第三章 FORTRAN 90 基础知识

Page 24: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.6 书写格式 /自由格式3.6 书写格式 /自由格式

在自由格式中 , 语句在一行中的位置不受限制。语句长度可达 132 个字符。

在自由格式中 , 注释标志符“!”可出现在一行的任意位置。若出现在第 1列 ,则表示该行为注释文本。若出现在中间位置 ,则其后至行末为注释文本。

在自由格式中 , 一行允许写多个语句 , 语句之间用分号“ ;” 分隔 ,最后语句之后不能有分号“ ;” 。一个语句最长不能超过 2640 个字符。

空格除允许出现在字符串文本中外,它不能出现在任何合法单词内。如“ INTEGER” 。

在相邻两个关键字、名称、常量、标号之间必须插入一个或多个空格。有些关键字之间可没有空格,课本 64页表 3-5 。

3.6 书写格式3.6 书写格式

概述概述

标志符标志符

语句标号语句标号

自由格式自由格式

第三章 FORTRAN 90 基础知识

Page 25: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.6 书写格式 /自由格式3.6 书写格式 /自由格式

在自由格式中 ,续行标志符“ &” 出现在待续行语句末尾处 ,若出现在注释文本、字符常量或 Hollerith 常量中 ,则失去续行功能。符号“ &”后的第一个非注释行为续行 ,FORTRAN 90允许有 39 个续行 ,Visual FORTRAN 5.0允许 511 个续行。

在语句中单词符号外续行,要求待续行语句部分末尾必须有续行标识符“ &” ,在接续行语句部分首字符可以写,也可以不写续行标识符“ &” 。

total=100*(i+j)*& counttotal=100*(i+j)*& &count

在语句中单词符号内续行,要求待续行语句部分末尾和接续行语句部分首字符必须有续行标识符“ &” 。

total=100*(i+j)*co& &unt

3.6 书写格式3.6 书写格式 概述 标志符 语句标号 自由格式

第三章 FORTRAN 90 基础知识

Page 26: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.7 数据类型3.7 数据类型

计算机系统的处理对象是数据 (信息 ),离开了数据 ,计算机就失去了应有的价值。数据、数据表示及数据类型在计算机科学应用 ( 特别是程序设计语言和程序设计 ) 中占有重要位置。

概述概述

数据数据

数据表示数据表示

数据类型数据类型

3.7 数据类型3.7 数据类型

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

PROGRAM main

INTEGER length,width,area,price

READ*,length,width

area=length*width

price=4000*area

PRINT*,’ 总地价:’ ,price,’ 元’

END

第三章 FORTRAN 90 基础知识

Page 27: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.7 数据类型 /数据3.7 数据类型 /数据

数据是自然界中客观事物的符号表示。在计算机科学中 ,一切能够被计算机接受和处理的对象 (信息 )均看成是数据。如:面积、周长、体积、距离、速度等都是计算机处理的数据。随着计算机技术的发展 , 数据的内涵也在不断扩展。数据由早期的整数、实数、复数等简单数据 ,发展到现在字符串、文本、图形、图像、声音等复杂数据。

数据分数值数据和非数值数据。 数值数据是能直接进行算术运算 (科学计算 ) 的数据。

如:整数、实数、复数等。非数值计算是不能直接进行算术运算 , 一般进行查询、检索、分类和处理等操作的数据。如:字符串、文本、表格、图形、图像、声音等。

3.7 数据类型3.7 数据类型

概述概述

数据数据

数据表示数据表示

数据类型数据类型

第三章 FORTRAN 90 基础知识

Page 28: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.7 数据类型 /数据表示3.7 数据类型 /数据表示

数据在计算机中进行运算或处理必须采用某种合适的表示形式。同一数据如表示形式不同 ,则处理方式也有所差异。选择合适数据表示形式 ,对于程序设计来说至关重要。数据的定点表示。 小数点位置固定不变的表示方式。整数采用定点表示。定点表示数据精确 , 没有误差 ,但表示数据范围小。 数据的浮点表示。 小数点位置浮动变化的表示方式。实数采用浮点表示。浮点表示数据有误差 , 数很小时 ,认定为 0, 表示范围大 . 数据的 ASCII 码表示。 数据的一种编码形式。字符采用 ASCII 表示。 ASCII 码为美国标准信息交换码 ,采用 7位编码 ,即每一个字符由 7位码表示 ,ASCII 码共 128 个编码 , 表示 128 个字符。 数据的编码表示。 图形、图像和声音等非数值数据采用更为复杂的编码方法编码表示。

3.7 数据类型3.7 数据类型

概述概述

数据数据

数据表示数据表示

数据类型数据类型

第三章 FORTRAN 90 基础知识

Page 29: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

ASCII 码

Page 30: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

Page 31: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

定点整数范围

整数位数 有符号整数范围8 位(一个字节) -128-127

16 位(二个字节) -32,768-32767

32 位(三个字节) 。。。。64 位(四个字节) 。。。。

1 1 1 1 1 1 1 1

符号位,符号位, 00 表示表示++ ,, 11 表示表示 --

数据位数据位

Page 32: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

实数(浮点数)的表示 实数(浮点数)的表示 任何一个十进制实数都可以有以下不同的表示形式:

-34.62 = -3462×10-2 = -0.3462×102 = -3.462×101

同样,二进制实数也可以用上述方法表示,例如: -10.01 = -1001 ×2-10 = -0.1001×210 = -1.001×21 ( 注意:此式中的指

数是二进制 ), 上述表示法称作记阶表示法。记阶表示法如图所示。在记阶表示法中,数由五部分组成:尾符、尾数、阶符、阶数、基数。

N= 数符尾数 2 阶符阶数

尾数的位数决定数的精度阶数的位数决定数的范围

Page 33: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

浮点数

在上图中,基数 2 是固定不变的,当我们已经确定一个实数是二进制实数时,就可以省去该基数。所以,在计算机内部表示二进制实数时,可由尾符、尾数、阶符、阶数四部分组成。二进制数 -0.1001×210 在计算机可表示为:

-0.1001×210 = -0.01001×211 = -0.001001×2100 = … 规格化的形式:尾数的绝对值大于等于 0.1 并且小于 1 ,

从而惟一地规定了小数点的位置。

Page 34: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.7 数据类型 /数据类型3.7 数据类型 /数据类型

不同类型数据有不同的特性 , 其处理方式不同 ,取值范围不同。在处理数据前 , 必须说明数据的特性。数据类型是说明数据特性的常用形式 , 在语言中被广泛采用。

数据类型是数据取值范围和在其上定义的一组操作的总称。数据类型规定了一种数据取值范围和一组操作。

数据类型有四个性质:每个数据类型有一个唯一的名称。内部数据类型名称

由 Fortran 语言预先定义。派生类型名称根据类型定义语句定义。

每个数据类型规定了一个取值范围 (值的集合 ) 。如:8位整型数据类型的取值范围是 -128 至 127 。

每个数据类型规定了其常量数据的表示方法 , 如:实数常量 12.5 。

每个数据类型规定了一组操作。如整型规定的操作有:加 + 、减 - 、乘 * 和除 /操作。

FORTRAN 90具有丰富的数据类型 , 有内部数据类型、派生数据类型、数组和指针类型等。利用丰富的数据类型可设计和编写出功能强大的 FORTRAN 90 程序。

3.7 数据类型3.7 数据类型

概述概述

数据数据

数据表示数据表示

数据类型数据类型

第三章 FORTRAN 90 基础知识

Page 35: 第 3 章   FORTRAN90 基础知识

佛山科学技术学院电子与信息工程学院

3.7 数据类型 /数据类型 /示例3.7 数据类型 /数据类型 /示例

不同类型数据有不同的特性 , 其处理方式不同 ,取值范围不同。在处理数据前 , 必须说明数据的特性。数据类型是说明数据特性的常用形式 , 在语言中被广泛采用。 数据类型是数据取值范围和在其上定义的一组操作的总称。数据类型规定了一种数据取值范围和一组操作。 数据类型有四个性质:每个数据类型有一个唯一的名称。内部数据类型名称由 F语言预先定义。派生类型名称根据类型定义语句定义。每个数据类型规定了一个取值范围 (值的集合 ) 。如: 8位整型数据类型的取值范围是 -128 至 127 。每个数据类型规定了其常量数据的表示方法 , 如: 12.5 。每个数据类型规定了一组操作。如整型规定的操作有:加+ 、减 - 、乘 * 和除 /操作。 FORTRAN 90具有丰富的数据类型 , 有内部数据类型、派生数据类型、数组和指针类型等。利用丰富的数据类型可设计和编写出功能强大的 FORTRAN 90 程序。

3.7 数据类型3.7 数据类型

概述概述

数据 数据表示 数据类型 FORTRAN 9

0数据类型

内部数据类型

派生类型 ( 记录类型)

数组类型

指针类型

公用区类型类型

整数类型

实数类型

复数类型

字符类型

逻辑类型

第三章 FORTRAN 90 基础知识