Fortran讲义-第二章汇总课件.ppt
第二章Fortran语言初步,第二章,怎样学习一门计算机语言,基本结构及组成部分,基本语言要素,字符集、命名规则、关键字、对大小写的要求,书写格式、注释方法、语句的顺序,基本数据类型(常量、变量)、数组、派生类型、指针,基本表达式(算术、字符、逻辑、关系、二进制),主程序、子程序,模块、类 ,怎样学习一门计算机语言 基本结构及组成部分 基本语言要素 字,怎样学习一门计算机语言,基本程序流程(顺序、选择、循环),编译器的选择,输入输出怎样和外部设备交换数据,子程序,各程序模块之间的信息(数据)交换与共享方式,优化与其它高级技巧,软硬件的搭配,辅助的开发工具 ,怎样学习一门计算机语言 基本程序流程(顺序、选择、循环) 编,Fortran编译器,Intel (Compag) Visual Fortran ,Absoft Fortran Compiler,Lahey Fortran Compiler,GNU Fortran Compiler,Portland Group (PGI ) Fortran Compiler,Salford FTN95 Fortran Compiler ,Fortran编译器 Intel (Compag) Visu,Fortran程序的结构,Fortran90程序,program,module,block data,contains,subroutine,function,contains,contains,contains,外部子程序,内部子程序,模块子程序,Fortran程序的结构Fortran90程序program,Fortran的语句,分为非执行语句与可执行语句(有位置顺序),Fortran的语句 分为非执行语句与可执行语句(有位置顺序,Fortran源程序的书写格式,固定格式(*.for或*.f),Fortran源程序的书写格式 固定格式(*.for或*.f,Fortran源程序的书写格式,Fortran源程序的书写格式,Fortran源程序的书写格式,lists.for,Fortran源程序的书写格式lists.for,自由格式(*.f90)和固定格式的比较,Fortran源程序的书写格式,exam_2_1,自由格式(*.f90)和固定格式的比较Fortran源程序,计算机语言语法的形式化定义BNF范式,程序设计语言的基本概念及其描述方式,词法:单词的构成规则,语法:由单词构成语句的规则,语义:语句的实际意义,语用:语句与使用者之间的关系,语境:理解和实现程序设计语言的环境 (编译和运行环境),严格的形式化描述(语法图、BNF范式),自然语言,计算机语言语法的形式化定义BNF范式 程序设计语言的基本概,BNF范式定义了一组描述语言的规则元语言,元语言 描述语言的规则(产生式) 对象(程序)语言,产生式中不属于对象语言的符号 元语言符号,计算机语言语法的形式化定义BNF范式,产生式中属于对象语言的符号 终结符,|“_”|“$”,“0”|“1”|“2”|“3”|“4”|“5”|“6”|“7”|“8”|“9”,“大写英文字母”|“小写英文字母”,BNF范式定义了一组描述语言的规则元语言 元语言 ,计算机语言语法的形式化定义BNF范式,计算机语言语法的形式化定义BNF范式元语言符号含义定义为,Fortran字符集,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 | (不区分大小写), 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, 空格 | = | + | - | * | / | ( | ) | , | . | | : | | ! | % | | | $ | ? | _ (F90新增),Fortran字符集 A | B | C |,Fortran的名称,用来标识程序中的实体(变量、子程序、函数),|_|$,名称长度不能超过6(FORTRAN77) 31(Fortran90) 63(Visual Fortran),Fortran的名称 用来标识程序中的实体(变量、子程序、函,Fortran的名称,program,X-Y-Z,Find_it,1A,_program,$total,exam_2_2,Fortran的名称programX-Y-ZFind_it1,Fortran的名称,O$k,A b,F7t,Dr.Li,Fortran的名称O$kA bF7tDr.Li,Fortran的关键字,语句关键字:if, subroutine, program, end,变元关键字 cmplx(x,y,kind) cmplx(10,20,4) cmplx(y=20, kind=4, x=10),不保留关键字,Fortran的关键字 语句关键字:if, subrouti,数据(信息),Fortran的数据类型,客观事物的符号表示,且能够被计算机接受和处理,数值型数据,非数值型,数据(信息)Fortran的数据类型 客观事物的符号表示,,数据类型,Fortran的数据类型,是数据的取值范围和其上定义的一组操作的总称,内部(基本)数据类型,数组,公用区,指针,派生类型,整数类型,实数类型,复数类型,字符类型,逻辑类型,数据类型Fortran的数据类型 是数据的取值范围和其上定,常量,exam_2_3,#_,|, 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15| 16|17|18|19|20|21|22|23|24|25|26|27|28|29| 30|31|32|33|34|35|36, |, 1| 2| 4| 8 表示存储空间的大小(字节),只对十进制有效,常量exam_2_3 #,常量,(. | .) _,(|) (E|e|D|d)_,exam_2_3,常量 (.小数,常量,exam_2_3,(,) | |,(|”)系统允许字符(|”),H系统允许字符 Fortran90中废除,常量exam_2_3 (,) 一,常量,(|”)系统允许字符(|”)C,(.true.|.false.)_,exam_2_3,常量 (|”)系统允许字符(|”)C,变量,变量的声明,隐式声明(FORTRAN),显式声明,I-N规则,implicit语句,implicit none语句,exam_2_4,List.for,变量 变量的声明 隐式声明(FORTRAN) 显式声明 I-,表达式和赋值语句,算术表达式 ,运算符:+、-、*、/、*(重载),操作数:常量、变量、函数 (整型、实型、复型、逻辑型、数组、指针、派生类型),优先级(最好加括号) : 括号 函数 * *、/ 单目、 双目、,类型转换(向高看齐),int, nint, real, dble, cmplx,复数运算,exam_2_5,表达式和赋值语句 算术表达式 运算符:+、-、*、/、*,关系表达式: .lt.().ge.(=),exam_2_6,表达式和赋值语句,关系表达式: 字符表达式 子字符串exam_2_6,二进制位操作(Fortran90),高优先级,低优先级,最好加括号,表达式和赋值语句,二进制位操作(Fortran90) 逻辑表达式 非:,输入输出,表控格式输入输出,有格式输入输出,无格式(二进制)输入输出,read *, print *,read(*,*) write(*,*) ,输入输出 表控格式输入输出 有格式输入输出 无格式(二进制),程序的暂停、返回与结束,return (很少使用),end(已经包含了return的没有废弃的功能),Fortran90 废除,Fortran95取消, 用read * 代替,程序的暂停、返回与结束 return (很少使用) end(,运算误差,数据的表示范围,整数,exam_2_7,运算误差 数据的表示范围 整数范 围Inte,运算误差,实数,exam_2_7,运算误差 实数范 围有效位数real(4),运算误差,不同类型之间的转换,整数i, i = 1/2 * 2,i = 0,整数i, i = 3.7,i = 3,单精度实数双精度实数,exam_2_8,运算误差 不同类型之间的转换 整数i, i = 1/2 *,运算误差,浮点数的计算误差,大数加小数引起有效位数的丢失,有效位数限制造成的舍入误差,两个大小极其相近的数相减引起有效位数的丢失(CPU相关),判断实数x是否为零必须用:abs(x) eps,exam_2_8,机器 epsilon:使 1eps 1 成立的最小正数,运算误差 浮点数的计算误差 大数加小数引起有效位数的丢失 有,