Fortran95程序设计基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

程序设计基础——Fortran95第二章Fortran95程序设计基础本章将介绍:•字符集、标识符和关键字•程序的书写格式•数据类型•常量和变量•算术运算符和算术表达式•标准函数了解字符集、标识符和关键字了解程序的固定书写格式掌握程序的自由书写格式掌握五种内部数据类型的表示及存储方式掌握五种内部数据类型常量的合法表示方式掌握变量的表示形式和变量的三种定义方法。掌握算术运算符和算术表达式的运算顺序了解标准函数,并掌握部分常用的标准函数。学习目标:Fortran95的字符集字符集就是编写源程序时能够使用的全部字符及符号的集合。包括:(1)英文字母a-z及A-Z(2)阿拉伯数字0-9(3)22个特殊字符=+-*/(),.:‘“!;%&?$_空格(Tab)Fortran的源程序就是上述字符及符号按照词法、语法和语义的规定对算法的描述。在编写源程序时需要注意的是:(1)除字符型常量外,源程序中不区分字母的大小写,如语句“ReaLa”和“realA”是等价的。(2)字符集以外的可打印字符,只能出现在注释、字符常量、字符串编辑符和输入输出记录中。Fortran95的字符集标识符即名称,是用来在程序中标识有关实体(如:变量、符号常量、函数、程序单元、公用块、数组、模块和形参等)。Fortran95的标识符Fortran95规定:标识符只能由字母、数字、下划线和美元符号“$”组成,且起始字符必须是英语字母。【例2-1】判定下列标识符中哪些是合法标识符?哪些是非法标识符?并解释非法标识符的错误原因。Number,Max,X-YZ,小红,8_student,b.4,china,_abc,$_write,read,a$b,a?b_c。答:合法标识符有:number,Max,china,a$b。非法标识符有:X-YZ,小红,8_student,b.4,_abc,$_write,read,a?b_c。Fortran95的关键字关键字是Fortran95中的一种特定字符串。如read*,a,bread是关键字。类似的关键字有:print、write、program、integer、do、if、then、end、subroutine、function等。在编译环境中正确的关键字会以蓝色字符显示。关键字都有特定的含义,在程序中有具体的位置要求,不能随意改变,否则将产生一个语法错误。Fortran95的关键字Fortran95对于关键字不予保留,即允许其关键字作为其他实体的名称。但是,不主张这样做,因为使用关键字作为实体名称会到导致程序难以理解和阅读。例如:用户可以将自己的变量名、数组名等命名为read、print、end、integer、program、print、do等关键字,编译程序会根据上下文来识别一个字符串究竟是关键字还是实体名称。Fortran95程序的书写格式固定格式(FixedFormat)自由格式(FreeFormat)每种程序设计语言对程序书写格式都有具体的规定,书写格式反映了程序语言独特的书写风格。Fortran语言程序的书写格式有两种:每行80个字符,分成四个区:第1~5列为标号区。第1列为C或*,说明此行为注释行。第6列为续行标志区。续行标志是除空格和零以外的任何FORTRAN字符。第7~72列为语句区。语句可以从第7列以后任何位置开始书写。但一行只能写一个语句。第73~80列为注释区。固定格式备注:FixedFormat(固定格式)是传统的书写方式,对于书写内容应在那一行的那一列上都有严格规定,过于刻板。在自由格式源程序中,书写不再有分区和位置限制。自由格式规定:(1)源程序可以从任何位置开始书写,每行可以编写132个字符。(2)一行可以写多个语句,语句之间用“;”分隔,但最后一个语句不允许有标点符号。例如:X=23.5;Y=-467.0;Z=X+Y自由格式(3)当一个语句比较长时,在一行中的132列中书写不完时,允许有续行。如有续行,需要使用续行标志符“&”实现。续行标志符“&”出现在前一行的末尾。例如:Y=exp(-0.5*x)*cos(x+3.14258/3)+exp(0.5*x)*&sin(x+3.14258/3)+120*log(1+sqrt(1-x*x))自由格式如果把一个语句名或函数名等具有特定意义的字符分成两行,那么除在本行行末加续行标志符外,还要在下一行的开头再加一个续行标志符。例如:Y=COS(ATAN(SQRT(X**3+Y**3)/(X**2+1)))+CO&&S(X*Y/(SQRT(X**2+Y**2)))&+EXP(A*X**2+B*X+C)特殊情况:(4)用!作为注释符,!可以写在一行中的任一位置。注释总是延伸至程序行的结束,所以在同一行的不同语句之间不能插入注释。Fortran95程序的书写格式—自由格式一个程序中,数据是程序加工处理的对象,而通过语句描述了对数据的具体操作。不同类型的数据具有不同的特性,在计算机内存中占有不同的存储长度,存储的方式不同,具有不同类型的运算。Fortran95的数据类型公用区类型派生类型指针类型数组类型逻辑型字符型非数值型复型实型整型数值型内部数据类型数据类型Fortran95的数据类型整数类型(integer)•长整型•短整型整型数据包括正整数、负整数和零。在计算机中整数的取值范围受限于及其所能表示的范围,由其类型决定.整数类型(integer)整型类型名字节数取值范围integer(1)1-128~127(-27~+27-1)短整型integer(2)2-32768~32767(-215~215-1)长整型integer4-2147483648~2147483647(-231~231-1)integer(8)8-263~263-1(alpha系统)超出此范围,则会发生溢出错误。表2.2整数的存储空间及取值范围实数类型(real)实数又称为浮点数(floating-pointnumber)。实行数据有两种类型:单精度型双精度型。数值都是近似值,而且有误差累计。实型数两种表示形式:十进制小数形式和指数形式如:312.0、3.12e+2或0.312E3都代表3.12×102。注意:指数部分必须是整数(若为正整数时,可以省略“+”号)双精度类型,即以两倍的单精度的存储空间大小来存放数据,减小累计的截断误差,大幅度提高计算的精度。实数类型(real)实型类型名字节数精度(有效数字)取值范围单精度46~7±3.40282347E38~±1.17549435E-38双精度815~16±2.2250738585072013D308~±1.7976931348623158D-308表2.3实数的存储空间、精度及取值范围复数类型(complex)复数就是以a+bi形式来表示的数值。其中的a、b值是两个实型数。两种类型:单精度型复数和双精度型复数。复数的表示形式:(a,b)如(1.2,3.5),表示复数1.2+3.5i。Fortran是目前唯一提供复型数据类型的计算机常用语言。字符类型(character)计算机除了存储数值型数据之外,也可以在内存中存放一段文本。字符型数据的表示形式:用一对单引号或双引号括起来。如:‘a’“hello!”只有一个字母或符号时称为“字符”,有一连串(多个)的字符时,就称为“字符串”。存储1个字符需要1个字节的存储空间存储n个字符长度的字符串则需要n个字节的存储空间字符类型(character)字符类型可以表示的东西非常广,从键盘输入的任何内容,不论是数字、字母、文本或任何特殊符号都可以。教材附录A的ASCII字符集里的字符就是这个类型所能表示的所有字符。逻辑类型(logical)表示逻辑判断的结果,只能有两种值:“是”(true)“否”(false)也可以翻译成“对”、“错”,或“真”、“假”等等。数据类型只是数据的形式化和抽象化描述,它说明一类数据的共同性质,而不是具体的数据对象。程序处理的数据必须是具体的数据对象,一个数据对象可以是常量、变量、数组或指针等,用户根据具体问题的需要定义数据对象的数据类型。小结常量常量是在程序中直接生成并直接用于计算和处理,且在程序运行期间保持不变的数据。例如:15、0、-21、.1416、256_2、(10.2,5.3)、’fortran’、”student”、.true.常量无需类型定义、直接由其表示形式可确定其数据类型。Fortran常量包括前面所介绍的五种内部类型常量和一种特殊的常量——符号常量,下面分别介绍它们的表示方法及其注意事项。整型常量可以表示成十进制及2至36进位制形式。整型常量:(1)十进制整数:由0~9的一系列数字组成。例如-215、-16、0、18、24等。对于十进制整数,通过整型kind值(类别类型参数)确定整数的存储空间大小(字节数)和取值范围。例如-16_2、18_4、5_1整型kind值有四种(默认值为4):1、2、4、8(仅对alpha系统有效)(2)2至36进位制数:其形式±r#数字。r前面的符号代表整数的正负r代表进位计数制中的基数其取值范围是:2≤r≤36。常用的进制有:2、8和16进制。缺省值为16。整型常量【例2-2】一个10进制整数3994575的不同进位制表达形式print*,2#1111001111001111001111print*,7#45644664print*,+8#17171717print*,3994575print*,#3CF3CFprint*,36#2DM8Fend整型常量整型常量程序运行结果:注意:Fortran95不允许整数内部出现非数值字符如“,”、“:”和空格;正负号和数字之间可以保留空格。整型常量【例2-3】判定下列整数哪些是合法整数?哪些是非法整数?说明原因。+04654_3-128+3276912.45134_18#796#23#12A#12_21,234-0123,456。整型常量合法整数有:+0、-128、+32769、#12A、-0。非法整数有:4654_3(3不是有效的kind值)12.45(不允许小数点)134_1(超出1个字节取值范围)8#79(8进制中不能包含数字9)6#23(不允许出现空格)#12_2(非十进制不允许使用kind值)1,234(不允许出现逗号)。整型常量实型常量有2种表示形式:十进制小数形式和指数形式。(1)十进制小数形式十进制小数三部分组成整数部分、小数点、小数部分。且必须包含小数点。例如:+12.5、-13.248、0.243、12.和.123十进制小数有3种不同表达形式:±n.m±n.±.m实型常量n代表整数部分,m代表小数部分,不允许出现非数值字符(如逗号、顿号和空格等)。对于实数,通过实型kind值确定实数的存储空间大小、取值范围和最大有效位数(精度)。实型kind值有两种4、8(缺省值为4)分别表示单精度实数和双精度实数。实型常量【例2-4】判定下列实数,哪些是合法实数?哪些是非法实数?说明原因。+00.0.023.587_4654._5-.-.01200-34.6¥1,234,897.00$125.5。实型常量合法实数有:0.0、.0、23.587_4、-.01200。非法实数有:+0(合法整数,没有小数点)654._5(非法的实型kind值)-.(小数点前后不能都没有数字)-34.6¥、1,234,897.00、$125.5(整数、小数部分不能有非数值字符)。实型常量(2)指数形式用来表示一个绝对值非常大或非常小的数。指数形式的实数三部分组成:有效数字、E(或e)和指数。例如:+0.125E+2、-132.48e-1、243E-3、.12e+2,1.2e+11.32e5表示132000或1.32*105。1.285E-12表示1.285*10-12。实型常量指数形式的实数有下列四种表达方式:±n.mE±S±n.E±S±nE±S±.mE±S实型常量n代表有

1 / 93
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功