HTML标记fort属性最大取值,Fortran程序设计第章基本计算(一)赋值语句.doc

Fortran程序设计第章基本计算(一)赋值语句.doc

第9章? 基本计算(一)赋值语句

从计算机的实?际状态来看,给出表达式并?不意味着计算?的开始,真正能够驱动?计算的是可执?行语句,而最直接驱动?表达式的计算?过程的就是赋?值语句,完成一个赋值?步骤,就意味着机器?的状态的局部?或全局发生了?一个根本的变?化。

从语法的角度?来看,一个表达式还?只是一个比较?复杂的复合词?汇,还不能构成一?个完整的语句?,而赋值语句则?是一个在语法?意义上的完整?的语句,表达式在赋值?语句中扮演关?键的语法作用?。

从计算问题的?角度来看,赋值可以说是?基本的计算步?骤,考虑一下我们?人工计算的过?程就可以发现?,任何一个完整?的计算步骤,都可以说就是?一个赋值步骤?,特别是公式演?算和数值计算?,完成一个局部?运算过程的标?志,往往就是求出?某个中间变量?的数值或表达?式。

FORTRA?N语言作为一?

variab?le = expres?sion

variab?le => expres?sion

可以看到一个?赋值语句作为?一个完整的语?句,分为三个部分?:

● 被赋值的变量?

● 赋值符号

● 计算(表达式)

其中被赋值的?变量,通过赋值,就拥有了明确?的取值形式,如果该变量含?有下标,片断下标或子?串范围,则赋值的前提?是它们都已经?获得具体的取?值。

基于表达式结?果的不同种类?,赋值语句分为?:

●??? 固有赋值:固有赋值是把?任意类型的值?赋予一个非指?针变量,或把一个指针?变量赋予一个?与之相关联的?目标。

●??? 自定义赋值:自定义赋值得?以构成的前提?是存在一个可?访问的子例行?程序,它包含一个具?有ASSIG?NMENT形?

●??? 指针赋值:指针赋值把一?个指针变量关?联到它的目标?对象,或者说把一个?目标对象赋予?到一个指针变?量。在形式上它使?用符号=>。

●??? 过滤数组赋值?:这个赋值过程?是对满足一定?条件的数组元?素进行赋值,而不是对数组?整体进行赋值?。

●??? 并行指标数组?赋值。这种赋值形式?给出了一种有?效的并行机制?,能够大规模地?对多重指标变?量进行赋值。

下面我们将分?节讨论这5类?赋值形式,首先给出一些?例子如下:

【例9-1】

X=X-2实型的固有赋?值CHAR(5:8)=“M_30”逻辑型的固有?赋值SAMPLE?=NOTE_2?结构的固有赋?值STRING?=”MYSAMP?LE”可变串结构的?自定义赋值WHERE(X/=0.0)

?? A=B/X

END WHERE过滤数组赋值?FORALL?(I=0:N,J=1:N)

? A(I,J)=3.0/(I-J+2)

? B(I,J)%PTR=>C(I:N,J:N)

END FORALL?

?

PTR=>X并行指标结构?

?? 并行指标赋值?

?? 并行指标指针?赋值

?

?

指针赋值?

9.1? 固有赋值语句?

所谓固有赋值?的主要特征就?是被赋值的变?量不能是指针?变量,赋值语句本身?就是对变量的?定义或重定义?,变量的取值就?是直接计算赋?值语句右边的?表达式所得。不需要额外的?子程序来加以?说明。

下面说明固有?赋值语句的用?法:

●??? 固有赋值中变?量与表达式所?能够具有的类?型,以及它们的一?致性要求见表?9-1。

表9-1固有赋值中?

变量的类型表达式的类型?INTEGE?RINTEGE?R,REAL,COMPLE?XREALINTEGE?R,REAL,COMPLE?XCOMPLE?XINTEGE?R,REAL,COMPLE?XCHARAC?TER变量为具有相?同种别参数的?CHARAC?TERLOGICA?LLOGICA?L派生类型变量为相同的?派生类型?

●??? 如果变量是标?量,那么表达式也?必须是标量。

●??? 如果变量是数?组,那么表达式或?者是标量,或者是相同形?状的数组。

●??? 如果变量是显?形数组,那么变量的形?状可以通过说?明语句说明。

●??? 如果变量是待?定形数组,那么它的形状?由ALLOC?ATE语句,或指针赋值语?句确定。

●??? 如果变量是哑?形数组,那么它的形状?由变量里的片?断下标,或实元确定。变量不能是哑?尺度数组,除非存在含有?最后一个维度?上的上界的片?断下标,或数组的下标?向量,或者标量下标?。

●??? 表达式的形状?由算元的形状?,表达式里的运?算,以及其中的函?数引用决定。

●??? 如果变量是一?个指针,那么它必定已?经关联到一个?目标,赋值语句把表?达式的值赋予?指针的目标。指针所关联的?目标可以是一?个数组,指针决定数组?的秩,而每个维度的?宽度则由目标?决定。

●??? 在赋值过程本?身被执行之前?,赋值语句右边?表达

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值