FORTRAN语言自学基础_第1页
FORTRAN语言自学基础_第2页
FORTRAN语言自学基础_第3页
FORTRAN语言自学基础_第4页
FORTRAN语言自学基础_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、fortran语言自学提纲第一章1 fortran基础1. 一个fortran程序由一个主程序或一个主程序与若干个子程序组成。但一个完整的 fortran程序只能有一个主程序,主程序的第一个语句是program语句,用以说明主 程序的名称。这个语句也可以省略,省略时默认为主程序的名称为maino2. fortran的子程序主要有三种:函数子程序,其第一个语句为function;子例行子程序,其第一个语句为subroutine;数据块了程序,其第一个语句为block datao主程序与各个了程序可以独立编译,最后再链接成一个可执行程序。在编写并输入一个 fortran程序吋,既可以将主程序与各个

2、子程序存放在一个文件中,也可以将它们分別存 放在不同的文件中。但必须注意,主程序与各个了程序都是独立的程序单位,每个程序单位 的最后一行必须用end语句作为结束。在主程序中,虽然end语句还具有使程序停止运行的作用,但由于一个程序单位只能在最 后一行冇end语句,因此,在程序的其它位置处需要停止运行时,只能用stop语句,不 能用end语句。同样的道理,在子程序中,虽然end语句还具有使程序流程返回到调用程序的作用,但在 子程序的其它位置(不是最后一行)需耍返回到调用程序时,只能用return语句,不能 用end语句。3. foptran源程序的卩写格式冇严格的规定。一行中第一列为“c”或“*

3、”吋,该行被认为是注释行。注释行可以写在四个区中的一 个区,且注释行可以出现在程序单位的任何位置。但注释行不能有续行,需要时可以将连续 若干行都定义为注释行。(2)fortran语句部分不能占用标号区及续行标志区,只能从第七列开始。当语句太长时, 可以使用续行。在继续行的标号区内必须为空口(即继续行不允许有标号),标号只能出现 在起始行上。起始行与继续行或各继续行z间的空格不起作用,因此,对于一般的语旬,可以不必到 72列才转为继续行,继续行也不必一定要从第7列接着写,但是,包括在引号内的字符申 中的空格是有效的,因此,对于字符串要使用继续行时应特别注意,最好写到一行的72列 时再转为继续行,

4、且要从继续行的第7列接着写。标号为无符号整数,不能出现正负号。4. 变量定义的in规则与别的程序设计语言不同,fortran语言屮的实型变量和整型变量可以按隐含规则确定。 这个隐含规则就是i-n规则。i-n规则在一定程度上为用户提供了方便,对于常用的一些变量(如循环控制变虽等)就不 需要专门的类型语句进行说明,只要用合适的变最名就可以满足对变最类型的需要。但这也 容易使用八疏忽了対变量类型的说明,以in开头的变量名实际是实空变量,但忘了用real 语句说明,或者以-1h i-n开头的变量名实际是整型变量,也忘了用integer语句说明。 另外,还要提醒人家注意:由于fortran语言屮实型与整

5、型变量遵循in规则,因此,在 冇关fortran的练习或考核中,冇时会省略对变量类型的说明,在这种情况下,应根据 i-n规则来判断变量的类型。总之,fortran中的所有变量都是需要说明其类型的,而不能理解为整型与实型变量不需 要进行说明。在对变虽类型的说明中,i-n规则只用于整型变量与实型变屋;隐含类型说明语旬implicit 适用于所有fortran变量的类型;各种专门的类型说明语句适用于对一种类型的变量进 行说明。5. 字符型常量和变量字符常暈是用单撇号括起来的若干个字符,字符常量中的字符可以是所用计算机系统屮允许 使用的任何字符。用來存放字符型常量的变量称为字符型变量。在程序屮必须先定

