理学计算物理课件第二章Fortran程序设计初步

上传人:鲁** 文档编号:592465837 上传时间:2024-09-20 格式:PPT 页数:36 大小:885KB
返回 下载 相关 举报
理学计算物理课件第二章Fortran程序设计初步_第1页
第1页 / 共36页
理学计算物理课件第二章Fortran程序设计初步_第2页
第2页 / 共36页
理学计算物理课件第二章Fortran程序设计初步_第3页
第3页 / 共36页
理学计算物理课件第二章Fortran程序设计初步_第4页
第4页 / 共36页
理学计算物理课件第二章Fortran程序设计初步_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《理学计算物理课件第二章Fortran程序设计初步》由会员分享,可在线阅读,更多相关《理学计算物理课件第二章Fortran程序设计初步(36页珍藏版)》请在金锄头文库上搜索。

1、07/0807/08第一学期第一学期第二章第二章第二章第二章FortranFortran程序设计初步程序设计初步程序设计初步程序设计初步 1. 1. 1. 1. FortranFortranFortranFortran程序简例程序简例程序简例程序简例 1.1 1.1 1.1 1.1 编程实例编程实例编程实例编程实例 1.2 Fortran1.2 Fortran1.2 Fortran1.2 Fortran程序的特点程序的特点程序的特点程序的特点 2. 2. 2. 2. FortranFortranFortranFortran程序的基本组成程序的基本组成程序的基本组成程序的基本组成 2.1 2.1

2、 2.1 2.1 字符集字符集字符集字符集 2.2 2.2 2.2 2.2 程序组成程序组成程序组成程序组成 3.3.3.3. 数学运算数学运算数学运算数学运算 3.1 3.1 常量和变量类型常量和变量类型 3.2 3.2 内在函数内在函数 3.3 3.3 算术表达式算术表达式2计算物理导论课多媒体课件计算物理导论课多媒体课件瞬牌浪勿益裹类敞真泽灼缅吠踢滋缄臭慈舞蜀视嫁妙忍屏驮挣焦遂各酮遗理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期2.1Fortran2.1Fortran

3、程序简例程序简例程序简例程序简例u程序实例程序实例u基本语句基本语句u程序特点程序特点 例例1.1 1.1 输入两个数,求算数平均和几何平均值。输入两个数,求算数平均和几何平均值。Fortran 77/90 Fortran 77/90 程序程序第一章第一章FortranFortran程序设计初步程序设计初步撂右凄疾肠故碉孤夜齿丸巡篷帖沛丛树涪诈怎闭麦术凋起餐岸舌肉走致闪理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系程序示例比较程序示例比较程序示例比较程序示例比较洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院

4、物理系洛阳师范学院物理系C-求两种平均値求两种平均値-PROGRAMExample_1_1REALa,b,av1,av2READ(*,*)a,bav1=(a+b)/2av2=sqrt(a*b)WRITE(*,*)av1,av2ENDPROGRAMExample_1_1!求平均求平均REAL:a,b,av1,av2READ*,a,bav1=(a+b)/2;av2=(a*b)*0.5PRINT*,av1,av2END第一章第一章FortranFortran程序设计初步程序设计初步程序説明:程序中第程序説明:程序中第1 1行是注释行,对程序起说明作用。行是注释行,对程序起说明作用。F77F77注释行

5、是以注释行是以“C”“C”或或“!”“!”作为该行第一个字符的,作为该行第一个字符的,F90F90可在任意一行末以可在任意一行末以“!”“!”开始作为注释符。第开始作为注释符。第2 2行是主程序名,第行是主程序名,第3 3行是变量类型定义,第行是变量类型定义,第4 4行是输入语句,第行是输入语句,第5 56 6行是赋值部行是赋值部分,第分,第7 7行是打印输出语句,最后是程序结束。注意行是打印输出语句,最后是程序结束。注意F77F77的固定书写格式和的固定书写格式和F90F90的的自由格式自由格式。F90F90中用中用“;”将两行并为一行。将两行并为一行。壶槐币碾权耗佩扬烽查桂忘螺秧妆母生裴冻

6、绒胁民始颓茅应大杖方膛算先理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步固定格式示例固定格式示例固定格式示例固定格式示例! 求一元二次方程两个实根求一元二次方程两个实根 PROGRAM quadratic PROGRAM quadratic REAL a,b,c,d,x1,x2 REAL a,b,c,d,x1,x2 READ *,a,b,c READ *,a,b,c 输入系数

