VisualFortran90第3章.ppt
《VisualFortran90第3章.ppt》由会员分享,可在线阅读,更多相关《VisualFortran90第3章.ppt(105页珍藏版)》请在三一办公上搜索。
1、第3章 基本语句,3.1类型说明语句,3.2 算术表达式和赋值语句,3.3 输入与输出语句,3.4 输入和输出编辑符,基本语句概述,前面已经介绍了Fortran90的语言组成元素及有关程序单元等概念,也了解了程序是由语句组成。Fortran90的程序具有强大的功能,语句很多,但支持程序的最基本的语句主要有四种:类型说明语句、赋值语句、输入语句、输出语句。运用这些基本的语句,就可以编写一些简单的程序。,Fortran90中的变量通常要进行类型说明,然后才能使用。类型说明语句的形式是:类型说明(种别说明),属性说明1,属性说明2,属性说明n:变量名表 例如:Integer(kind2),dimen
2、sion(1:15):A 说明变量A的类型是整型、种别是2、属性是Dimension(1:15),即A被说明为种别参数为2的一维整型数组,具有15个元素。这里的种别说明和属性说明不是必选的,有时也可以省略。,3.1 类型说明语句,例 INTEGER:A,SUM,TOTOL REAL X,Y(缺省双冒号)CHARACTER:C!Character类型的长度缺省为1。其余类型的说明语句请自己练习。,类型:变量名表(注意:此处双冒号可以省略,但不提倡),省略了种别说明和属性说明后具有最基本形式:,选择恰当的数据类型:运算速度、范围、精度、注意实数的误差,整型数据运算速度快,在机内存储没有误差,但能表
3、达的值的范围较小;实型数据能表示小数、分数及不同的精度,表达的值的范围大,但数的外部表示和机器存储会有误差。例,10.2,在机内表示可能为10.999998。使用实数时,尽量避免作相等或不相等的比较 例:A是实型变量,对其与10.2作相等与否比较,不能写成:IF(A=10.2)PRINT*,A 应改写为:IF(ABS(A-10.2)1.0E-6)PRINT*,A,FORTRAN以前版本对未说明类型变量使用隐含规则,即I-N规则:凡以I-N开头的变量都为整型,其余为实型。FORTRAN90不提倡使用隐式说明,为抑制隐式说明发生作用,应在程序一开始就写出语句:IMPLICIT NONE,淘汰隐式说
4、明,程序中常需要为一些变量预先设置初值,FORTRAN90规定可在说明变量的同时使变量初始化。(注意:双冒号不可省略)例:REAL:score=89.5 INTEGER:x,y=0,z,类型说明时,可进行变量的初始化,3.1.2 种别说明,1、种别的说明方法:关键字KIND,后跟=及种别参数,写在类型关键字后面的括号内。例如:INTEGER(KIND=2):X!X是整型,种别为2或:INTEGER(2):X或:INTEGER*2:X种别说明可以缺省,若缺省则为标准种别。,2、有关种别的函数,KIND(X)SELECTED_INT_KIND(N)SELECTED_REAL_KIND(M,N)测试
5、标准种别:KIND(0)4(整型)KIND(0.0)4(实型)KIND(.FALSE.)4(逻辑类型)KIND(A)1(字符类型),各种基本类型种别可取值,INTEGER:1,2,4,8REAL:4(单精度),8(双精度)LOGICAL:1,2,4COMPLEX:4(单精度),8(双精度)CHARACTER:1,3、常数种别的表示,后缀法:INTEGER、REAL、LOGICAL、COMPLEX。例:15_2,14.56_4,.false._4复型常数的种别由两个实数成分的种别来标明。例:(3.5_4,8.6_4)前缀法:字符型例:1_abc,3.1.3 属性说明,属性是被说明对象的所属性质。
6、使该对象具有某种附加功能、特殊的使用方式与适用范围。属性关键字写在说明语句种别说明符之后,双分隔符之前,各属性关键字之间用逗号分开,次序任意。属性关键字(P38):PARAMETER DIMENSION PUBLIC INTENTPRIVATE OPTIONAL POINTER SAVETARGET EXTERNAL ALLOCATABLE INTRINSIC,(1)功能:用一个符号代表一个常量,称为符号常量(常数)(2)写法:Real,Parameter:G=9.8&说明类型时赋值(3)位置:位于可执行语句之前,PARAMETER 属性,程序中不得改变其值 与普通常量的区别:不作语句标号和F
7、ORMAT中重复系数 类型:一般采用I-N规则,否则,需先定义其类型 例:parameter(n=5),(4)使用规则,DIMENSION也称数组属性。定义一个数组必须在说明语句中附加数组属性关键字。DIMENDION(数组形状说明)例如:INTEGER,DIMENSION(1:10):X,DIMENSION属性,表达式:将常量,变量,函数用运算符连接起来的式子。FORTRAN90有四种表达式:算术表达式关系表达式逻辑表达式字符表达式,3.2 算术表达式和赋值语句,以后章节再介绍,3.2.1 算术表达式,1、5个算术运算符:,*乘方*乘/除+-(正,负,加,减),由算术运算符和括号将各运算元素
8、(也称为操作数,如:常数、变量、函数、数组元素)连接起来的有意义的式子。,2、运算符的优先级,3、内在函数,FORTRAN 90配置的函数称为内在函数。内在函数分为三种:基本函数转换函数查询函数使用函数应注意的四个问题:1、函数名及函数的功能2、自变量的个数及类型3、函数值的个数及类型4、对函数的限制,注意:三角函数单位为弧度 sinD cosD tanD 可以为度(F90)(2)某些函数参数只能为实型 如:log(2.0)(loG(2)错)(3)自变量个数、次序 例:MOD(5,3)=2 MOD(3,5)=3(4)自变量可以是有值的常量、变量、表达式 例:ABS(B*2+SIN(A+B),(
9、2)转换函数(P41),(3)查询函数(P41),KIND()SELECTED_INT_KIND()SELECTED_REAL_KIND()PRECISION()RANGE(),4、算术表达式,用Fortran来编写数学表达式的规则和方法都很“直观化”,和在纸上做四则运算只有一点点的差别。例:,书写表达式注意事项:,例:1、2、,答案:1、2.0*SIN(3.14/4)/3.0 2、(Sin(4.0)+cos(10*3.14/180)*exp(2.5)/(Sqrt(2.0)+abs(a*x)+log(3.0*5),5、表达式的计算,(1)表达式中运算的优先次序是:括号 函数*或/+或-同一层内
10、运算符自左向右依次执行,多层括号中最内层括号优先级别最高,逐层向外。对于连续的乘方运算,采用先右后左的方式例:3*2*3,先计算2*3=8,再进行3*8=6561,(2)表达式的类型与种别,运算对象类型相同时,运算结果的类型为同一类型注意:5/2=2 1/2=0!,想一想:1/2*3.6-1.2的值?有何3.6*1/2-1.2的值?不同?,运算对象类型不同时,系统一般先转换成相同类型后再运算转换规则是:较低级的类型转换为较高级的类型数据类型隐含的高低次序为(由低到高):整型实型 双精度 复型例:8/5+2.0*5/2=6.0(逐步转化),两个不同种别参数的数据运算,结果取精度或允许范围较大的那
11、个参数的种别,例:3.1_4+4.5_8 得7.6_82.1_4+(6.5,3.8_8)得(8.6_8,3.8_8),注意有效位数的限制引起的误差 计算机存储数据的有效位数是有限的一般为十进制数的6至7位例:1.0/3.0的结果在内存中不是0.3333333333333,而是0.3333333 注意溢出 计算结果超出了存储单元所允许的数的范围程序中的表达式,要避免两个很大的数相乘、或一个很大的数除以一个很小的数,二、赋值语句,1、作用:将一个表达式的值赋给一个变量(或一个数组元素)2、写法 V=表达式e 例:A=3.14159*R*2 注意读法 B=A C=3,3、赋值语句的功能,a、计算表达
12、式e的值b、转化为V类型、种别c、赋值,例:I=6.2*2 A=6*2 C=A+B(C复型,A,B实型)例:m为整型,x为实型M=(1.0,2.0)*2:2X=(1.5,2.0)+(2.0,1.0):3.5,A=BB=A,错例:x+y=1 3=A sin(x)=0.5,2、赋值号左边只能是变量名(或数组元素名、数组名),不能是表达式。,4、注意,正确:A=A+1 计数器,3、类型要求逻辑型、字符型的赋值语句要求“=”两边类型相同数值型赋值,不区别整型、实型和复型,允许两边的数值类型不同 执行赋值语句后,把e的值转化为V的类型后再赋值给VV是整型、e是实型,把尾数丢掉化为整型后赋值4、种别方面
13、字符型要求种别相同其余类型的e、V种别允许不同 执行赋值语句后,e的值的种别转化为V的种别后再赋值,A=10;B=20C=AA=BB=C,例:使用赋值语句交换A,B值,简单程序示例 例:输入圆半径,求圆面积和周长,PROGRAM main REAL:r,l,s READ*,r l=2*3.14159*r s=3.14159*r*2 PRINT*,l,sEND PROGRAM MAIN,real,parameter:p=3.14159或parameter(p=3.14159),3.3 输入输出语句,用FORTRAN语言解决实际问题的过程,如下图所示:,3.3.1 输入/输出(I/O)的概念,I/
14、O概念共有四个:一、I/O的定义I/O是相对于内存而言的,键盘属于输入设备,显示器属于输出设备,优盘、硬盘既是输入设备,又是输出设备。,1、I/O的对象 列在中2、I/O的方向及语句READ(U,f)WRITE其中:输入 READ语句 输出 PRINT语句,只输出到显示器 WRITE语句,适合任何输出设备,二、I/O需确定的三个因素,格式,设备(部件),3、设备与格式 U(部件)*:系统约定设备某个值:指定通道号(设备逻辑号、文件号)表控格式I/O(*):系统约定的格式。f(格式)基本格式(自定格式)I/O:按用户要求的格式 组织I/0。带控制信息表的I/O:,三、的内容,READ中的输入表的
15、内容可以是:变量名,数组名,数组片段名,结构成员名,隐循环表(隐DO表),不能是表达式WRITE 中的输出表内容可以是:PRINT变量名,数组名,数组片段名,结构成员名,隐循环表(隐DO表),常数,函数和表达式。,四、记录和文件,1、记录:以回车(ENTER)作为记录的分隔标记。每执行一个I/O语句就启动一个新记录。I:碰到回车(ENTER)为一个记录。O:一行为一个记录。2、文件:文件为同类记录的集合,文件的读取单位为记录。,3.3.2表控输入语句,一、含义 输入:数据 内存(变量)赋值语句:定值,少量,程序中变值 输入语句:变动(待定),批量,执行时送值,二、写法 简单的输入语句:Read
16、*,变量名表 Read(*,*)变量名表,例:Read*,A,D,F,三、功能:执行时,暂停,等待用户从键盘输入数据,分别赋给各变量,赋值顺序自左向右。四、程序执行过程中按表控格式输入数据各数据间有分隔符:,或空格。类型匹配:整型:带小数点只取整数部分;实数:可以为整数;复数:(实部,虚部);字符:一串字符:赋值时长度转化 或一串字符 即可省略。逻辑:以T或F作为第一个字母的字符串(点号1个、空格多个在前忽略),例:read*,I 输入:2.5 取23.输入的数据必须是常数,不能是变量和表达式如输入2+1,则出错。出错信息:run-time error F6601:Read(con)-Inva
17、lid Integer 含义:输入了无效的整数4.输入数据个数:1)不得少于变量的个数;2)可分行输入;3)多余的数据不起作用,5.空格可以多个,/表示输入数据结束,后面的数据被取消,没有输入数据的变量值为原值;Read*,A,B,C 输入:2,1/3 结果:A=2 B=1 C=0 6、如果几个连续变量需要赋同一个值,可以使用重复因子r,即r*c:r为重复数 4*0.5,2*3,2*AB,3*(1.0,-1.0),7.多个Read语句 每个Read必须从一个新的行输入数据 例:read*,a,b,c,d read*,e 1,2,3数据不够,继续读取下一行 4,5 5 作为无效数据被放弃 6,3
18、.3.3表控输出语句,一、含义:数据 显示二、写法:WRITE(*,*)输出表 PRINT*,输出表,表控格式,变量名,表达式:值常量:原样输出空:空行变量之间用逗号分隔,三、功能:按表控格式依次输出各数据的值。例:PRINT*,N=,N,固定的输出宽度,类型:复型:带()输出 逻辑型:T,F 输出一个字符 字符型:丢失,采用左对齐输出,表控输出的格式,3.一行显示不下,数据自动换行输出4.多个PRINT语句:每个开始输出一个新的记录,输入输出的三种不同的格式:1表控格式的输入输出2有格式的输入输出3带控制信息表的输入输出要素:1在什么外部设备上输入或输出2用什么格式输入输出3输入输出哪些数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFortran90

链接地址:https://www.31ppt.com/p-6523094.html