6、义字符型 变量才能使用它。定义字符变量用character语句或implicit语句。字符关系表达式用于字符型数据的比较,比较结果是一个逻辑值。参加比较的字符表达式可 以是字符常量、字符型变量、字符型数纽元索以及包括字符运算在内的字符表达式。一个字符串的一部分称为该字符串的了字符串。表示为:字符变量名(el: c2)字符常数、字符变量、字符型数组元素和子字符串可以出现在输入输出语句的输入/输出表 列中。6. 不同类型数据的混合是运算。在fortran77中,允许两个不同类型的算术量(实型量与整型量)作算术运算。遇到这 种情况,系统自动将它转换同一类型后再进行运算。转换的规律是:将低级类型转换成

7、高级 类型,具体来说,当遇到一个整型量与实型最作某种运算时,首先将整型量转换成实型量后 再作相应运算。这就是所谓的算术表达式中不同类型数据的混合运算。但必须注意,在作不同类型数据的混合运算时,类型的转换是在运算过程中逐步进行的,只 要在作某种具体的运算而又遇到两个运算对象的类型不一致时才进行转换,并不是将整个表 达式中的不同类型屋全部不转换成同一类型后再作表达式的计算。例如:设 a=1.0, b=3.5,i=-5,k=5,求表达式(k+l) /5+l*a-b的值。在这个例了中,a与b为实型变蜃,i与k为整型变聚。首先计算k+1,这是整型运算,结 果得6;作6/5的运算,这也是整型运算,结果得到

8、1;取相反数,得-1。然后作运算1*a, 这是不同类型的两个量作乘法运算,先将i的值-5转换成-0.5后再与a的值1.0相乘,结果 为50。再将前面得到的结果1与5.0相加,先作类型转换,1转换成-1.0,与5.0相加后得 60。最后减去b的值3.5后得9.5。由这个例了可以看出,在写fortran表达式时要注意各运算量的类型,特别是在表达式 中冇除法运算时,应使作除法运算的两个运算虽的类型匸确,否则会由于整型相除使结果错 误。例如:为了计算并输出级数的值,编制了如下的fortran程序:s=0.0n=l,100do 1()10 1s=s+1/nwriter,*)'s=',se

9、nd这个程序没有任何语法与逻辑错课,但当这个程序输入到计算机示,进行编译、链接,最示 运行的结果为s=1.0o显然,这个结果是错误的。问题出在标号为10的这个语句中,赋值 号右边的算术表达式中,根据运算顺序,首先计算i/n,当n22吋,这个结果总是为0, 因为这是一个整数除法,只有当n=1时,其结果才不为0而等于1。因此,最后累加到实型 变量s中的值只有1.0。解决这个问题的措施是,只需要在表达式中将“i/n”改成“1.0/n”。 类似于上例中的错误是很容易发生的。木章需完成以下习题:p10 一、二、三、四第二章计算赋值语句、参数说明语句、赋初值语句与标号赋值语句木章重点为计算赋值语旬、参数说

10、明语旬和赋初值语句。计算赋值语句数值型计算赋值语句执行过程为计算赋值号右侧表达的值,转换成左侧变量的类型,最后赋值。(2)逻辑型计算赋值语句逻辑赋值语句赋值号左侧的变用必须是逻辑型变暈,右侧可以是一个逻辑表达式,也可以是 一个逻辑常数、逻辑型变虽或关系表达式。字符型计算赋值语句字符型赋值语句的赋值号左侧的变量必须为字符型,而r需说明其长度,如右侧的字符表达 式长度超出了左侧变量的长度则多出的字符被截去。参数说明语句参数语旬用来给常数命名,经说明后的常数为符号常数。其类型可以用隐含说明、显式说明 等方法来说明。而且符号常数一经定义,其值在运算过程屮不能以任何形式来改变。赋初值语句此语句为说明语句

