VisualFortran90程序设计编译器简介§2.4程序单元概念§2.1Fortran语言的发展§2.2源程序及其构成§2.3语言元素1、运行VisualFortran6.6(FortranPowerStation4.0)2、文件——新建——Workspaces标签:输入:Workspacename;此步可省略,直接进入第3步(最好改为d:\)3、File-New-Projects标签选择:Win32ConsoleApplication输入:name其它采用默认值三、开发自己的简单应用程序a、创建project时将自动创建同名的workspaceb、生成projectname的文件夹(目录)打开后:自动形成Debug目录,形成*.dsw文件4、File-New-File标签:选择:FortranfreeFormat…(自由格式).F90或FortranFixedFormat…(固定格式).For输入:文件名(扩展名不输入)其它默认,选中addtoproject复选项会自动形成*.f90或*.for的文件。5、输入文件内容、存盘(文件菜等)注意自由格式和固定格式输入的区别。6、Build—Compile:编译Build—Build:连接Build—Exetuce:运行重复3~6进行第二个源程序(注意一个项目中只能含有1个主程序文件,不能将两个独立的程序文件放入同一个项目中,否则会导致编译错误。)或用DEL移去已建立的文件,重复4~6编译连接执行注意:1)所移去的文件仅从此项目中移去,目录下该文件仍然存在。2)所重复的不得与以前的文件名同名。7、下次重新修改程序时,可直接使用菜单File/OpenWorkspace来打开*.dsw的工程文件。第二章FORTRAN语言的发展简史§2.1Fortran语言的发展简史一、FORTRAN含义及其适用范围FORmulaTRANslator公式翻译器科学和工程计算问题的程序设计语言二、发展简史代表性:19571958FORTRANⅡ1962FORTRANⅣ1978FORTRAN771991.FORTRAN901997.FORTRAN95§2.2FORTRA90源程序基本结构1、由若干个程序单元(位)组成:主程序、外部子程序、模块、块数据单元2、主程序结构[program程序名称]一般省略[声明语句部分][执行语句部分]END[program[程序名称]]3、END停止运行结束标记书写格式Fortran程序代码的编写格式有两种:FreeFormat(自由格式)扩展名:.F90建议所有程序全部改用自由格式来编程FixedFormat(固定格式)扩展名:.F或.FORFreeFormat(自由格式)基本上允许非常自由的编写格式,它没有规定每一行的第几个字符有什么作用,但要注意:1.!感叹号后面的文本都是注释。2.每行可以编写132个字符。3.行号放在每行程序的最前面。4.一行程序代码的最后如果是符号&,代表下一行程序会和这一行连接。如果一行程序代码的开头是符号&,代表它会和上一行程序连接。5.程序命令之间的空格,无意义。书写格式书写格式1.!FreeFormat2.programmain3.write(*,*)”Hello”!这也是注释4.write(*,*)&5.”Hello”6.wri&7.&te(*,*)”Hello”8.end如果把Fortran的关键字分为两行书写,则两行都要加续行符号。如6、7行。注释语句:!后的所有字符都被编译器忽略(非语句行)可独占一行,可在其它语句之后,语句行:可执行语句:输入、赋值、输出说明语句:用于说明变量的类型、属性等注意:行的书写(行的长度、分行、续行)一行可以是0~132个字符,空格有意义,语句最长不超过2640个字符一行可以有多个语句,用“;”分隔一个语句可分行写,读行标记为&(放在尾部),但如为关键字,首尾均加&。最多可有511个续行。例pro&&grammain书写格式空格:关键字、变量、常量内部不能用空格,但相邻两者之间须用空格语句前标号仅用于标识一个语句,与运行顺序无关。语句有位置规定说明语句必须出现在可执行语句之前,格式说明语句(FORMAT语句)除外。书写格式§2.3语言元素Fortran90的语言元素是指在程序设计中所用到的基本成分,例如字符集、常量、变量、记号以及其它的基本结构等。只有了解并掌握了这些基本要素,才可能正确自如地使用该种语言。2.3.1FORTRAN90字符集:编写Fortran90程序时,所能使用的所有字符及符号。⑴A~Z(a~z)程序中不区分大小写26个在大多数处理系统中允许使用小写字母,除了字符串内的字符外,小写字母等价于相应的大写字母。⑵0~910个⑶空格=+-*/(),:.$‘22个⑷_(下划线)、!、”、%、&、;、、、?注意:1、在FOR源程序中,只能使用以上字符2、字符型数据内可以出现任意字符(包括汉字)命名规则:1~31个字符,由字母、数字、下划线组成,第一个字符为字母全局名:主程序单元、外部过程、数据块、模块2.3.1FORTRAN90字符集在Fortran90中,将字母、数字或专用字符的基本有效的序列称为记号,它包括标号、关键字、名字、常数、运算符和定界符。例如:A*SIN(x)+5.3这个表达式包括6个记号,即A、*、SIN、x、+、5.3。注意:在字符串内部,不能随意地添加空格。在记号内部,也不许随意地使用空格。记号与记号之间的空格可以随意地使用。多个空格在语法上与一个空格的作用相同。一个记号与相邻关键字、名字、常数或标号之间,应当用一个或多个空格分开,以避免错误,同时也使结构清晰。2.3.2记号常量的定义:常量是程序执行过程中不能变化的量。基本数据类型有五种:整型、实型、复型、字符型和逻辑型前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。2.3.3基本类型常量I格式(整数格式)一般形式:Iw或:Iw.m其中:w一个数据占的位数宽度(又称“字段宽度”),m需要输出的最少数字位数。Fortran的数据类型F格式(又叫小数型格式)一般形式:Fw.dw各数值占的总位数,d输出数据的小数位数(小数点后的位数)。Fortran的数据类型E格式(又叫指数型格式)一般形式:Ew.dw各数值占的总位数,d输出数据的小数位数(小数点后的位数)。G格式G格式可以根据输出的实数大小决定用小数形式(F格式)输出或指数形式(E格式)输出。当输出大数值或小数值时自动按E格式,当输出的数不大不小时用F格式。其一般形式为:Gw.dFortran的数据类型D格式一般形式:Dw.a用于双精度数据的输出,使用方法与E格式相仿,只是把字母“E”换成“D”。L格式一般形式:Lw用于逻辑型数据的输出,w输出数据的字段宽度。逻辑值“.TRUE.,在输出时打印一个字母T;逻辑值.FLASE.,在输出时打印一个字母F。Fortran的数据类型X格式一般形式:nX用于输出空格,n输出的空格数目。即插入n个空格,或者说,使打印的“当前位置”向右移动n列。/(斜杠)格式斜杠(/)编辑符的作用是:结束本记录的输出并开始下一个记录的输出。字符(CHARACTER)计算机除了存储数字之外,也可以在内存中记录一段文本,字符类型可以记录的东西非常广,从键盘输入的任何东西,不论是数字、文本或任何特殊符号,它都可以记录,只记录一个字母、符号时的数据类型称为“字符”,记录一连串的字符时,就称为“字符串”,记录一个西文字符需要一个字节的存储空间。一个汉字为两个字节的存储空间。一般记为:Aw,w为字符数例:Character(LEN=10)::wordlen=10可以直接写为10或缺省长度为1;如只有一个没有命名的参数,一定是长度整数Fortran的数据类型Fortran的数据类型FORMAT(1X,S)•其中:1X纵向走纸符,S输出格式,用不同的“格式编辑符”(简称“编辑符”)来实现指定的输出格式,各格式间用逗号相隔。•FORMAT语句又叫“格式语句”,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。•FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。2.3.4名字对于名字有下列要求:1.名字的长度不能超过31个字符2.名字的组成成分可以是字母、数字和下划线3.名字的第一个字符必须是字母4.在名字中不能出现空格提倡使用具有一定含义的名字,提高程序的清晰度和可读性。1、定义:程序运行过程中值可变化的量2、命名的规则字母、数字、下划线组成字母开头长度1-31个错例3A、x-3、3.14、A3$2.3.5变量3、变量含义:实际是内存中的一个存储单元,存放变量的值。特性:取之不尽,一冲就跑,总采用当前值参与运算。例:A=2.0ABB=3.0A=A+B5.015.0B=A*B注:A、B必须有确定值,如未定义,值不可预测(有时按0处理)2.03.04、变量类型:基本类型有五种,同常量I-N规则(隐式说明):在程序变量名中,凡以字母I、J、K、L、M、N六个字母开头的变量为整型变量。implicitnone可以取消I-N规则。五种变量的类型说明关键字:整型:INTEGER实型:REAL复型:COMPLEX逻辑型:LOGICAL字符型:CHARACTER待说明的变量放在后面,中间用双分隔符::隔开,对于同时说明多个变量,变量之间用逗号分隔。Fortran90关于变量说明的新功能:1.在变量说明的同时,可以给变量赋初值。INTEGER::I=5,J=126REAL::X=7.2,Z,W=774.22.在说明变量的同时也可说明其种别3.在说明变量的同时,还可说明变量的属性INTEGER,PARAMETER::I=5,J=123REAL,DIMENSION(1:10)::A2.3.6派生数据类型根据需要而由基本数据类型定义新的数据类型。在一个派生类型中可包含多个基本类型。如:TYPESTUDENT(定义开始)CHARACTER(LEN=20)::DEPARTMENTCHARACTER(LEN=10)::CLASSCHARACTER(LEN=15)::NAMEINTEGER::NUMBER(成员定义)ENDTYPESTUDENT(定义结束)派生类型变量的定义:TYPE(STUDENT)::PERSON变量的赋值:PERSON=(”COMPUTER”,”92_2”,”LILIN”,21)成员的表示:PERSON%CLASS=“92_2”PERSON%NAME=“LILIN”2.3.7基本类型数组数组是具有相同类型的元素的有序集合。数组在使用之前必须说明。数组的说明:INTEGER,DIMENSION(1:50)::X;数组名为X,类型为整型,元素个数为50。INTEGER,DIMENSION(5,3)::B;数组名为B,类型为整型,元素个数为5*3个维界:1:50上界:下界缺省下界为1数组中元素的个数称为它的大小,维数称为秩,每维中元素的个数称为维的长度,长度的序列称为形。数组的引用:通过指定下标值的办法来实现。下标值可为整数或整型表达式。下标值不能越界,个数必须与数组的秩相等。注意:1.允许对数组名进行运算。2.允许对数组片段进行操作。所谓数组片段是指数组中某些连续元素的重新组合。数组片段也是一个数组。2.3.8字符子串字符型常量又叫字符串。一个字符串的一部分称为子字符串或字符子串。字符数组:CHARACTER(LEN=1),DIMENSION(80)::ROW引用:ROW(I)字符串:CHARACTER(LEN=80)::ROW引用:ROW(I:I);ROW(4:7)特殊:ROW(:I)相当于ROW(1:I)ROW(I:)相当于ROW(I:80)ROW(:)相当于ROW(1:80)特定长度字符数组:CHARACTER(LEN=80),DIMENSION(25)::ROWC引用:ROWC(I)(J:J)2.3.9数据对象和子对象由一个名引