[理学]计算物理课件 第二章Fortran程序设计初步.ppt
《[理学]计算物理课件 第二章Fortran程序设计初步.ppt》由会员分享,可在线阅读,更多相关《[理学]计算物理课件 第二章Fortran程序设计初步.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、07/0807/08第一学期第一学期理学计算物理课件 第二章 Fortran程序设计初步 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望07/0807/08第一学期第一学期2.1Fortran2.1Fortran程序简例程序简例程序简例程序简例u程序实例程序实例u基本语句基本语句u程序特点程序特点 例例1.1 1.1 输入两个数,求算数平均和几何平均值。输入两个数,求算数平均和几何平均值。Fortran 77/90 Fortran 77/90 程序程序第一章第一章
2、FortranFortran程序设计初步程序设计初步洛阳师范学院物理系洛阳师范学院物理系程序示例比较程序示例比较程序示例比较程序示例比较洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系C-C-求两种平均値求两种平均値-PROGRAM Example_1_1 PROGRAM Example_1_1 REAL a,b,av1,av2 REAL a,b,av1,av2 READ(*,*)a,b READ(*,*)a,b av1=(a+b)/2 av1=(a+b)/2 av2=sqrt(a*b)av2=sqrt(a*b)WRITE(*,*)av1,av2 WRITE(*,*)a
3、v1,av2 END ENDPROGRAM Example_1_1!PROGRAM Example_1_1!求平均求平均REAL:a,b,av1,av2REAL:a,b,av1,av2READ*,a,b READ*,a,b av1=(a+b)/2;av2=(a*b)*0.5av1=(a+b)/2;av2=(a*b)*0.5PRINT*,av1,av2 PRINT*,av1,av2 END END 第一章第一章FortranFortran程序设计初步程序设计初步程序説明:程序中第程序説明:程序中第1 1行是注释行,对程序起说明作用。行是注释行,对程序起说明作用。F77F77注释行是以注释行是以“
4、C”“C”或或“!”“!”作为该行第一个字符的,作为该行第一个字符的,F90F90可在任意一行末以可在任意一行末以“!”“!”开始作为注释符。第开始作为注释符。第2 2行是主程序名,第行是主程序名,第3 3行是变量类型定义,第行是变量类型定义,第4 4行是输入语句,第行是输入语句,第5 56 6行是赋值部行是赋值部分,第分,第7 7行是打印输出语句,最后是程序结束。注意行是打印输出语句,最后是程序结束。注意F77F77的固定书写格式和的固定书写格式和F90F90的的自由格式自由格式。F90F90中用中用“;”将两行并为一行。将两行并为一行。洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系
5、洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章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 输入系数输入系数 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
6、=(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 程序结束程序结束标号区标号区(1-5(1-5列列)语句区语句区(7-72(7-72列列)注释区注释区(73-80(73-80列列)续行区续行区(6(6列列)洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院
7、物理系第一章第一章FortranFortran程序设计初步程序设计初步标号区:第l5列可以写l至5位整数。也可以没有标号。标号区中的空格不起作用。如lOO与100或100作用相同。标号应是无符号整数(无正负号或小数点)。标号大小顺序没有任何要求。假如第二行的标号为1000,第三行的标号可以是10,也可以是99999。标号区内不得出现标号以外的内容,但注释行例外。注释行的内容可以写在标号区内,一行中第一列为C或*的,该行即被认为注释行,编译时对该行内容不作翻译,对程序运行不产生任何影响。如果在第一列上出现的不是数字、空格或C和*的字符,编译时按出错处理。续行区:第6列 如果在一行的第6列上写一个
8、非空格和非零的字符,则该行作为其上一行的续行。注意在某些系统中,这个字符可以不限于上面所列的,如 等字符均可使用。F77允许一个语句有19个续行(即一个语句最多可以写成20行)。有的程序中第6列上用“l”,“2”,表示该行是第1个或第2个续行,但用数字字符容易与第7列的数字形成连续的数字串而引起错觉,故最好使用固定的特殊字符。洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步 语句区:第772列 不要求一定从第7列开始写语句,可以从第7列以后(72列以前)的任何一列开始写,
9、但一行只能写一个语句。如果写满了72列,一旦在终端上修改程序时在该行又插入了一些字符,就会使本行最后几个字符超出语句区而引起意料不到的错误。特别注意到语句最后的空格将可能溢出72列,在某些计算机系统上将导致难以查出的错误。应注意,引号内的字符串中所包括的空格是有效的,不能忽略。注释区:第7380列 在卡片输入法时代,程序员一般利用此8列为程序行编序号以便查找。注释区只对程序员提供辨别信息,不是语句的一部分,在编译时不对7280列作处理。洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步
10、程序设计初步自由格式示例自由格式示例自由格式示例自由格式示例!求一元二次方程两个实根求一元二次方程两个实根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+SQRT(d)/(2*a)x1=(b+SQRT(d)/(2*a);x2=(bSQRT(d)/(2*a)x2=(bSQRT(d)/(2*a)PRI
11、NT*,PRINT*,x1=x1=,x1,x1 PRINT*,PRINT*,x2=x2=,x2,x2 ELSE ELSE PRINT*,PRINT*,该方程有复数根。该方程有复数根。END IF END IFEND !END !程序结束程序结束洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系洛阳师范学院物理系第一章第一章FortranFortran程序设计初步程序设计初步行行:一行为:一行为132132列。可以有复数条程序语句,语句间用分号列。可以有复数条程序语句,语句间用分号“;”“;”分开。语句没分开。语句没有位置规定。有位置规定。注释行注释行:起
12、始用注释符:起始用注释符“!”“!”号,此行其后的所有字符均作为注释(字符串中的号,此行其后的所有字符均作为注释(字符串中的!号号除外,如除外,如 print*,print*,help!help!)。)。续行续行:当一个语句非常长以至于:当一个语句非常长以至于132132列都书写不下时,允许有列都书写不下时,允许有3939个续行。在语句个续行。在语句行最后加上续行符行最后加上续行符“&”“&”号。号。空格空格:在语句名和变量名中间不能有空格。需要空格的地方必须有一个以上空格:在语句名和变量名中间不能有空格。需要空格的地方必须有一个以上空格(GOTOGOTO和和GO TOGO TO,ELSEIF
13、ELSEIF和和ELSE IFELSE IF,ENDEND构造名构造名(构造名有:构造名有:DO,DO,PROGRAM,FUNCTION,MODULE,SUBROUTINE)PROGRAM,FUNCTION,MODULE,SUBROUTINE)等有两种写法的除外),如关等有两种写法的除外),如关系运算符系运算符=,=不能写成不能写成=,=。这与。这与F77F77有很大不同之处,因为有很大不同之处,因为F77F77的设计的设计中将编译源程序的空格忽略中将编译源程序的空格忽略分号分号:在自由格式中在自由格式中,一行允许写多个语句一行允许写多个语句,语句之间用分号语句之间用分号“;”“;”分隔分隔,
14、最后语句最后语句之后不能有分号之后不能有分号“;”“;”。一个语句最长不能超过。一个语句最长不能超过26402640个字符。个字符。洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 程序实程序实例例uu 基本语基本语句句u程序特点程序特点第一章第一章FortranFortran程序设计初步程序设计初步PROGRAMPROGRAMPROGRAMPROGRAM语句语句语句语句:宣布程序开始,其后跟程序名。可省略。:宣布程序开始,其后跟程序名。可省略。:宣布程序开始,其后跟程序名。可省略。:宣布程序开始,其后跟程序名。可省略。REALREALREALREAL语句语句语句语
15、句:定义:定义:定义:定义a,b,.a,b,.a,b,.a,b,.等变量为实数型数据。如为整数型,则用等变量为实数型数据。如为整数型,则用等变量为实数型数据。如为整数型,则用等变量为实数型数据。如为整数型,则用INTEGERINTEGERINTEGERINTEGER定义。定义。定义。定义。变量名变量名变量名变量名:可用可用可用可用a,ba,ba,ba,b等无具体意义的文字,或用等无具体意义的文字,或用等无具体意义的文字,或用等无具体意义的文字,或用average_valueaverage_valueaverage_valueaverage_value等英文缩写。使用的字等英文缩写。使用的字等英
16、文缩写。使用的字等英文缩写。使用的字 符和文字长度有具体规定。符和文字长度有具体规定。符和文字长度有具体规定。符和文字长度有具体规定。输入输出语句输入输出语句输入输出语句输入输出语句:可以用以下任一种默认格式,注意星号:可以用以下任一种默认格式,注意星号:可以用以下任一种默认格式,注意星号:可以用以下任一种默认格式,注意星号(*)(*)(*)(*)和逗号和逗号和逗号和逗号(,)(,)(,)(,)。星号意指默认的。星号意指默认的。星号意指默认的。星号意指默认的输入输出硬件输入输出硬件输入输出硬件输入输出硬件(键盘和屏幕键盘和屏幕键盘和屏幕键盘和屏幕)及格式。及格式。及格式。及格式。READ*,R
17、EAD*,READ*,READ*,变量名变量名变量名变量名 READ(*,*)READ(*,*)READ(*,*)READ(*,*)变量名变量名变量名变量名 PRINT*,PRINT*,PRINT*,PRINT*,变量或常数变量或常数变量或常数变量或常数,关系式关系式关系式关系式 WRITE(*,*)WRITE(*,*)WRITE(*,*)WRITE(*,*)变量或常数变量或常数变量或常数变量或常数,关系式关系式关系式关系式赋值语句:赋值语句:赋值语句:赋值语句:将等式右边的变量取值赋予左边的变量。将等式右边的变量取值赋予左边的变量。将等式右边的变量取值赋予左边的变量。将等式右边的变量取值赋予
18、左边的变量。变量变量变量变量=变量、常数、关系式变量、常数、关系式变量、常数、关系式变量、常数、关系式例:例:例:例:sum=sum+xsum=sum+xsum=sum+xsum=sum+x算术运算算术运算算术运算算术运算:项运算:加项运算:加项运算:加项运算:加(+)(+)(+)(+),减,减,减,减(-)(-)(-)(-),乘,乘,乘,乘(*)(*)(*)(*),除,除,除,除(/)(/)(/)(/),乘方,乘方,乘方,乘方(*)(*)(*)(*)。运算的优先顺序:加,减运算的优先顺序:加,减运算的优先顺序:加,减运算的优先顺序:加,减 乘,除乘,除乘,除乘,除 乘方,括号中优先乘方,括号
19、中优先乘方,括号中优先乘方,括号中优先()。单项运算:(例单项运算:(例单项运算:(例单项运算:(例-a-a-a-a)数据类型数据类型数据类型数据类型:按定义有整数、实数、复数、双精度数等。按定义有整数、实数、复数、双精度数等。按定义有整数、实数、复数、双精度数等。按定义有整数、实数、复数、双精度数等。C-C-求两种平均値求两种平均値-PROGRAM Example_1_1 PROGRAM Example_1_1 REAL a,b,av1,av2 REAL a,b,av1,av2 READ(*,*)a,b READ(*,*)a,b av1=(a+b)/2 av1=(a+b)/2 av2=sqr
20、t(a*b)av2=sqrt(a*b)WRITE(*,*)av1,av2 WRITE(*,*)av1,av2 END END2.1Fortran2.1Fortran程序简例程序简例程序简例程序简例洛阳师范学院物理系洛阳师范学院物理系07/0807/08第一学期第一学期uu 程序实程序实例例uu 基本语基本语句句u程序特点程序特点第一章第一章FortranFortran程序设计初步程序设计初步2.1Fortran2.1Fortran程序简例程序简例程序简例程序简例 一个一个一个一个FortranFortranFortranFortran程序由一个或若干个程序单位组成。程序由一个或若干个程序单位组
21、成。程序由一个或若干个程序单位组成。程序由一个或若干个程序单位组成。主程序主程序主程序主程序和和和和辅程序辅程序辅程序辅程序分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程序单元完成总问题中的一个子问题。序单元完成总问题中的一个子问题。序单元完成总问题中的一个子问题。序单元完成总问题中的一个子问题。每一个程序单位都是以每一个程序单位都是以每一个程序单位都是以每一个程序单位都是以ENDENDENDEND语句结束的。
22、语句结束的。语句结束的。语句结束的。ENDENDENDEND既是一个程序单位的既是一个程序单位的既是一个程序单位的既是一个程序单位的结束标志,又是一个独立的语句结束标志,又是一个独立的语句结束标志,又是一个独立的语句结束标志,又是一个独立的语句(结束语句结束语句结束语句结束语句)。主程序中的。主程序中的。主程序中的。主程序中的ENDENDENDEND语句的语句的语句的语句的作用是使程序作用是使程序作用是使程序作用是使程序“停止运行停止运行停止运行停止运行”。辅程序中的。辅程序中的。辅程序中的。辅程序中的ENDENDENDEND语句是语句是语句是语句是“使流程返回调使流程返回调使流程返回调使流程
23、返回调用程序用程序用程序用程序”。Fortran Fortran Fortran Fortran程序中的语句可以有标号。一个语句有否标号是根据需要程序中的语句可以有标号。一个语句有否标号是根据需要程序中的语句可以有标号。一个语句有否标号是根据需要程序中的语句可以有标号。一个语句有否标号是根据需要而定,其作用是标志一个语句以便被其它语句引用。在同一个程序而定,其作用是标志一个语句以便被其它语句引用。在同一个程序而定,其作用是标志一个语句以便被其它语句引用。在同一个程序而定,其作用是标志一个语句以便被其它语句引用。在同一个程序单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。单元中不能有两
24、个相同标号的语句。标号不影响语句的执行顺序。单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。但在但在但在但在F90F90F90F90中因为提倡结构化程序设计,一般不使用标号。中因为提倡结构化程序设计,一般不使用标号。中因为提倡结构化程序设计,一般不使用标号。中因为提倡结构化程序设计,一般不使用标号。F77 F77 F77 F77源程序必须按固定格式书写,即源程序中哪些内容应写在一行源程序必须按固定格式书写,即源程序中哪些内容应写在一行源程序必须按固定格式书写,即源程序中哪些内容应写在一行源程序必须按固定格式书写,即源程序中哪些
25、内容应写在一行中的哪一列中的哪一列中的哪一列中的哪一列(或哪几列上或哪几列上或哪几列上或哪几列上)有严格的规定。而有严格的规定。而有严格的规定。而有严格的规定。而F90F90F90F90可采用自由格式可采用自由格式可采用自由格式可采用自由格式一一一一个个个个程程程程序序序序单单单单位位位位中中中中各各各各类类类类语语语语句句句句的的的的位位位位置置置置是是是是有有有有一一一一定定定定规规规规定定定定的的的的。例例例例如如如如PROGRAMPROGRAMPROGRAMPROGRAM语语语语句句句句应应应应是是是是主主主主程程程程序序序序的的的的第第第第一一一一个个个个语语语语句句句句。FUNCT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理学 理学计算物理课件 第二章 Fortran程序设计初步 计算 物理 课件 第二 Fortran 程序设计 初步
限制150内