7、输入系数 d=b*b4*a*c d=b*b4*a*c 算判别式算判别式 100 IF (d=0) THEN 100 IF (d=0) THEN x1=(b+SQRT(d)/(2*a) x1=(b+SQRT(d)/(2*a) x2=(bSQRT(d) x2=(bSQRT(d) & /(2*a) & /(2*a) PRINT *, PRINT *,x1=x1= , x1 , x1 PRINT *, PRINT *,x2=x2= , x2 , x2 ELSE ELSE PRINT *, PRINT *, 该方程有复数根。该方程有复数根。 END IF END IF END END 程序结束程序结束标

8、号区标号区(1-5(1-5列列) )语句区语句区(7-72(7-72列列) )注释区注释区(73-80(73-80列列) )续行区续行区(6(6列列) )洽妥矾数肚证襟集由锦妓佃爆抿麓肢卡哼瓢箍栗逾贼簿子酶旷喘尹痞熟柠理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步标号区:第l5列可以写l至5位整数。也可以没有标号。标号区中的空格不起作用。如lOO与100或100作用相同。标号

9、应是无符号整数(无正负号或小数点)。标号大小顺序没有任何要求。假如第二行的标号为1000,第三行的标号可以是10,也可以是99999。标号区内不得出现标号以外的内容,但注释行例外。注释行的内容可以写在标号区内,一行中第一列为C或*的,该行即被认为注释行,编译时对该行内容不作翻译,对程序运行不产生任何影响。如果在第一列上出现的不是数字、空格或C和*的字符,编译时按出错处理。续行区:第6列如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。注意在某些系统中,这个字符可以不限于上面所列的,如 等字符均可使用。F77允许一个语句有19个续行(即一个语句最多可以写成20行)。有的程序

10、中第6列上用“l”,“2”,表示该行是第1个或第2个续行,但用数字字符容易与第7列的数字形成连续的数字串而引起错觉,故最好使用固定的特殊字符。琵辆颐陋唐知驱龄兴际迈燕帜缚印谅趋曰板碴肠蕴界烈逢舍械拜剁酵董镐理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步语句区:第772列不要求一定从第7列开始写语句,可以从第7列以后(72列以前)的任何一列开始写,但一行只能写一个语句。如果写满

11、了72列,一旦在终端上修改程序时在该行又插入了一些字符,就会使本行最后几个字符超出语句区而引起意料不到的错误。特别注意到语句最后的空格将可能溢出72列,在某些计算机系统上将导致难以查出的错误。应注意,引号内的字符串中所包括的空格是有效的,不能忽略。注释区:第7380列在卡片输入法时代,程序员一般利用此8列为程序行编序号以便查找。注释区只对程序员提供辨别信息,不是语句的一部分,在编译时不对7280列作处理。众倪嘲泰恳厩琢降蔗氮跨拍怨锤控鳃汛缅龟粒灿冀亿孰拉盘转降钞雾碧穗理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物

12、理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步自由格式示例自由格式示例自由格式示例自由格式示例! 求一元二次方程两个实根求一元二次方程两个实根PROGRAM quadraticPROGRAM quadratic REAL a,b,c,d,x1,x2 REAL a,b,c,d,x1,x2 READ *,a,b,c ! READ *,a,b,c !输入系数输入系数 d=b*b4*a*c ! d=b*b4*a*c !计算判别式计算判别式 IF (d=0) THEN IF (d=0) THEN x1=(b+S

13、QRT(d)/(2*a) x1=(b+SQRT(d)/(2*a);x2=(bSQRT(d)/(2*a)x2=(bSQRT(d)/(2*a) PRINT *, PRINT *,x1=x1= , x1 , x1 PRINT *, PRINT *,x2=x2= , x2 , x2 ELSE ELSE PRINT *, PRINT *, 该方程有复数根。该方程有复数根。 END IF END IFEND !END !程序结束程序结束榴屎容清浮们剖循脖姻啼拖之县缺售盔骇轨搪卒蹦楞粕等跋遮逛窗继隐矗理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院

14、物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步行行:一行为:一行为132列。可以有复数条程序语句,语句间用分号列。可以有复数条程序语句,语句间用分号“;”分开。语句分开。语句没有位置规定。没有位置规定。注释行注释行:起始用注释符:起始用注释符“!”号,此行其后的所有字符均作为注释(字符串中的号,此行其后的所有字符均作为注释(字符串中的!号号除外,如除外,如print*,help!)。)。续行续行:当一个语句非常长以至于:当一个语句非常长以至于132列都书写不下时,允许有列都书写不下

15、时,允许有39个续行。在语句个续行。在语句行最后加上续行符行最后加上续行符“&”号。号。空格空格:在语句名和变量名中间不能有空格。需要空格的地方必须有一个以上空格:在语句名和变量名中间不能有空格。需要空格的地方必须有一个以上空格(GOTO和和GOTO,ELSEIF和和ELSEIF,END构造名构造名(构造名有:构造名有:DO,PROGRAM,FUNCTION,MODULE,SUBROUTINE)等有两种写法的除外),等有两种写法的除外),如关系运算符如关系运算符=,=不能写成不能写成=,=。这与。这与F77有很大不同之处,因为有很大不同之处,因为F77的设计中将编译源程序的空格忽略的设计中将编

16、译源程序的空格忽略分号分号:在自由格式中在自由格式中, ,一行允许写多个语句一行允许写多个语句, ,语句之间用分号语句之间用分号“;”“;”分隔分隔, ,最后语句最后语句之后不能有分号之后不能有分号“;”“;”。一个语句最长不能超过。一个语句最长不能超过26402640个字符。个字符。忧崎屹庄公别炼募壤压帛皱一瑟败鬃蜒朗濒皂赌贵诚务韧搞仁玩嘛载煮蒂理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 程序实程序实例例uu 基本语基本语句句u程序特点程序特点第一章第一章Fort

17、ranFortran程序设计初步程序设计初步PROGRAMPROGRAM语句语句语句语句:宣布程序开始,其后跟程序名。可省略。:宣布程序开始,其后跟程序名。可省略。:宣布程序开始,其后跟程序名。可省略。:宣布程序开始,其后跟程序名。可省略。REALREAL语句语句语句语句:定义:定义:定义:定义a,b,.a,b,.等变量为实数型数据。如为整数型,则用等变量为实数型数据。如为整数型,则用等变量为实数型数据。如为整数型,则用等变量为实数型数据。如为整数型,则用INTEGERINTEGER定义。定义。定义。定义。变量名变量名变量名变量名:可用可用可用可用a,ba,b等无具体意义的文字,或用等无具体意

18、义的文字,或用等无具体意义的文字,或用等无具体意义的文字,或用average_valueaverage_value等英文缩写。使用的等英文缩写。使用的等英文缩写。使用的等英文缩写。使用的字字字字 符和文字长度有具体规定。符和文字长度有具体规定。符和文字长度有具体规定。符和文字长度有具体规定。输入输出语句输入输出语句输入输出语句输入输出语句:可以用以下任一种默认格式,注意星号:可以用以下任一种默认格式,注意星号:可以用以下任一种默认格式,注意星号:可以用以下任一种默认格式,注意星号(*)(*)和逗号和逗号和逗号和逗号(,)(,)。星号意指默认。星号意指默认。星号意指默认。星号意指默认的输入输出硬

19、件的输入输出硬件的输入输出硬件的输入输出硬件( ( ( (键盘和屏幕键盘和屏幕键盘和屏幕键盘和屏幕) ) ) )及格式。及格式。及格式。及格式。READ*,READ*,变量名变量名变量名变量名READ(*,*)READ(*,*)变量名变量名变量名变量名PRINT*,PRINT*,变量或常数变量或常数变量或常数变量或常数, ,关系式关系式关系式关系式WRITE(*,*)WRITE(*,*)变量或常数变量或常数变量或常数变量或常数, ,关系式关系式关系式关系式赋值语句:赋值语句:赋值语句:赋值语句:将等式右边的变量取值赋予左边的变量。将等式右边的变量取值赋予左边的变量。将等式右边的变量取值赋予左边

20、的变量。将等式右边的变量取值赋予左边的变量。变量变量变量变量 = = = = 变量、常数、关系式变量、常数、关系式变量、常数、关系式变量、常数、关系式例:例:例:例:sum=sum+xsum=sum+x算术运算算术运算算术运算算术运算: 项运算:加项运算:加项运算:加项运算:加(+)(+)(+)(+),减,减,减,减(-)(-)(-)(-),乘,乘,乘,乘(*)(*)(*)(*),除,除,除,除(/)(/)(/)(/),乘方,乘方,乘方,乘方(*)(*)(*)(*)。运算的优先顺序:加,减运算的优先顺序:加,减运算的优先顺序:加,减运算的优先顺序:加,减 乘,除乘,除乘,除乘,除 乘方,括号中

21、优先乘方,括号中优先乘方,括号中优先乘方,括号中优先( () )。 单项运算:(例单项运算:(例单项运算:(例单项运算:(例-a-a)数据类型数据类型数据类型数据类型:按定义有整数、实数、复数、双精度数等。按定义有整数、实数、复数、双精度数等。按定义有整数、实数、复数、双精度数等。按定义有整数、实数、复数、双精度数等。C-求两种平均値求两种平均値-PROGRAMExample_1_1REALa,b,av1,av2READ(*,*)a,bav1=(a+b)/2av2=sqrt(a*b)WRITE(*,*)av1,av2END2.1Fortran2.1Fortran程序简例程序简例程序简例程序简例

22、锗未榷篱境瘸稽霓恬棱兽潘辉婪创锗袁政跌嚎两挫仁据防砖争始稻咋斜石理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 程序实程序实例例uu 基本语基本语句句u程序特点程序特点第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序简例程序简例程序简例程序简例 一个一个一个一个FortranFortranFortranFortran程序由一个或若干个程序单位组成。程序由一个或若干个程序单位组成。程序由一个或若干个程序单位组成。

23、程序由一个或若干个程序单位组成。主程序主程序主程序主程序和和和和辅程序辅程序辅程序辅程序分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程序单元完成总问题中的一个子问题。序单元完成总问题中的一个子问题。序单元完成总问题中的一个子问题。序单元完成总问题中的一个子问题。 每一个程序单位都是以每一个程序单位都是以每一个程序单位都是以每一个程序单位都是以ENDENDENDEND语句结束的。语句结束的。语句结束的。语句结束的

24、。ENDENDENDEND既是一个程序单位的既是一个程序单位的既是一个程序单位的既是一个程序单位的结束标志,又是一个独立的语句结束标志,又是一个独立的语句结束标志,又是一个独立的语句结束标志,又是一个独立的语句( ( ( (结束语句结束语句结束语句结束语句) ) ) )。主程序中的。主程序中的。主程序中的。主程序中的ENDENDENDEND语句的语句的语句的语句的作用是使程序作用是使程序作用是使程序作用是使程序“停止运行停止运行停止运行停止运行”。辅程序中的。辅程序中的。辅程序中的。辅程序中的ENDENDENDEND语句是语句是语句是语句是“使流程返回调使流程返回调使流程返回调使流程返回调用程

25、序用程序用程序用程序”。 Fortran Fortran Fortran Fortran程序中的语句可以有标号。一个语句有否标号是根据需要程序中的语句可以有标号。一个语句有否标号是根据需要程序中的语句可以有标号。一个语句有否标号是根据需要程序中的语句可以有标号。一个语句有否标号是根据需要而定,其作用是标志一个语句以便被其它语句引用。在同一个程序而定,其作用是标志一个语句以便被其它语句引用。在同一个程序而定,其作用是标志一个语句以便被其它语句引用。在同一个程序而定,其作用是标志一个语句以便被其它语句引用。在同一个程序单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。单元中不能有两个相同标

26、号的语句。标号不影响语句的执行顺序。单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。但在但在但在但在F90F90F90F90中因为提倡结构化程序设计,一般不使用标号。中因为提倡结构化程序设计,一般不使用标号。中因为提倡结构化程序设计,一般不使用标号。中因为提倡结构化程序设计,一般不使用标号。 F77 F77 F77 F77源程序必须按固定格式书写,即源程序中哪些内容应写在一行源程序必须按固定格式书写,即源程序中哪些内容应写在一行源程序必须按固定格式书写,即源程序中哪些内容应写在一行源程序必须按固定格式书写,即源程序中哪些内容应

27、写在一行中的哪一列中的哪一列中的哪一列中的哪一列( ( ( (或哪几列上或哪几列上或哪几列上或哪几列上) ) ) )有严格的规定。而有严格的规定。而有严格的规定。而有严格的规定。而F90F90F90F90可采用自由格式可采用自由格式可采用自由格式可采用自由格式一一一一个个个个程程程程序序序序单单单单位位位位中中中中各各各各类类类类语语语语句句句句的的的的位位位位置置置置是是是是有有有有一一一一定定定定规规规规定定定定的的的的。例例例例如如如如PROGRAMPROGRAMPROGRAMPROGRAM语语语语句句句句应应应应是是是是主主主主程程程程序序序序的的的的第第第第一一一一个个个个语语语语句

28、句句句。FUNCTIONFUNCTIONFUNCTIONFUNCTION语语语语句句句句是是是是函函函函数数数数子子子子程程程程序序序序的的的的第第第第一一一一个个个个语语语语句句句句,ENDENDENDEND语语语语句句句句只只只只能能能能是是是是程程程程序序序序单单单单位位位位中中中中最最最最后后后后一一一一行行行行。程程程程序序序序中中中中语语语语句句句句执执执执行行行行的的的的顺顺顺顺序序序序一般依照它们在程序中的先后位置而定。一般依照它们在程序中的先后位置而定。一般依照它们在程序中的先后位置而定。一般依照它们在程序中的先后位置而定。今败烽愿卵整事补坡虏栋岁擞乍酶命散闭锁好溺比嘶遍偿有

29、砒冶贩州酗蔚理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期u程序实例程序实例u基本语句基本语句u程序特点程序特点第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序简例程序简例程序简例程序简例一个程序单位包括若干行。一个程序单位包括若干行。一个程序单位包括若干行。一个程序单位包括若干行。 F77F77行行行行分分分分为为为为下下下下面面面面两两两两类类类类。F77F77规规规规定定定定,一一一一行行行行只只只只能能能能

30、写写写写一一一一个个个个语语语语句句句句,一一一一行行行行中中中中不不不不能能能能写写写写几几几几个个个个语语语语句句句句。如如如如果果果果一一一一个个个个语语语语句句句句太太太太长长长长,一一一一行行行行内内内内写写写写不不不不下下下下的的的的话话话话,可可可可以以以以写在写在写在写在继续行继续行继续行继续行( (要用要用要用要用“ “续行标志续行标志续行标志续行标志”)”) 语语语语句句句句行行行行。由由由由一一一一个个个个FortranFortran语语语语句句句句组组组组成成成成, FortranFortran语语语语句句句句分分分分为为为为执执执执行行行行语语语语句句句句和和和和非非

31、非非执执执执行行行行语语语语句句句句。执执执执行行行行语语语语句句句句使使使使计计计计算算算算机机机机在在在在运运运运行行行行时时时时产产产产生生生生某某某某些些些些操操操操作作作作,如如如如赋赋赋赋值值值值语语语语句句句句、打打打打印印印印语语语语句句句句等等等等。非非非非执执执执行行行行语语语语句句句句( (包包包包括括括括说说说说明明明明语语语语句句句句,数数数数据据据据语语语语句句句句等等等等) )将将将将有有有有关关关关信信信信息息息息通通通通知知知知编编编编译译译译系系系系统统统统,以以以以便便便便在在在在编编编编译译译译时时时时作作作作出出出出相相相相应应应应的的的的处处处处理理

32、理理,例例例例如如如如类类类类型型型型说说说说明明明明语语语语句句句句、函函函函数数数数子子子子程程程程序序序序语语语语句句句句等等等等。FortranFortran程程程程序序序序的的的的基基基基本本本本成成成成份份份份是是是是语句。语句。语句。语句。 非非非非语语语语句句句句行行行行,即即即即注注注注释释释释行行行行。它它它它不不不不是是是是FortranFortran语语语语句句句句,它它它它不不不不被被被被翻翻翻翻译译译译成成成成机机机机器器器器目目目目标标标标指指指指令令令令。不不不不产产产产生生生生任任任任何何何何机机机机器器器器操操操操作作作作。它它它它仅仅仅仅仅仅仅仅是是是是为

33、为为为了了了了人人人人们们们们阅阅阅阅读读读读程程程程序序序序的的的的方方方方便便便便而而而而加加加加到到到到程程程程序序序序中中中中的的的的。一一一一个个个个程程程程序序序序中中中中注注注注释释释释行行行行的的的的数数数数目目目目不不不不受受受受限限限限制制制制,根根根根据据据据需需需需要要要要而而而而定定定定。但但但但一一一一个个个个程程程程序序序序单单单单位位位位不不不不能能能能只只只只由由由由注注注注释释释释行行行行组组组组成成成成。注注注注释释释释行行行行的的的的内内内内容容容容完完完完全全全全是是是是根根根根据据据据程程程程序序序序设设设设计计计计人人人人员员员员需需需需要要要要而

34、而而而写写写写的的的的,一一一一般般般般是是是是为为为为程程程程序序序序( (或或或或程程程程序序序序中一部分中一部分中一部分中一部分) )的作用作注释以易于理解程序。的作用作注释以易于理解程序。的作用作注释以易于理解程序。的作用作注释以易于理解程序。 F90F90行行不不分分类类。注注释释可可以以写写在在任任一一行行末末尾尾,而而且且一一行行不不限限语语句句 数数,可可以以将将几几个个F77F77行行合合并并写写入入一一行行。这这样样,极极大大地地简简化化了了程程序序写写法法,使使得得程程序序可可以以编编写写得得更更为为清清晰晰明明了了。因因此此F90F90的的格格式式较较F77F77有有柔

35、柔软性。软性。苞睫佳戚畅嗜倒城帽兹峻菱厄渴鬃裴钻厘峙伦酶浪菏摈涤遁揖遥嫩乃惮饰理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 字符集字符集uu 程序组程序组成成第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序的基本组成程序的基本组成程序的基本组成程序的基本组成 FORTRAN 90FORTRAN 90源程序是一个符合源程序是一个符合FORTRAN 77/90FORTRAN 77/90词法、语词法、语法和语义规定

36、的特殊文本法和语义规定的特殊文本, ,它由它由FORTRAN 77/90FORTRAN 77/90字符集规定的字符集规定的字符按照词法、语法和语义规定进行描述。字符按照词法、语法和语义规定进行描述。概述:概述: FortranFortran允许使用的字符如下:允许使用的字符如下:英英文文字字母母:A A B B C C D D E E F F G G H H I I J J K K L L M M N N O O P P Q Q R R S S T T U V W X Y Z U V W X Y Z 阿拉伯数字:阿拉伯数字:0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7

37、8 9特特殊殊符符号号:空空格格 = = + + - - * * / / ( ( ) ) , , . . : : ! ! % % & & ; ; $ ? _ (F90$ ? _ (F90中新增的字符中新增的字符) ) 其中其中“$”“$”和和“?”“?”号在程序中没有确切意义。应当注意,号在程序中没有确切意义。应当注意,在在F77F77语句中不区分大小写字母,例如写语句中不区分大小写字母,例如写READREAD和和readread或或ReadRead是一样的,其它变量名和函数名中,大、小写字母也是等价是一样的,其它变量名和函数名中,大、小写字母也是等价的。但早期的的。但早期的FortranFo

38、rtran卡片不允许小写,故老的程序代码都卡片不允许小写,故老的程序代码都是大写的,很多人也养成了大写的习惯。是大写的,很多人也养成了大写的习惯。等镑学逛溃催炸誓碾迷梁啄线状捉液观娃民霸瓜毁涧心费嘲镭否磊蛋常酞理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 字符集字符集uu 程序组程序组成成 总体构造总体构造 程序单位程序单位 语句顺序语句顺序 英文名英文名 标号标签标号标签第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1For

39、tran程序的基本组成程序的基本组成程序的基本组成程序的基本组成程序总体构造程序总体构造 : :Fortran90Fortran90程程序序是是一一种种分分块块形形式式的的程程序序,整整个个程程序序由由若若干干个个程程序序模模块块组组成成。各各模模块块都都有有相相似似的的语语句句组组织织形形式式,其其中中主主程程序序起起整整体体控控制制作作用用,各各辅辅程程序序模模块块各各自自完完成成问问题题中中的的一一个个算算法法。在在解解决决一一个个比比较较复复杂杂的的问问题题时时,先先把把求求解解的的问问题题分分解解为为若若干干相相对对独独立立的的子子算算法法,每每一一个个子子算算法法编编为为一一个个辅

40、辅程程序序,然然后后按按搭搭积积木木一一样样将将各各有有关关程程序序模模块块组组成成一一个个程程序序。主主程程序序依依次次调调用用各各辅辅程程序序模模块块,控控制制各各子子算算法法的的实实施施,通通过过主主程程序序对对子子程程序序的的调调用用,形形成成程程序序的的整整体体运运行,完成问题的解。行,完成问题的解。若若某某一一子子程程序序算算法法仍仍复复杂杂,可可再再把把它它分分解解为为若若干干更更小小的的算算法法,分分别别编编写写为为更更低低一一层层次次的的辅辅程程序序,由由其其他他辅辅程程序序分分别别去去调调用用。这这种种情情况况可可以以类类推推到到其其它它子子程程序序或或更更低低一一层层次次

41、。所所以以,FortranFortran程程序序n n个个程程序序单单位位1 1主主程程序序单单位位(0(0n-1)n-1)个个子子程程序序单单位位。在在最最简简情情况况下下, , FortranFortran程程序序只只由由一一个个主主程程序序构构成成而而没没有有辅辅程程序序,所所有有算算法法都都由由主主程程序序自自身身完完成成。按按现现代代要要求求,即即使使功功能能比比较较简简单单的的问问题题,也最好写成主程序调用辅程序的形式,以便于维护。也最好写成主程序调用辅程序的形式,以便于维护。讹辆浸愚硒鉴啄蹭役蓖贯逸留贵恬鲁纬老上北壬客桓樱湃继追椅株宜危征理学计算物理课件第二章Fortran程序设

42、计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 字符集字符集uu 程序组程序组成成 总体构造总体构造 程序单位程序单位 语句顺序语句顺序 英文名英文名 标号标签标号标签第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序的基本组成程序的基本组成程序的基本组成程序的基本组成 程序单位程序单位: :主程序主程序 PROGRAM PROGRAM 程序名程序名 语句可省略语句可省略 . . END PROGRAM END PROGRAM 程序名程序名 END EN

43、D必须有必须有辅程序辅程序( (过程过程) ) SUBROUTINE SUBROUTINE 子程序子程序 FUNCTION FUNCTION 函数函数 BLOCK DATA BLOCK DATA 块数据块数据 MODULE MODULE 模块模块 (F90) (F90) 内部过程内部过程 CONTAINS (F90)CONTAINS (F90)程程序序单单位位是是FortranFortran中中的的基基本本成成分分,包包括括主主程程序序、辅辅程程序序、块块数数据据单单元元和和内内部部过过程程。辅辅程程序序可可以以是是函函数数辅辅程程序序或或子子程程序序辅辅程程序序。模模块块中中包包含含可可由由

44、其其他他程程序序单单位位访访问问的的各各种种实实体体。块块数数据据单单元元用用来来对对有有名名公公用用块块的的数数据据对对象象规规定定初初始始值值。一一个个执执行行程程序序总总是是由由一一个个主主程程序序单单位位和和任任意意个个( (可可以以为为零零) )其其他他类类型型的的程程序序单单位位组组成成,任任何何程程序序单单位位都都不不能能调调用用主主程程序序。MODULEMODULE过过程程在在主主程程序序中中通通过过USEUSE语语句句与与之之相相联联系系。模模块块用用于于组组装装若若干干功功能能( (如如过过程程、类类型型定定义义、语语义义扩扩展展等等) )为为一一集集团团,是是F90F90

45、中中极极具具柔柔软软性性的的程程序序单单位位,它它取取代代了了F77F77中中的的某些不安全的特性。某些不安全的特性。BLOCK BLOCK DATADATA辅辅程程序序的的用用处处是是定定义义全全局局常常数数或或全全局局初初始始化化,在在F90F90中中是不推荐使用的,其功能已被是不推荐使用的,其功能已被MODULEMODULE和和USEUSE取代。取代。芦蛾肿趁邱鸯黄境按郊拧秆靳鸟茸蕾猛鞍畅阐晋迎捆分类琳溯咎攒陇驳威理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 字

46、符集字符集uu 程序组程序组成成 总体构造总体构造 程序单位程序单位 语句顺序语句顺序 英文名英文名 标号标签标号标签第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序的基本组成程序的基本组成程序的基本组成程序的基本组成程序体和语句顺序程序体和语句顺序: :FortranFortran要要求求严严格格的的语语句句顺顺序序。在在每每个个程程序序单单位位中中,根根据据语语句句种种类类按如下的次序排列。按如下的次序排列。F77F77中的顺序可简单归纳为:中的顺序可简单归纳为: PROGRAMPROGRAM,FUNCTIONFUNCTION,S

47、UBROUTINESUBROUTINE,BLOCK BLOCK DATADATA等等程程序序单单位位开开始语句始语句 变量类型和语句函数等定义语句变量类型和语句函数等定义语句( (说明部分说明部分) ) 执行语句,执行语句,DATADATA语句,语句,FORMATFORMAT语句语句 ( (执行部分执行部分) ) ENDEND语句语句 在在F90中将新增加的语句功能综合后,其顺序为:中将新增加的语句功能综合后,其顺序为:粮柬看出睹召川春旺六雕责丛禾散袁隔税文反怯揽碎巾谋华戊易剿甜哲涵理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理

48、系洛阳师范学院物理系07/0807/08第一学期第一学期uu 字符集字符集uu 程序组程序组成成 总体构造总体构造 程序单位程序单位 语句顺序语句顺序 英文名英文名 标号标签标号标签第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序的基本组成程序的基本组成程序的基本组成程序的基本组成 英文名英文名: : 变变量量名名和和程程序序名名等等使使用用的的英英文文名名是是由由(F77(F77:6 6;F90F90:31)31)个个字字符符( (包包含含英英文文字字母母A-ZA-Z、数数字字0-90-9、F90:F90:下下划划线线 _)_)构构

49、成成,且且第第一一个个字字符符必必须须是是字字母母。其其英英文文名名的的有有效效使使用用范范围围原原则则上上限限于于一一个个程程序序单单位位之内(内部过程除外)。之内(内部过程除外)。例如:例如:FortranFortran没没有有规规定定保保留留字字,即即可可以以用用函函数数名名或或语语句句定定义义符符作作变变量量名名。但但为为了了避避免免混混淆淆,建建议议不不要要使使用用FortranFortran中中已已有有特特定定含含义义的的字字作作变变量名。如量名。如SINSIN是正弦函数的名字,如果有以下语句:是正弦函数的名字,如果有以下语句:SINSIN3.53.5PRINT *PRINT *,

50、SINSIN则则语语句句中中的的SINSIN是是变变量量名名而而不不代代表表正正弦弦函函数数。系系统统会会根根据据它它后后面面有有无自变量而作出判断,又如:无自变量而作出判断,又如:READ *READ *,PRINTPRINT此此时时PRINTPRINT是是一一个个变变量量名名而而不不代代表表“打打印印输输出出”的的操操作作。系系统统会会认认定定语语句句的的第第个个字字READREAD为为代代表表操操作作的的语语句句定定义义符符,而而把把PRINTPRINT作作为为READREAD语语句句中中读读数数的的变变量量。但但在在同同一一个个程程序序单单位位( (主主程程序序或或子子程程序序分分别是

51、一个程序单位别是一个程序单位) )中,中,变量名和函数名或语句定义符不能同名变量名和函数名或语句定义符不能同名。骂慷窥拿戏举伦独甘仗挽酒豹屑士胡汉殷揩乐树接凉甸寄市隧哭漫附刀趟理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 字符集字符集uu 程序组程序组成成 总体构造总体构造 程序单位程序单位 语句顺序语句顺序 英文名英文名 标号标签标号标签第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序的基本组成程序的基本组

52、成程序的基本组成程序的基本组成 标号和标签标号和标签 : :可可在在语语句句开开头头加加上上标标号号或或标标签签,用用于于指指定定特特定定的的语语句句。有有效效范范围围限限于一个程序单位内。于一个程序单位内。标标号号:1-51-5位位的的1010进进制制整整数数,且且至至少少一一位位不不为为0 0,前前导导0 0不不起起作作用用。F90F90中,不可对空语句加上语句标号。中,不可对空语句加上语句标号。标签标签:英文名,后面接:英文名,后面接“:”“:”(冒号)(冒号) (F90)(F90)例:例:DO 10 k = 1,100DO 10 k = 1,100.10 CONTINUE10 CONT

53、INUE例:例: (F90)(F90)DO k = 1,100DO k = 1,100loop2: DOloop2: DO.END DO loop2 !END DO loop2 !已有标签名时不能省略标签名。已有标签名时不能省略标签名。END DOEND DO玄瓦烹际竟匝锅荷驾勤触枢渺鲁成辩俞略湛溯蹋网县椒纽扇闺肩溅锋吉均理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步 例例1

54、 1:INTEGER : 1A ! INTEGER : 1A ! 不是以字母开头不是以字母开头INTEGER : A_name_made_up_of_more_than_31_letters !INTEGER : A_name_made_up_of_more_than_31_letters !太长太长INTEGER : China:0 ! INTEGER : China:0 ! 含有不允许的字符含有不允许的字符INTEGER : A-3 ! INTEGER : A-3 ! 减号在此是无意义的减号在此是无意义的例例2 2:SINSIN3.53.5A ASIN*SIN(2.0)SIN*SIN(2.

55、0)PRINT *PRINT *,PRINTPRINT彰琴壶窑做耀壶良辫疚狭缝尘窑芍厄控枯渍开腔春胚椎立芦枫簇峨铭差廊理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步数据的输入数据的输入:READ * READ * 语句执行时进入等待数据输入的状态。数个数据输入时以英文语句执行时进入等待数据输入的状态。数个数据输入时以英文逗号、空格或换行符作区别,单个数据中间不能有空格。逗号、

56、空格或换行符作区别,单个数据中间不能有空格。字符的输出字符的输出:在执行:在执行READREAD语句时,计算机已经进入等待数据输入的状态,但它不会语句时,计算机已经进入等待数据输入的状态,但它不会给出任何提示。除了程序员以外,谁也不会知道需要输入什么数据,即使是程序员给出任何提示。除了程序员以外,谁也不会知道需要输入什么数据,即使是程序员自己可能也会忘记。另外,自己可能也会忘记。另外,PRINTPRINT语句打印的数据到到底是什么物理含义也需指明。语句打印的数据到到底是什么物理含义也需指明。因此,需要输出文字内容。因此,需要输出文字内容。字符常量字符常量: 用用 或或 括起来的文字字符。括起来

57、的文字字符。例1.2 输入圆錐底面半径r和高h,求体积和表面积。!-求圆錐体积和表面积求圆錐体积和表面积-PROGRAMExample_1_2REAL:pi,r,h,v,spi=3.141593PRINT*,Inputradiusrandheighth?READ*,r,hv=pi*h*r*2/3.0s=pi*r*(r+sqrt(r*2+h*2)PRINT*,Volume=,vPRINT*,Area=,sEND着讲毯蜘懊许马珠抓缀舒核掖琅袁辽阁疲赠玻琳每白忿鄙缉骨戏遏枷艺孵理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学

58、院物理系07/0807/08第一学期第一学期uu 常量常量uu 变量变量第一章第一章FortranFortran程序设计初步程序设计初步3.13.1常量和变量类型常量和变量类型常量和变量类型常量和变量类型 l常常量量是是指指其其值值始始终终不不变变的的一一些些量量。整整型型、实实型型、双双精精度度和复型常量是算数型常量,也为常数。和复型常量是算数型常量,也为常数。l五种内部数据类型常量五种内部数据类型常量: :u整型常量:整型常量:整数整数。u实型常量:实型常量:实数实数性质性质。u复型常量:复型常量:复数复数说明说明。u字符型常量:字符型常量:字符串字符串。u数组型数组型u逻辑型常量:逻辑型

59、常量:逻辑值逻辑值。 其值只能为:.TRUE.TRUE.(真) 和 .FALSE. .FALSE.(假)。然姥倍锗溜卤档樊卉笋识读狮叭钎谨挝粟婿弃节哨腰们渐琉铡寂揣寅敢财理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 常量常量uu 变量变量第一章第一章FortranFortran程序设计初步程序设计初步3.13.1常量和变量类型常量和变量类型常量和变量类型常量和变量类型 变变量量是是指指在在程程序序运运行行期期间间其其值值是是可可以以变变化化的的量量。系系统统为为程程序

60、中的每一个变量开辟一个存储单元,用来存放变量的值。序中的每一个变量开辟一个存储单元,用来存放变量的值。常常量量是是分分为为类类型型的的,而而变变量量是是用用来来存存放放常常量量的的,因因此此变变量量也也相相应应地地区区分分为为整整型型变变量量INTEGERINTEGER、实实型型变变量量REALREAL、双双精精度度变变量量DOUBLE DOUBLE PRECISIONPRECISION、复复型型变变量量COMPLEXCOMPLEX、逻逻辑辑型型变变量量LOGICALLOGICAL、字字符符型型变变量量CHARACTERCHARACTER。在在程程序序中中应应当当说说明明哪哪些些变量是整型变量

61、,哪些变量是实型变量。变量是整型变量,哪些变量是实型变量。在程序中规定变量的类型可以用以下几种方法在程序中规定变量的类型可以用以下几种方法。射咸菩盯央无蕉匠峪抨乙坦迸练褥泽枫您玛跪梨价特毛哆烙受韩坝腊缠愧理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步隐含约定隐含约定: FortranFortran规规定定,凡凡以以字字母母I I,J J,K K,L L,M M,N N六六个个

62、字字母母开开头头的的变变量量名名,如如无无另另外外说说明明则则为为整整型型变变量量。以以其其它它字字母母开开头头的的变变量量为为实实型型变变量量。可可以以将将这这个个隐隐含含约约定定称称为为“IN“IN规规则则” ” ,表表示示用用I I到到N N之之间间的的字字母母开开头头的的变变量量为为整整型型。例例如如:I I,J J,IMAXIMAX,NUMBERNUMBER,LINELINE,JOBJOB,KlKl为为整整型型变变量量,而而A A,BlBl,COUNTCOUNT,AMOUNTAMOUNT,TOTALTOTAL,BOOKBOOK为实型变量。为实型变量。类型指定类型指定: 如如果果想想改

63、改变变“IN“IN规规则则”对对变变量量类类型型的的约约束束,可可以以用用类类型型说说明明语语句句专专门门指指定定某些变量的类型。某些变量的类型。FortranFortran中有六个类型说明语句:中有六个类型说明语句:(1)INTEGER(1)INTEGER语句语句( (整型说明语句整型说明语句) )(2)REAL(2)REAL语句语句( (实型说明语句实型说明语句) )(3)DOUBLE PRECISION(3)DOUBLE PRECISION语句语句( (双精度说明语句双精度说明语句) )(4)COMPLEX(4)COMPLEX语句语句( (复型说明语句复型说明语句) )(5)LOGICA

64、L(5)LOGICAL语句语句( (逻辑型说明语句逻辑型说明语句) )(6)CHARACTER(6)CHARACTER语句语句( (字符型说明语句字符型说明语句) )吁萝团太踢经辅潘钥躇磕刚疗争睛形浇挽凋筷战瑶含御作烘宜妊缩防陵屋理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步IMPLICITIMPLICIT语句语句( (隐含说明语句隐含说明语句) )指定指定: 可可以以用用I

65、MPLICITIMPLICIT语语句句将将某某一一字字母母开开头头的的全全部部变变量量指指定定为为所所需需的的类类型型,还还可可以用一个以用一个IMPLICITIMPLICIT语句同时指定几种类型。例如:语句同时指定几种类型。例如:IMPLICIT INTEGER (AIMPLICIT INTEGER (A,C C,T-V)T-V)IMPLICIT REAL (IIMPLICIT REAL (I,J)J)IMPLICIT INTEGER (AIMPLICIT INTEGER (A,B)B),REAL(I,K)REAL(I,K),INTEGER (X-Z)INTEGER (X-Z)殷絮芥饯战癌糯

66、豢摸制惜审说炊衰蒋撇的件欠啥显乱治闰阉崖央棍脯泉爵理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步注:注:(1) (1) 以以上上三三种种方方法法中中,以以类类型型说说明明语语句句最最优优先先,IMPLICITIMPLICIT语语句句次次之之,“IN“IN规规则则”的的隐隐含含约约定定级级别别最最低低。如如下下程程序序中中IMAXIMAX变变量量为为整整型型,而而其其它它以以I

67、 I、J J开头的变量为实型:开头的变量为实型: IMPLICIT REAL(I IMPLICIT REAL(I,J)J) INTEGER IMAX INTEGER IMAX(2) (2) 类型说明语句和类型说明语句和IMPLICITIMPLICIT语句是非执行语句。语句是非执行语句。(3) (3) 类型说明只在本程序单位内有效。类型说明只在本程序单位内有效。(4) (4) IMPLICITIMPLICIT语语句句和和类类型型说说明明语语句句应应该该出出现现在在本本程程序序单单位位中中的的所所有有执执行行语语句之前,其中句之前,其中IMPLICITIMPLICIT语句又应在所有的类型说明语句之

68、前语句又应在所有的类型说明语句之前逐琶谗淄楞沃酣怜很阮阁匠嚼灯贤扔姻勤字泪依爆然虐莽引糜拴牧板腺跳理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步实数有四个性质实数有四个性质: :l实数可写成小数形式实数实数可写成小数形式实数, ,也可写成指数形式实数。也可写成指数形式实数。l实实数数写写成成指指数数形形式式实实数数可可有有多多种种等等价价写写法法, ,如如1.2345E11.

69、2345E1和和0.12345E20.12345E2为同一实数。为同一实数。l指指数数形形式式实实数数的的指指数数部部分分决决定定小小数数点点的的位位置置, ,指指数数部部分分为为正正, ,表表示示小小数数点点向向右右移移动动若若干干位位, ,指指数数部部分分为为负负, ,表表示示小小数数点点向向左左移动若干位。移动若干位。l指指数数形形式式实实数数数数值值部部分分决决定定有有效效数数字字位位数数( (即即精精度度),),超超出出有有效数字位数效数字位数, ,将产生误差。指数部分决定实数大小。将产生误差。指数部分决定实数大小。实数性质实数性质实数性质实数性质迷垒抛侥虫摩钦绵芹舱刃卒督面辟雾鸥唇

70、骑诣抬未霉姓瞥矩裂淆妻梅池轿理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步复数语法和表示复数语法和表示复数语法和表示复数语法和表示l复数语法复数语法 (,) l复数表示复数表示 代数表示代数表示: : 12.5+23.4i12.5+23.4i F90 F90表示表示: : (12.5,23.4)(12.5,23.4)走目脸磋尉岩完祸鸣恶拱劲颅亡聚爽突搁臀茨池循斯闺咀彤牢诡叫医

71、麓拉理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步字字符符型型:1 1个个字字符符为为1 1字字节节(中中文文系系统统中中为为2 2字字节节)。用用 (F90(F90:)围起来的字符串。围起来的字符串。例:例:Imaboy.Imaboy.(長为(長为1010字节)字节)Imaboy.Imaboy.(長为(長为1010字节)字节)数数 组组:这这不不是是一一种种单单独独的的类类

72、型型,可可把把同同类类型型的的常常量量用用一一维维维维数数括起来表示:括起来表示:(/(/常量,常量,常量,常量,. .,常量,常量/)/)。 (F90)(F90)巩烧裸摹争莹兼吁露剩馅末句贵碟稼孰剔株项欺眉佣霖坊哗量帝捎锋密隐理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 示例示例uu 注意注意第一章第一章FortranFortran程序设计初步程序设计初步3.13.1内在函数内在函数内在函数内在函数 FortranFortran解题往往要用到一些专门运算。如求三角函

73、数sinxsinx,cosxcosx,开根,绝对值,对数,指数,求一组数中最大数和最小数等。FortranFortran提供了一些系统内在函数来完成这些运算。程序设计者不必自己设计进行这些运算的语句组(即程序段或子程序),只需写出一个函数的名字以及结出一个或若干个自变量,就可以得到所需的值。例如:lSQRT(4.0) SQRT(4.0) lSIN(2.0) 2(SIN(2.0) 2(弧度) )的正弦值 注意三角函数中 的自变量单位为弧度!lEXP(3.5) EXP(3.5) lLOG(3.0) LOG(3.0) l常用的常用的Fortran77Fortran77函数如下表所示。函数如下表所示。

74、 车嗣庙掇锅煮殉铅宣糟溶怖刮侈青怨痊迸前梳源卧请壕望灶刷妓堵怠绦舱理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 示例示例uu 注意注意第一章第一章FortranFortran程序设计初步程序设计初步3.13.1内在函数内在函数内在函数内在函数 一个内在函数可要求一个或多个自变量一个内在函数可要求一个或多个自变量 例例如如,SQRTSQRT函函数数只只能能有有一一个个自自变变量量,而而MODMOD函函数数要要求求两两个个自自变变量量,MAXMAX和和MINMIN函函数数

75、要要求求两两个个以以上上自自变变量量。注注意意当当自自变变量量个个数数规规定定为为2 2个个时时,自自变变量量的的顺顺序序不不应应任任意意颠颠倒倒,如如MOD(8,3)MOD(8,3)表表示示8 8被被3 3除除的的余余数数,其其值值为为2 2,而而MOD(3,8)MOD(3,8)则则表表示示3 3被被8 8除除的的余余数数,其其值值为为3 3。当当自自变变量量个个数数为为2 2时时,自自变变量量的顺序无关。的顺序无关。 函数的自变量是有类型的,函数值也是有类型的函数的自变量是有类型的,函数值也是有类型的 例例如如MOD(8,3)MOD(8,3)中中自自变变量量8 8和和3 3是是整整型型,函

76、函数数MOD(8,3)MOD(8,3)的的值值“2”“2”也也是是整整型型,如如果果写写成成MOD(8.0,3.0)MOD(8.0,3.0),自自变变量量是是实实型型的的,函数值也是实型的,其值为函数值也是实型的,其值为2.02.0。函数名分为函数名分为“通用名通用名”和和“专用名专用名” 例例如如求求余余函函数数的的“通通用用名名”为为MODMOD,“专专用用名名”有有两两个个(MOD(MOD,DMOD)DMOD)。根根据据自自变变量量的的类类型型就就自自动动确确定定了了函函数数值值的的类类型型,如如MOD(8,3)MOD(8,3)的的值值为为整整型型,而而MOD(8.0,3.0)MOD(8

77、.0,3.0)的的值值为为实实型型。当当调调用用子子程程序序时时如如果果用用内内在在函函数数作作为为自自变变量量( (实实参参) ),必必须须使使用该内在函数的专用名。用该内在函数的专用名。号横最赃赡刺奴矿白衫婴嗅空误烧殴琐割术射犀坏搅愧海乔枪偷浦皇矗皑理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步扁恒洞螺欢掀友紊戈在通瀑凶阜边智党聂耪涤没盘各禽氢哮撬喧崔载椎熔理学计算物理课

78、件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 运算符运算符uu 优先次优先次序序u表达式表达式第一章第一章FortranFortran程序设计初步程序设计初步3.23.2算术表达式算术表达式算术表达式算术表达式FORTRANFORTRAN规定可以使用五种算术运算符号:规定可以使用五种算术运算符号:+ + 表示表示“加加”(”(或正号或正号) )- - 表示表示“减减”(”(或负号或负号) )* * 表示表示“乘乘”/ / 表示表示“除除”* * 表示表示“乘方乘方” 请请注注意意:

79、乘乘号号用用“*”“*”表表示示,不不能能写写成成“”“”,以以免免与与字字母母“X”“X”混混淆淆,也也不不能能用用“.”“.”代代替替乘乘号号。除除号号不不能能用用“”“”号号。两两个个运运算算符符不不能能紧紧邻邻,如如A*-BA*-B是是不不合合法法的的,应应写成写成A*(-B)A*(-B)。疡陷诱斧征盆拓兢剁熔汁巳二憨谴乳炒课崎淬型眠烃慢父宦榔粹访闽辑匿理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 运算符运算符uu 优先次优先次序序u表达式表达式第一章第一章F

80、ortranFortran程序设计初步程序设计初步3.23.2算术表达式算术表达式算术表达式算术表达式不同的运算符按以下优先级次序:不同的运算符按以下优先级次序: 加加,减减 乘乘,除除 乘乘方方,括括号号()中中优优先先。同同一一优优先先级级的的两两个个运运算算,乘乘方方按按“先先右右后后左左”,其其它它按按“先左后右先左后右”原则。原则。例:例: x + y*z x + (y*z) x + y*z x + (y*z) x*y*2 x*(y*2) x*y*2 x*(y*2) x/y/z (x/y)/z x/y/z (x/y)/z x*y*z x*(y*z) x*y*z x*(y*z) 3+5

81、-6.0*8.0/4*2 3 3+5-6.0*8.0/4*2 35 548.0/16.0 = 548.0/16.0 = 5例例: 4b4b分分之之a a a/(4*b) a/(4*b) 或或 a/4/ba/4/b,而而a/4*b a/4*b 和和 a/4ba/4b是错误的。是错误的。 如无自信时可用括号(),对运算时间几乎无影响如无自信时可用括号(),对运算时间几乎无影响。奸视夫门肾邢省税暮伊怨锯粹怀淮类骤菌进下熙绦勤北示浚喊膝利料萍成理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期

82、第一学期uu 运算符运算符uu 优先次优先次序序u表达式表达式第一章第一章FortranFortran程序设计初步程序设计初步3.23.2算术表达式算术表达式算术表达式算术表达式 表表达达式式是是指指一一个个或或多多个个运运算算的的组组合合。它它是是由由FortranFortran的的运运算算符符和和括括号号将将各各运运算算元元素素( (包包括括常常量量、变变量量、函函数数、数数组组元素元素) )连结起来的一个有值的式子连结起来的一个有值的式子注意:注意: (1)(1)由由于于用用“/”“/”号号作作为为除除号号,因因此此在在写写除除法法运运算算式式子子时时应加上必要的括号。应加上必要的括号。

83、(2)(2)乘乘号号不不能能省省略略,如如 ,必必须须写写成成A*SIN(X)A*SIN(X),而而不不能能写写成成ASIN(X)ASIN(X)。(3)Fortran(3)Fortran中无大、中、小括号之分,一律用小括号。中无大、中、小括号之分,一律用小括号。(4)(4)乘方按乘方按“先右后左先右后左”原则处理。原则处理。(5)(5)对对单单项项运运算算符符( (如如-A-A中中的的符符号号) )相相当当于于在在它它前前面面有有一一个个运运算量算量“0”“0”,如:,如:A*2A*2相当于相当于0-A*20-A*2而非而非(-A)*2(-A)*2。FortranFortran算术表达式的求值

84、运算中的优先次序以及算术表达式的求值运算中的优先次序以及类型类型 括括号号 函函数数 * * * * / / ,即即括括号内的运算级别最高,加减最低。例如,号内的运算级别最高,加减最低。例如,SQRT(3.*2)*2 SQRT(3.*2)*2 漠鹏淑沿醚疲篷聪虱狞衙漓纸琶募衔谢兹朝镊秒喷情恼样咽苇拳弯粤竿巢理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步表达式运算中的类型表达式

85、运算中的类型表达式运算中的类型表达式运算中的类型同类型的算术量之间运算的结果仍保持原类型。同类型的算术量之间运算的结果仍保持原类型。特别要注意:特别要注意:两个整数相除的商也是整数两个整数相除的商也是整数。例例如如,5/25/2的的值值是是2 2而而不不等等于于2.52.5,4*(-1)4*(-1)等等于于0 0,应应写写为为5*(1./3.)5*(1./3.)而非而非5*(1/3)5*(1/3)。如果参加运算的两个算术量为不同类型,则编译系统会自如果参加运算的两个算术量为不同类型,则编译系统会自动将它们转换成同一类型后进行运算。动将它们转换成同一类型后进行运算。转转换换的的规规律律是是:将将

86、低低级级类类型型转转换换成成高高级级类类型型。类类型型的的级级别别如如下下:整整型型( (低低)实实型型( (高高) )。类类型型的的转转换换是是从从左左向向右右进进行行的的,在遇到不同类型的算术量时才进行转换。在遇到不同类型的算术量时才进行转换。例如:例如:1/2*1.01/2*1.0等于等于0 0,而,而1./2*11./2*1对于对于0.50.5。桐腹亦佬荣盲修赋旋闹吕锑蓑堂贡獭搪靶品吮爬寻芍绩你哦昭唐驹渠证荷理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院

87、物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步 如如果果类类型型不不同同,则则应应先先进进行行表表达达式式的的求求值值,然然后后将将该该表表达式的值转换为被赋值变量的类型。如:达式的值转换为被赋值变量的类型。如:I I3.5*2.13.5*2.1表达式表达式3.5*2.13.5*2.1的值为的值为7.357.35,实型。,实型。又如又如: :T T3*5/73*5/7表达式的值为表达式的值为2 2,整型。,整型。变量变量I I为整型,因此为整型,因此I I的值等于的值等于7 7。由由于于T T为为实实型型,故故系系统统先先将将整整数数2 2转转换换成成

88、实实数数2.02.0,再再赋赋给给变变量量T T,T T的值为的值为2.02.0。 当当赋赋值值号号两两侧侧的的类类型型不不同同时时,往往往往会会产产生生程程序序设设计计者者事事先先预预想想不不到到的的结结果果。所所以以在在编编写写程程序序时时,应应尽尽可可能能使使贼贼值值号号两侧保持同类型。两侧保持同类型。游继摄烧涣杯恼鲍袍矣上泊邵怠抒赶财划厚码颤召仑禹耐亮跺吓莲癣戚宰理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期语句排列次序表语句排列次序表语句排列次序表语句排列次序表第一章第一章FortranFortran程序设计初步程序设计初步涤勃乎意锭罗扑庭涂帽厚剂若坍笔谷猜馒烹炮如帆寒腰筷环靛技搞哪蜂叔理学计算物理课件第二章Fortran程序设计初步理学计算物理课件第二章Fortran程序设计初步洛阳师范学院物理系洛阳师范学院物理系

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号