fortran数据共用存储单元和数据块子程序

无名 主程序 common x, y, i, z(3)
公用区
子程序 common a, b, j, t(3)
程序中只能有一个无名公用区 不同程序单位在common语句中的变量或数组按其 在语句中出现的先后顺序占用相同连续的存储单元。
5
例:用子例行程序解一元二次方程的两个根
read(*,*)a1,a2,a3 call quad(a1,a2,a3,z1,z2) write(*,*)z1,z2 end subroutine quad(a,b,c,x1,x2) p=-b/(2.0*a) q=sqrt(b*b-4.0*a*c)/(2.0*a) x1=p+q x2=p-q common z1,z2 end read(*,*)a1,a2,a3 call quad(a1,a2,a3) write(*,*)z1,z2 end
6
说明: 1. common语句是说明语句,必须
出现在所有可执行语句之前。
3. 一个程序只有一个无名公共区, 同一程序单位中出现多个common 语句,作用相当于一个。 4. 公用语句区中的变量或数组类 型必须按顺序一一对应。 5. 变量或数组名只能在同一程序
common x, y, z(3) common a, b common x, y, z(3), a, b
2. 每一对括号内的变量表中,可以是变量名、数 组名或数组元素,但至少应该有两个变量名, 中间用逗号隔开。不允许出现虚拟参数名。 Equivalence(W,ST)
3. 每对括号中的变量可以具有不同类型,一个等 价语句可以使多组变量等价。 Equivalence(A,B), (X,Y,Z)
2
4. 等价语句可以节省内存。 Equivalence(IM,NPL,JJ2,NEG) 不能同时或交叉使用! 5. 等价语句允许用两个或更多的变量名代表同一个量。 Equivalence(A,A0,A1) 6. 数组的等价。
common z1,z2,a1,a2,a3 read(*,*)a1,a2,a3 call quad write(*,*)z1,z2 end subroutine quad common x1,x2,a,b,c …… end
subroutine quad(a,b,c) common x1,x2 …… end
第 九 章 数组
第 十 章 语句函数
第十一章 子程序
第十二章 数据共用存储单元 和数据块子程序
uivalence语句)
Equivalence(变量表1),(变量表2),…… 作用:使同一个程序单位中的两个或更多的变量共用 一个存储单元。 1. Equivalence 语句是说明语句,必须出现在程 说明: 序单位的执行语句之前。
common a,b,c common a1,b1,a 单位的公用语句定义中出现一次。 的作用。 有名公共区、数据块子程序内容(自学)
7
6. 区分equivalence和common语句
Dimension A(8),B(4,2),C(2,2,2) Equivalence (A,B,C) 等价于 Equivalence (A(1),B(1,1),C(1,1,1)) 7. 不能利用等价语句建立矛盾的等价关系。
Dimension A(10) Equivalence (X,A(1)),(X,A(3))
3
二、公用语句(COMMON)语句
传统Fortran程序不同单位之间的数据交换是通过: 虚实结合 优点:符合结构化程序设计的指导思想。程序有较好的可 读性,容易跟踪数据的流向,便于对程序进行调试 和维护。
缺点:传输速度慢。
4
Fortran程序中有 两种公共区
无名公共区(只有一个)
有名公共区
开辟公用区用common语句
合集下载

fortran

fortran

或OPERATOR(运算符)
或ASSIGNMENT(=) 其中,类属子程序名用于定义类属子程序、 OPERATOR用于超载运算符、ASSIGNMENT用 于超载赋值运算,具体内容我们下一节介绍。
关于接口定义的几点说明:
⑶ 接口内的语句称为接口体。 接口体的一般形式为: FUNCTION语句 [说明部分] END [FUNCTION语句] 或 SUBROUTINE语句 [说明部分] END [SUBROUTINE语句]
方法: 定义一个新的运算符与超载一个已有的运算符的方式 基本相似,可以在INTERFACE语句中含有这个运算 符的名字,定义运算的函数子程序应该有一个或两个 INTENT属性为IN的变量,函数子程序名应包含在 MODULE PROCEDURE语句中。 INTERFACE OPERATOR (.PRIME.) MODULE PROCEDURE PRIME END INTERFACE 现在这个运算符就可以和其它一元运算符一样使用, 例如下面的IF语句: IF(.PRIME. B .AND. B > 100)THEN… 一个自定义二元运算符的优先级总低于其他运算符, 而一个自定义一元运算符的优先级总高于其他运算符。
一个例子:
PROGRAM USE_MODULE USE MY_MODULE IMPLICIT NONE 注意:USE语句出现 REAL::A, B 的位置,在IMPLICIT NONE语句前面 READ *, A B=PI CALL SWAP (A, B) PRINT *, A, B END PROGRAM USE_MODULE
10.4.2 超载赋值号
在执行赋值语句时,赋值号“=”右边表达式的 数据类型将会转换为左边变量的数据类型并赋 值。例如,当I是整型变量而R是实型变量时, 下列赋值语句将把I的整型值转换为实型并赋 予R: R = I 如果我们希望延伸这种功能,使得一个逻辑型 的值能够赋予一个整型变量。如在执行赋值语 句:I = L时(其中L是逻辑型,而I是整型), 使.FALSE.相当于0,使.TRUE.相当于1。为此, 我们需要编写一个子程序完成此功能并用一个 接口块来指明完成转换的子程序名。

