第一章Fortran.ppt_第1页
第一章Fortran.ppt_第2页
第一章Fortran.ppt_第3页
第一章Fortran.ppt_第4页
第一章Fortran.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FORTRAN语言简介 FORTRAN语言特点 1 FORTRAN 全称FormulaTranslate 公式翻译 是世界上最早出现的高级编程语言具有较强的数值计算能力 主要用途是科学计算 2 与C语言 Matlab等比较有以下特点 Fortran书写 语法要求严格 更适合严谨的科学研究领域 如C语言中数组不提供越界检查 数组使用灵活 在科学计算中可能造成不可预知的错误 Fortran语言可对复数和数组进行直接运算 Fortran语言在并行计算方面有不可替代的优势 提高运算能力 使复杂的工程计算成为可能 Fortran语言是一种编译语言 速度比Matlab快 Fortran语言不断发展 几次修订 顺应时代潮流 FORTRAN历史 FORTRAN发展简史1953年提出fortran11978年4月fortran771991年1月fortran901995年fortran95较新版本 本章内容 Fortran程序组成常量和变量内部函数 表达式 运算常用结构格式 选择和循环结构 数组函数子程序 子例行程序 模块输入 输出格式 文件 1 Fortran程序组成 1FOR90程序的组成 PROGRAM 程序名 说明语句 执行语句 END PROGRAM 程序名 必须有end语句可以有注释语句 以 开始 可以有续行语句 以 开始 2 常量与变量 2 0数据类型 固有数据类型有五种 整形 INTEGER 实型 REAL 复型 COMPLEX 字符型 CHARACTER 逻辑型 LOGICAL 2 1常量 整型常量125 258 25实型常量小数型 3 52 4 0 5 63指数型 1 32e5 1e2 5e3 2 e4复数常量A Bi A B 逻辑常量 TRUE 和 FALSE 符号常量Parameter Pi 3 1416 M 10 2 2变量 1 变量的概念2 变量名3 变量的类型 2 2变量 1 变量的概念 在程序的执行过程中 其值可以发生变化的量 值可以发生变化 系统会为每个变量分配一个存储单元 用来存放变量的值 2 2变量 2 变量名 用来识别变量的名字 称为变量名 变量命名规则 以字母开头 后接字母 下划线或数字的不超过31个字符组成 字母大小写等价变量名中字符与字符之间不能有空格取名时尽量 见名知义 不使用关键字 2 2变量 3 变量的类型格式为 类型说明符变量名1 变量名2 例如 IntegerX YInteger X 20 Y 30Real Area LengthLogical Re True I N规则 FORTRAN中以I J K L M N开头的变量如果没有进行类型说明 则系统默认为整型的 其他为实型 取消I N规则 ImplicitNone 3 内部函数 表达式 运算 3 1FORTRAN内部函数 Fortran语言具有丰富的内部函数 指系统本身带有的能完成一定功能的程序单位 内部函数引用的一般形式函数名 自变量 例子 sin x asin x int x abs x max x y sqrt x mod x y log x log10 x exp x 自变量的有关说明自变量的个数 两个以上的变量之间用逗号隔开自变量的顺序自变量的类型函数自变量可以是常量 变量或表达式 3 2 1FORTRAN算术表达式 1 运算符 运算五种 2 3表示23 M N表示M N2 优先级 说明 同级运算中 和 是自左向右 而 是自右向左 括号可以具有最高的优先级 3 2 2算术表达式中数据类型转化 1 数据类型 3 2 2算术表达式中数据类型转化 2 数据类型转化原则 同类型数据运算不需要转化 运算的结果与数据类型相同遵循由低级向高级转化 整型 实型 复型 算术表达式只有在遇到不同类型数据的时候才进行转化 而不是先将表达式中的数据转化为同一类型 再进行计算 3 3 1关系运算 关系表达式的格式为 表达式1关系运算符表达式2 注意 1 关系运算包含算术运算时 先进行算术运算 再做关系运算 2 关系运算的结果是逻辑型 不能再参与关系运算 3 3 2逻辑运算 逻辑运算符与运算 AND 或运算 OR 非运算 NOT 等运算 EQV 不等运算 NEQV 异或运算 XOR 3 3 2逻辑运算 逻辑表达式一般形式逻辑值1逻辑运算符逻辑值2 4 常用结构格式 选择和循环结构 4 1块IF选择结构 简单的块IF结构块IF结构的嵌套多重条件的IF结构 块IF结构一般格式 IF E THENBLOCK1ELSEBLOCK2ENDIF 4 1 1块IF选择结构格式 逻辑表达式 是否满足条件 是 否 块1 块2 4 1 2块IF结构的嵌套 IF E1 THENIF E2 THENBLOCK11ELSEBLOCK12ENDIFELSEBLOCK2ENDIF 是否满足条件E1 是 否 块11 块2 块12 是否满足条件E2 是 否 4 1 3多重条件的IF结构 IF E 1 THENBLOCK 1ELSEIF E 2 THENBLOCK 2 ELSEIF E N 1 THENBLOCK N 1ELSEBLOCK NENDIF 注意 不管有多少个判断条件 最终仅仅只有一个BLOCK块被执行 4 2 1用DO语句实现循环结构 DO结构的一般形式为 DO循环变量 E1 E2 E3 循环体ENDDO 注 E1 E2 E3循环变量的初值 终值和步长 举例 求1到100的和 Integer i SumSum 0Doi 1 100 1Sum Sum iEnddoPrint Sum SumEnd 4 2 2与循环有关的控制语句 EXIT语句 将无条件中止循环 接着执行指定的DO循环结构出口之后的语句 CYCLE语句 用于中止循环体中剩余的语句 重新执行下一轮循环 4 3用DOWHILE语句实现循环 DOWHILE循环的一般格式为 DOWHILE 逻辑表达式 循环体ENDDO 满足循环条件 执行循环体 循环体下面语句 Y N 例题 已知求 1 求y 3时的最大n值 2 与 1 的n对应值的y值 Integer n 0Real y 0 0 fDowhile y 3 n n 1f 1 0 2 n 1 y y fEnddoPrint y y fPrint n n 1 5 数组 5 0数组 数组是FORTRAN提供的一种数据结构 是变量的集合 数组概念 包含若干个同种类型的变量数组的划分按照数组的形状结构划分数组可分为一维数组多维数组 按照数组元素的类型划分数值型数组字符型数组逻辑型数组 5 1数组 1 定义 Real a 1 20 Real a 20 Real a 0 20 Real a 10 20 2 引用a 1 2 a 1 1 10 3 赋值a 100a 1 5 2 470a 1 5 1 2 2 5 7 举例 从键盘输入10个整数存入一个数组 然后从小到大排列 并输出 Integer x 10 Doi 1 10read x i EnddoDoi 1 9Doj i 1 10if x i x j thenk x i x i x j x j kendifEnddoEnddoDoi 1 10print x i EnddoEnd 6 函数子程序 子例行程序 模块 6 1 1函数子程序 函数子程序的定义格式是 类型说明 FUNCTION函数名 虚参表 函数体END说明 类型说明用于函数名的类型 函数名的命名方法与变量名相同 虚参可以是简单变量和数组变量 但不能是常数 数组元素 表达式 6 1 2函数子程序的调用 函数子程序的调用实参代替虚参 且类型相同 调用程序单元中的变量不能与函数子程序同名 函数值类型由函数子程序单元决定 当函数名不满足I N规则时 在调用程序单元中要对函数名给出说明 举例 当一个数各个数位的立方和等于这个数本身时 称这个数为水仙花数 例如 153 13 53 33 编程求100 999之间的水仙花数 FunctionNum n i SelectCase i Case 100 Num n 100Case 10 Num Mod n 10 10 Case 1 Num Mod n 10 EndSelectEnd ProgramFlowerDoi 100 999if Num i 100 3 Num i 10 3 Num i 1 3 i thenprint 水仙花数 IendifEnddoEnd 6 2子例行程序 子例行程序的定义格式是 Subroutine子例行程序名 虚参表 子例行程序体End说明 子例行程序的命名方法与变量相同 虚参可以是变量 数组名 但不能是数组元素 常数 表达式 虚参多于一个时 各虚参之间用逗号分开 没有虚参时 括弧可以省略 子例行程序的调用格式为 Call子例行程序名 实参表 举例 水仙花数 ProgramFlowerDoi 100 999callNum m1 i 100 callNum m2 i 10 callNum m3 i 1 if m1 3 m2 3 m3 3 i thenprint 水仙花数 IendifEnddoEndsubroutineNum m n i SelectCase i Case 100 m n 100Case 10 m Mod n 10 10 num mod n 100 10Case 1 m Mod n 10 EndSelectEnd 6 3模块 Module 模块是FORTRAN90新建立的概念 并不是指具有一定独立功能的程序块 而是一个与程序 子程序并列的一个专门概念 一个模块可以包含任意多个除主程序外的其他程序单元 包含在模块中的子程序称为模块子程序 6 3模块 Module 建立模块的语句格式为 Module模块名模块说明语句Contains模块子程序1模块子程序2 EndModule模块名注意 1 模块中只能包含关于模块的说明语句和各种子程序单元 不能出现不属于任何一个子程序的可执行语句 2 模块中各子程序单元的存放顺序无关 6 3模块 Module 模块的调用Use模块名注明 连接模块中的全部子程序和数据说明部分 使主调程序能以与模块中完全相同的子程序名调用其中的所有程序单元 7 输入 输出格式 文件 7 1格式输出 格式输出语句有两个 Print语句和Write语句Print语句的一般格式为 Printf 输出项f是格式说明符 指明了输出所用的格式 有以下3种格式格式说明符是一个 号 表示输出使用表控格式格式说明符是一个字符常量 例如 Print 1x 2f7 3 X Y格式说明符是格式语句 例如 Print100 A B C100Format 1x f9 4 2f7 3 7 1格式输出 Write语句的一般格式为 Write u f 输出项u是设备号 用于指明具体使用的输出设备 号是缺省设备 一般指显示器 f是格式说明符 与Print一样有三种形式 7 2格式输入 格式输入的语句指Read语句 它有两种格式Readf 输入项Read u f 输入项u是设备号 用于指明具体使用的输入设备 号是缺省设备 一般指键盘

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论