11、,但町以出现在程序的任何位置。可用于变量、数组、数组元素、子串等 量的赋值。本章完成以下习题:p18 一、二笫三章数据的输入本章的重点放在:1表控格式的输入屮皿特别注意不同类型数据的输入方法。2. 字符型变量要注意使用格式输入和表控输入的区别。3注意read语句-u format语句的联用,要多做练习。木章需垂点完成以下习题:p26 一、二、四、七第四章数据的输出本章的重点放在:1. 表控格式输出屮特别注意不同类型数据的输出形式及所占位数。2. 格式输出时注意以下编辑描述符的使用:i、f、e、d、a、lo3. 注意write语句与format语句的联用,要多做练习。本章需重点完成以下习题:p4

12、2 一、二、四、八、九、十二、十三第五章结束、停、暂停与控制转移语句本章只作一般性了解。注意goto语句的使用。第六章判定与选择1. 块if结构块if结构的一般形式如下:if (逻辑表达式1,) then (块if语句) 块1 then块)elseif (逻辑表达式2) (else语句)块 2 (elseif 块) else (else 语句)块 n (else 块)endif (endif 语句)其中中的内容为可选项。块if结构的执行过程如下:(1)先执行块if语句,计算逻辑表达式的值;(2)如果逻辑表达式1的值为“真”,则执行then块屮的各执行语句;(3)如果逻辑表达式1的值为“假”,如

13、有elseif语句,则执行else语句,计算逻辑表达 式2的值,如果值为“真”,贝u执行else块中的各执行语句;否则执行else块中的 各执行语句;无论是执行完then块、elseif块或else块,最后都转到endif语句,结束块if结 构的执行。因此,块if结构的执行总是从块if语句开始,以endif结束,其屮then块、elseif块 与else块不能都执行,只能根据逻辑表达式值的确定执行哪一块。2. 逻辑if语句逻辑if语句用来实现选择结构。它的一般形式为:if (逻辑表达式)内嵌语句逻辑if语句执行的过程如下:首先计算逻辑表达式的值,如果逻辑表达式的值为“真”,则执行内嵌语句示继续

14、往下执行; 否则不执行内嵌语句,直接执行该语句后面的语旬。复习时,同学们应注意,不要将块1f结构中的块if语句与逻辑if语句相混淆,要注意它 们的区别:块if语句只是块if结构中的第一个语仙 它不能单独使用:而逻辑if语句是单独执行 完成一种选择结构的功能。块if语句屮的逻辑表达式示面要有“then”,而逻辑if语旬中没有“then”。块if语句中的“then”后面不能再有別的语句,所有的语句都包括在then块中;而 逻辑if语句中包括一个内嵌语句,但只能是一个语句。(4) 用逻辑if实现的选择功能一定可以用一个块if结构实现,但一般的块if结构不能用一 个逻辑if实现。3. 块1f结构的嵌套

15、fortran77规定,在一个块if结构的then块或else块中,可以完整地包含另一个(或 多个)块if结构,称为块if的嵌套。块if的嵌套可以多层。对于块if结构的嵌套要注意 以下几点:每一层的块if结构必须从块if语句开始,以endif语句结束。每一层中的块if结构必须完全包含在外层块if结构的then块或else块中,不允许交叉。在利川块if结构的嵌套或者利丿|j else语句处理多路分支选择的时候,块if语句或else if 语句屮的条件必须正确,否则会出现逻辑错込 程序运行示会得到错课的结果。4. endif语句的使用endif语句是一个块if结构的结束语句,它淀要与块1f语句配对使用。在使川endif 语句时,有以下儿个方而需要注意:(1)每一个块if结构不要漏掉endif语句。在没有else语句的块if结构中,endif语旬 在then块或最后一个else1f块的后面;而在有else语句的块if结构中,endif语句 在else块的后面。块if结构中的elseif语句不需要endif语句与z配对。一对配対的块1f语句、end1f语句不能与另一对配対的块1f语句、endif语句出现任 何形式的交义。endif语句只提供then块、else块与elseif块的共同出口,它本身不产生任何操作。本章需重点完成以下习题:p58 一、三、四第七章循环1.

温馨提示

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

评论

0/150

提交评论