fortran语言语法

fortran语言语法

FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。

经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。

目前,工科院校开设的计算机编程语言课首选仍然是FORTRAN :<说实话,从科技发展的趋势来说这不是好事。

您可以设想一下,如果需要用鹅毛笔抄写大量的古籍是什么感受!强烈建议阅读《发掘C#特性赋予科学计算项目以威力》1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。

用类型说明语句确定变量类型:可以改变I-N规则用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。

数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/,,DATA A/,B/,C/DATA A,B,C/3*CHARACTER*6 CHN(10)DATA CHN/10*'?????'/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则·程序中的变量名,不分大小写;·变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;·一行只能写一个语句;·程序的第一个语句固定为PROGRAM 程序名称字符串·某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;·某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;·某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;·某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;·某行的第73至80字符位为注释区,80字符位以后不能有内容。

FORTRAN 90第八章子程序

FORTRAN 90第八章子程序

3.语句函数表达式 语句函数表达式说明函数与参数的对应关系,在函数表达式中,可以包含常量、 变量、函数虚参(虚参必须包含在表达式中)、FORTRAN 90内在函数、数组以及 前面已经说明了的语句函数。 4.关于语句函数的进一步说明 (1)只有当函数关系简单,可以用一个语句描述函数与参数的对应关系时, 才能使用语句函数。 (2)语句函数是非执行语句,语句函数的定义语句要放在一个程序单位的 所有其他说明语句之,并放在所有可执行语句之前。 (3)语句函数只有在本程序单元中才有意义。也就是说,不能使用其他程 序单元中的语句函数。
8.2.2 函数子程序的调用
定义函数子程序的目的是为了调用。不仅主程序可以调用一个函数子程序, 函数子程序也可以调用其它的函数子程序,甚至于还可以调用本身(递归调 用)。调用程序称为主调程序单元,而被调用的函数子程序称为被调程序单 元。调用一个函数子程序的方法和调用内在函数和语句函数的方法基本相 同: 1. 调用时应该用实参代替函数子程序定义部分的虚参,实参和虚参的类 型要相同。 和语句函数一样,实参可以是常量、变量、表达式等。 2. 调用程序单位中的变量不能与函数子程序同名。函数值的类型由函数 定义程序单元决定,与调用程序单元无关。 3. 当函数名的类型不满足I—N隐含规则时,在调用程序单元中要对函数 名的类型给出说明(如例 8.4 中的主程序EXAM3的第2句。)
1.语句函数名
在语句函数定义格式中,f称为函数名,函数名的组成规则与变量名相同。 如果没有在语句函数定义语句前用类型语句说明该函数名的数据类型,则 该语句函数的函数值的类型按其函数名遵守I—N隐含规则。如f函数隐含为 实型函数,而nf则隐含为整形函数。
F(X,Y)=X**2+Y**2
INTEGER F(X,Y)=X**2+Y**2 NF(X,Y)=X**2+Y**2

fortran语法手册

fortran语法手册

1F O R T R A N77四则运算符+ - */ ** (其中**表示乘方)在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→()2 FORTRAN77变量类型隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。

如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。

数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/,,DATA A/,B/,C/DATA A,B,C/3*CHARACTER*6 CHN(10)DATA CHN/10*''/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。

第10章 Fortran程序单元

第10章  Fortran程序单元
第10章 Fortran程序单元
• 一个Fortran程序中通常不是只由一个主程序组成, 而是由几个按某种方式划分的不同程序单元来共 同组成。尽管Fortran程序中允许只有主程序而没 有子程序,但绝不允许只有子程序而没有主程序。 在Fortran中,程序的执行总是从主程序开始的。 • Fortran中的程序单元可以大体划分为主程序、子 程序两种,其中子程序又可以进一步划分为函数 子程序、子例行子程序和数据块子程序。数据块 子程序通常用于实现变量的初始化赋值,函数子 程序和子例行子程序在用途上基本是一致的,但 是也有许多不同之处。本章将详细介绍Fortran中 的程序单元和它们的基本用法。
10.4 子例行子程序
• 同函数子程序相比,子例行子程序通常用于完成 更为复杂的任务。子例行子程序接受外界传入的 参数并对其进行处理,子例行程序名不会用来返 回处理结果。形象一点来说,函数子程序像检验 机,它不改变参数的值但会告诉外界一个检测结 果;而子例行子程序更像一个加工机器,外界来 的参数经过它的加工会以新的形象出现。本节主 要介绍子例行子程序的相关知识。
10.5 子程序的多入口点和多折返点
• 尽管子程序中不允许直接定义其他的子程序,但 是在Fortran 77时代,可以通过特殊的方式在同 一个子程序中定义多个不同的过程入口。通过调 用不同的过程定义来实现调用同一个子程序中的 不同执行段。除了提供多入口点外,Fortran 77 时代也提供特殊的多折返点来实现特定条件的子 程序调用返回方式。
10.6 Fortran 90/95中的特殊子程序类型
• 在Fortran 90/95标准中,除了继续对前述的一般 子程序类型提供支持外,还新增了三种特殊的子 程序类型。这三种子程序类型就是前述章节中曾 经提到过的RECURSIVE、PURE和ELEMENTAL三种属 性。RECURSIVE属性允许过程进行自身调用,也就 是常说的递归调用;PURE和ELEMENTAL属性都用于 数组的并行处理。

12数据共用存储单元和数据块子程序 FORTRAN语言程序设计 教学课件

12数据共用存储单元和数据块子程序  FORTRAN语言程序设计 教学课件
Dimension A(10) Equivalence (X,A(1)),(X,A(3))
3
例:用子例行程序解一元二次方程的两个根
read(*,*)a1,a2,a3 call quad(a1,a2,a3,z1,z2) write(*,*)z1,z2 end
subroutine quad(a,b,c,x1,x2)
5. 等价语句允许用两个或更多的变量名代表同一个量。 Equivalence(A,A0,A1)
6. 数组的等价。
Dimension A(8),B(4,2),C(2,2,2) Equivalence (A,B,C) 等价于 Equivalence (A(1),B(1,1),C(1,1,1))
7. 不能利用等价语句建立矛盾的等价关系。
p=-b/(2.0*a)
q=sqrt(b*b-4.0*a*c)/(2.0*a)
x1=p+q
x2=p-q end
common z1,z2 read(*,*)a1,a2,a3
call quad(a1,a2,a3)
write(*,*)z1,z2
end
common z1,z2,a1,a2,a3 read(*,*)a1,a2,a3 call quad write(*,*)z1,z2 end
第 九 章 数组 第 十 章 语句函数 第十一章 子程序 第十二章 数据共用存储单元
和数据块子程序 第十三章 文件
1
一、等价语句(Equivalence语句)
Equivalence(变量表1),(变量表2),……
作用:使同一个程序单位中的两个或更多的变量共用 一个存储单元。
说明:1. Equivalence 语句是说明语句,必须出现在程 序单位的执行语句之前。

FORTRAN学习中的一些小心得

FORTRAN 心得第一部分:一些小心得1Fortran不区分大小写2 Fortran有5种基本数据类型,integer,real, character, logical, complex3 fortran fixed format格式中的变量赋初值一般用DATA,因为它不能用::4 real(kind=8) a这种格式只使用于Fortran90,Fortran77中要使用real*8或real(8)5 FORTRAN中FREE与FIXED两种格式do循环的区别:Fortran 95使用end do来结束循环。

Fortran 77使用DO循环要麻烦一点,它不使用END DO来结束循环,而是使用行号来结束循环,程序代码要在DO的后面写清楚这个循环到哪一行程序代码结束。

Fortran 77中,经常会使用CONTINUE这个命令来结束循环。

因为CONTINUE这个命令没有实际的用途,刚好可以拿来做封装使用。

6 循环的流程控制:循环中的cycle命令相当于c++里的continue命令,用于结束一次循环循环中的exit命令好比c里面的break,用于结束循环7 不使用do循环,单纯用GOTO语句也能设计循环程序,但不推荐使用GOTO语句7 fortran有等价声明:即用equivalence(a,b),这样使得a,b使用同一块内存,这样可以节省内存,有时可精简代码。

8 fortran77中只能用单引号。

(还有疑问,因为fixed format能用双引号)9 逻辑运算符== /= > >= < <= !Fortran90用法.EQ. .NE. .GT. GE. .LT. .LE. !Fortran77用法9 PAUSE,CONTINUE,STOPpause 暂停程序执行,按enter可继续执行continue 貌似没什么用处,可用作封装程序的标志STOP 命令用来结束程序,要谨慎使用10 数组元素之间要用逗号分隔,而不能像matlab一样既可以用逗号也可以用空格,fortran 的数组元素之间不能用空格。

fortran语言程序设计知识点

fortran语言程序设计知识点Fortran语言是一种面向科学与工程计算的编程语言,因其在数值计算和科学应用方面的高效性而受到广泛使用。

本文将重点介绍Fortran语言程序设计的一些重要知识点。

一、基础语法1.1 变量与数据类型在Fortran中,变量是用于存储数据的容器。

常见的数据类型包括整型(INTEGER)、实型(REAL/DOUBLE PRECISION)、复数型(COMPLEX)、逻辑型(LOGICAL)等。

变量的命名需遵循一定规则,如以字母开头,长度不超过31个字符等。

1.2 运算符与表达式Fortran支持常见的算术运算符(如+、-、*、/)以及逻辑运算符(如. AND.、. OR.、. NOT.)等。

表达式由变量、常数和运算符组成,可以进行数值运算和逻辑判断。

1.3 控制结构Fortran提供循环结构(DO)、条件结构(IF-THEN-ELSE)和选择结构(SELECT CASE)等控制语句,用于控制程序的流程。

二、数组与数据处理2.1 数组定义与操作Fortran中数组是由相同类型的数据元素组成的集合。

可以使用DIMENSION语句定义数组的维度和大小,通过下标访问和修改数组元素。

2.2 数组运算与函数Fortran提供了许多对数组进行运算和处理的函数,如数组求和(SUM)、最大最小值(MAX、MIN)、数组重排(RESHAPE)等,方便对数据进行统计和处理。

2.3 文件读写操作Fortran支持对文件进行读写操作,可以通过OPEN语句打开文件,使用READ和WRITE语句读取和写入数据。

可以根据需要设置文件的访问模式和格式。

三、过程与模块3.1 过程(Subroutine/Function)过程是一段独立的代码块,可接受传入参数并返回值。

在Fortran中,过程可以是子程序(Subroutine)或函数(Function)。

子程序用于完成一系列操作,而函数则返回一个值。

3.2 模块(Module)Fortran中的模块是一个编译单元,用于组织和管理相关的过程和变量。

fortran语言语法

FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。

经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。

目前,工科院校开设的计算机编程语言课首选仍然是FORTRAN :<说实话,从科技发展的趋势来说这不是好事。

您可以设想一下,如果需要用鹅毛笔抄写大量的古籍是什么感受!强烈建议阅读《》1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→()2 FORTRAN77变量类型2.1隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。

2.2用类型说明语句确定变量类型:可以改变I-N规则2.3用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。

2.4数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3) REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2.5使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/-1.0,-1.0,-1.0/DATA A/-1.0/,B/-1.0/,C/-1.0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*' '/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则•程序中的变量名,不分大小写;•变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;•一行只能写一个语句;•程序的第一个语句固定为PROGRAM 程序名称字符串•某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;•某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;•某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;•某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;•某行的第73至80字符位为注释区,80字符位以后不能有内容。

Fortran子程序

1 prime ( n ) = 0 当 n 是素数时 当 n 非素数时
主程序的任务是将50-100之间的每个数依次调用 主程序的任务是将50-100之间的每个数依次调用 50 PRIME函数子程序 求出那些使PRIME 函数值为1 函数子程序, PRIME函数值为 PRIME 函数子程序 , 求出那些使 PRIME 函数值为 1 的自 然数并求这些数的和。 然数并求这些数的和。
8.2 函数子程序 一、 函数子程序的定义
[类型说明 FUNCTION 函数名 虚参表 类型说明] 函数名(虚参表 虚参表) 类型说明 函数体 END 函数名的作用: 函数名的作用:函数的标识 代表该函数的函数值 虚参可以是变量名、数组名、 虚参可以是变量名、数组名、子程序名 返回调用程序之前:函数名= 返回调用程序之前:函数名=表达式
8.1 语句函数 语句函数——
一、语句函数的定义 定义格式: 定义格式: f (x1, x2,...,xn ) = e
f:语句函数名, x:虚参, e:表达式 :语句函数名, :虚参, : 1. 语句函数名 函数名的组成规则与变量名相同 语句函数不能与同一个程序单元中的变量同名。 语句函数不能与同一个程序单元中的变量同名。 可在语句函数定义语句前用类型语句说明该函数名 的数据类型,否则该语句函数的函数值的类型按其 的数据类型, 函数名遵守I N隐含规则。 函数名遵守I—N隐含规则。
注意: 注意: 函数用一条语句可以定义时, 函数用一条语句可以定义时,才用语句函数的 形式定义函数。 形式定义函数。 语句函数定义语句是非执行语句, 语句函数定义语句是非执行语句,放在本程序 单位中的所有执行语句之前,说明语句之后。 单位中的所有执行语句之前,说明语句之后。 语句函数只在本程序单位中有意义。 语句函数只在本程序单位中有意义。 表达式的类型与函数名的类型应一致。 表达式的类型与函数名的类型应一致。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档