Fortran语言编程小结

Fortran语言编程小结
Fortran语言编程小结

1.单双精度

Program ex01

implicit none

real(kind=4) :: a

real(kind=8) :: b

a=3.66666666666666666666666_4 ! 确定这个数字是使用单精度

b=3.66666666666666666666666_8 ! 确定这个数字是使用双精度write(*,*) a,b

End program ex01

2.判断kind值

program ex02

Implicit none ! 判断可以记录9个位数的整数kind值

integer, parameter :: long_int = selected_int_kind( 9 ) ! 判断可以记录3个位数的整数kind值integer, parameter :: short_int = selected_int_kind( 3 )

! 判断可以有3个有效位数, 指数可以记录到3的浮点数kind值integer, parameter :: long_real = selected_real_kind( 10, 50 )

! 判断可以有10个有效位数, 指数可以记录到50的浮点数kind值integer, parameter :: short_real= selected_real_kind( 3, 3 )

integer(kind=long_int) :: a = 123456

integer(kind=short_int) :: b = 123

real(kind=long_real) :: c = +1.23456789D45

real(kind=short_real) :: d =+1230

write(*, "(I3,1X,I10)" ) long_int, a

write(*, "(I3,1X,I10)" ) short_int, b

write(*, "(I3,1X,E10.5)" ) long_real, c

write(*, "(I3,1X,E10.5)" ) short_real, d

END

3.TYPE

program ex0434

implicit none

Type :: person ! 开始建立person这个类型

character(len=30) :: name ! 人名

integer :: age ! 年龄

integer :: height ! 身高

INTEGER :: weight ! 体重

character(len=80) :: address ! 地址

End type person

type(person) :: a ! 声明一个person类型的变量

write(*,*) "NAME:"

read(*,*) a%name

write(*,*) "AGE:"

read(*,*) a%age

write(*,*) "HEIGHT:"

read(*,*) a%height

write(*,*) "WEIGHT:"

read(*,*) a%weight

write(*,*) "ADDRESS:"

read(*,*) a%address

write(*,100) a%name,a%age,a%height,a%weight

100 format("Name:",A10/,"Age:",I3/,"Height:",I3/,"Weight:",I3/,&

"Addres:",A80)

End

4.REAL 与INTEGER

Program ex0431

implicit none

integer :: a=1

integer :: b=2

real :: c

c=a/b ! c=1/2=0, 虽然c是浮点数,但因为a,b是整数,计算a/b时会用整数去计算. write(*,"(F5.2)") c

End

5.DATA 变量表/初值表/,变量表/初值表/,…

PROGRAM ex0430

IMPLICIT NONE

INTEGER A

REAL B

COMPLEX C

CHARACTER(20) STR

DA TA A,B,C,STR /1, 2.0, (1.0,2.0), 'FORTRAN 77'/

WRITE(*,*) A,B,,C,STR

END

6.复数实虚部

Program ex0430

complex :: c = (1,2)

write(*,100)real(c),'+',aimag(c),'i'

100 format(f5.1,a1,f5.1,a1)

End

7.逻辑输出

Program ex0416

logical a,b

a=.true.

b=.false.

write(*,100) a,b

100 format(L5,L4)

End

8.Program ex0415

character(len=20) string

character(len=5) substring

string = "Have a nice day."

substring = "nice"

write(*,*) ichar('A') ! 输出字符A的ASCII码

write(*,*) char(65) ! 输出ASCII码65所代表的字符,也就是A write(*,*) len(string) ! 输出字符串string声明时的长度

write(*,*) len_trim(string) ! 输出字符串string内容的长度

write(*,*) index(string, substring) ! nice在Have a nice day的第8个位置End

9.Program ex0414

character(len= 6) first

character(len=10) second

character(len=20) add

first="Happy "

second="Birthday"

add = first//second ! 经由两个连续的除号可以连接两个字符串

write(*,100) add

100 FORMAT('生日快乐',/,A)

End

10.带精度计算

Program ex0408

real(kind=8) :: a,b

a=1

b=0.1

write(*,*) a,"+",b,"=",a+b

End

11.逻辑if语句

Program ex0504

implicit none

integer rain, windspeed

logical r,w

write(*,*) "Rain:"

read(*,*) rain

write(*,*) "Wind:"

read(*,*) windspeed

r = (rain>=500) ! 如果rain>=150, r=.true, 不然r=.false.

w = (windspeed>=10) ! 如果windspeed>=10, w=.true, 不然w=.false. if ( r .or. w ) then ! 只要r或w有一个值是true就成立

write(*,*) "停止上班上课"

else

write(*,*) "照常上班上课"

End if

End

12.Select Case用法

Program ex0512

implicit none

integer :: score

character grade

write(*,*) "Score:"

read(*,*) score

select case(score)

case(90:100)

grade='A'

case(80:89)

grade='B'

case default

grade='?'

End select

write(*,"('Grade:',A1)") grade

End

13.IF GOTO语句

PROGRAM ex0514

IMPLICIT NONE

REAL height

REAL weight

WRITE(*,*) "height:"

READ(*,*) height

WRITE(*,*) "weight:"

READ(*,*) weight

IF ( weight > height-100 ) GOTO 200

100 WRITE(*,*) "Under control."

GOTO 300

200 WRITE(*,*) "Too fat!"

300 STOP

END

14.DO WHILE 循环

Program ex0604

implicit none

integer, parameter :: limit=10

integer counter

integer :: ans = 0

counter = 2

do while( counter <= limit )

ans = ans + counter

counter = counter + 2

end do

write(*,*) ans

END

15.CYCLE,EXIT 语句

Program ex0609

implicit none

integer :: i,j

loop1: do i=1,3

loop2: do j=1,3

if ( i==3 ) exit loop1 ! 跳离loop1循环

if ( j==2 ) cycle loop2 ! 重做loop2循环

write(*, "('(',i2,',',i2,')')" ) i, j

end do loop2

end do loop1

End

16.大小写字符

Program ex0612

implicit none

integer i

integer strlen

character(len=20) :: string

write(*,*) "String:"

read(*,*) string

strlen = LEN_TRIM(string)

do i = 1, strlen

string(i:i) = char( ichar(string(i:i)) +32 )

end do

write(*,"('encoded:',A20)") string

End

17.循环计算

Program ex0614

implicit none

real a,b,ans

character :: key = 'y' !为了至少循环一次do while( key=='y' .or. key=='Y' )

read(*,*) a

read(*,"(A1)") key

read(*,*) b

select case(key)

case('+')

ans = a+b

case('-')

ans = a-b

case('*')

ans = a*b

case('/')

ans = a/b

case default

write(*,"('Unknown operator ',A1)") key

stop

end select

write(*,"(F6.2,A1,F6.2,'=',F6.2)") a,key,b,ans

write(*,*) "(Y/y) to do again. (Other) to exit."

read(*,"(A1)") key

end do

End

18.矩阵相加

pogram ex

implicit none

integer, parameter :: row = 2

integer, parameter :: col = 2

integer :: matrixA(row,col)

integer :: matrixB(row,col)

integer :: matrixC(row,col)

integer r

integer c

write(*,*) "Matrix A"

do r=1, row

do c=1, col

write(*,"('A(',I1,',',I1,')=')") r,c

read(*,*) matrixA(r,c)

end do

end do

write(*,*) "Matrix B"

do r=1, row

do c=1, col

write(*,"('B(',I1,',',I1,')=')") r,c

read(*,*) matrixB(r,c)

end do

end do

write(*,*) "Matrix A+B="

do r=1, row

do c=1, col

matrixC(r,c) = matrixB(r,c)+matrixA(r,c)

write(*,"('(',I1,',',I1,')=',I3)") r,c,matrixC(r,c)

end do

end do

end pogram ex

[ write(*,"(I3,I3,/,I3,I3)") ((mc(i,j), i=1,2),j=1,2)]

19.program ex

implicit none

integer, parameter :: row = 2

integer, parameter :: col = 2

integer :: a(2,2)=(/ 1,2,3,4 /)

! a(1,1)=1, a(2,1)=2, a(1,2)=3, a(2,2)=4

integer :: b(4)=(/ 5,6,7,8 /)

integer :: c(2)

write(*,*) a,2)

write(*,*) a(:,1)

c = a(:,1) ! c(1)=a(1,1), c(2)=a(2,1)

write(*,*) c ! c(1), c(2)

c = a(2,:) ! c(1)=a(2,1), c(2)=a(2,2)

write(*,*) c ! c(1), c(2)

write(*,*) c(2:1:-1) ! c(2), c(1)

c = b(1:4:2) ! c(1)=b(1), c(2)=b(3)

write(*,*) c ! c(1), c(2)

End

20.FORALL语句

Program ex

Implicit none

integer :: I,J

integer, parameter :: size = 5

integer :: a(size,size)

forall ( I=1:size, J=1:size, I>J ) a(I,J)=1 ! 上半部分forall ( I=1:size, J=1:size, I==J ) a(I,J)=2 ! 对角线forall ( I=1:size, J=1:size, I

End

21.Allocatable

Program EX

Implicit none

integer :: size, error=0

integer, parameter :: one_mb=1024*1024 ! 1MB

character, allocatable :: a(:)

Do

size=size+one_mb !

allocate( a(size), stat=error )

if ( error/=0 ) exit

write(*,"('Allocate ',I10, ' bytes')") size

write(*,"(F10.2,' MB used')") real(size)/real(one_mb)

deallocate( a )

End do

End

22.Function 函数

Program ex

implicit none

real :: a=10

real :: b=20

real :: add

write(*,"(f6.2)") add(a,b)

End

Function add(a,b)

implicit none

real :: a,b

real :: add

add = a*b

End

23.SAVE语句

Program ex

Implicit none

call sub()

call sub()

call sub()

End program

Subroutine sub()

Implicit none

Integer :: count = 1

Save count ! 指定save变量永远活着,不会忘记它的内容

Write(*,*) count

count = count+1

End [运行结果:1 2 3 ]

24.生成随机数

program ex

implicit none

interface ! 定义函数的接口

function random10(lbound, ubound)

implicit none

real :: lbound, ubound

real :: random10(10)

end function

end interface

real :: a(10)

CALL RANDOM_SEED() ! 系统根据日期和时间随机地提供种子

a = random10(1.0, 10.0)

write(*,"(10F6.2)") a

end

function random10(lbound, ubound)

implicit none

real :: lbound, ubound

real :: len

real :: random10(10)

real t

integer i

len = ubound - lbound ! 计算范围大小

do i=1,10

call random_number(t) ! t会是0~1之间的随机数

random10(i) = lbound + len * t ! 把t转换成lbound~ubound间的随机数end do

End

25.MODULE语句

Module global

implicit none

integer a,b

common a,b

End module

Program ex0834

use global

implicit none

a=1

b=2

call sub()

End program

Subroutine sub()

use global

implicit none

write(*,*) a,b

return

End subroutine

26.写文件到text

program ex0902

implicit none

character(len=20) :: string

open(unit=10, file="test.txt")

write(10,"(A20)") "I LOVE YOU." ! 写到文件中rewind(10)

read(10,"(A20)") string ! 从文件中读出来

write(*,"(A20)") string ! 写到屏幕上

end

27.随机成绩

program gendata

implicit none

integer students

integer i

real r(3)

write(*,"(4A5)") "座位","语文","数学","英语" call random_seed()

write(*,*) "How many students?"

read(*,*) students

do i=1,students

call random_number(r)

write(*,"(6I5)") i,int(r*50+50)

end do

end program

FORTRAN程序设计复习题及答案

FORTRAN程序设计复习题 一、选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= B) .NOT. (A*B+C) C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/ C) (3/5)*EXP(X+Y)D) EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.D) A.LT.B.LT.C.LT.D D(4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77表达式中,合法的是: A) .AND.. B) 10.0 C) D) 提示:A)相当于 .AND.(.NOT.()) D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列C) 第6列D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 提示:子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+"的值是 A) B) 1 C) D) 0 提示:2/4默认等于整型,=》 D (12)FORTRAN表达式"MOD,"的值是 A) B)0.0 C) D) A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符*

初中英语常见时态用法小结

初中英语常见时态用法小结 一般现在时的用法 1) 经常性或习惯性的动作,常与表示频腮度的时间状语连用。 时间状语:every…, sometimes, at…, on Sunday I leave home for school at 7 every morning. 2) 客观真理,客观存在,科学事实。 The earth moves around the sun. Shanghai lies in the east of China. 3) 表示格言或警句中。 Pride goes before a fall. 骄者必败。 注意:此用法如果出现在宾语从句中,即使主句是过去时,从句谓语也要用一般现在时。 例:Columbus proved that the earth is round.. 4) 现在时刻的状态、能力、性格、个性。 I don’t want so much. Ann Wang writes good English but does not speak well. 比较:Now I put the sugar in the cup. I am doing my homework now. 第一句用一般现在时,用于操作演示或指导说明的示范性动作,表示言行的瞬间动作。再如:Now watch me, I switch on the current and stand back. 第二句中的now 是进行时的标志,表示正在进行的动作的客观状况,所以后句用一般现在时。 2. 一般过去时的用法 1)在确定的过去时间里所发生的动作或存在的状态。 时间状语有:yesterday, last week, an hour ago, the other day, in 1982等。 Where did you go just now? 2)表示在过去一段时间内,经常性或习惯性的动作。 When I was a child, I often played football in the street. Whenever the Browns went during their visit, they were given a warm welcome. 3)句型: It is time for sb. to do sth "到……时间了" "该……了" It is time sb. did sth. "时间已迟了" "早该……了" It is time for you to go to bed. 你该睡觉了。 It is time you went to bed. 你早该睡觉了。 would (had) rather sb. did sth. 表示’宁愿某人做某事’ I’d rather you came tomorrow. 4) wish, wonder, think, hope 等用过去时,作试探性的询问、请求、建议等。 I thought you might have some. 我以为你想要一些。 比较: 一般过去时表示的动作或状态都已成为过去,现已不复存在。 Christine was an invalid all her life. (含义:她已不在人间。) Christine has been an invalid all her life. (含义:她现在还活着)

fortran语法手册

1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→() 2 FORTRAN77变量类型 2.1 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 如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字符位以后不能有内容。 4 FORTRAN77关系运算符 .GT. 大于 .GE. 天于或等于 .LT. 小于 .LE. 小于或等于 .EQ. 等于 .NE. 不等于 .AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQV. 逻辑等 .NEQV. 逻辑不等 运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT. 或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV 5 FORTRAN77语句

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记 2014.10.07 目录 第七讲_FORTRAN的基本知识.ppt (2) FORTRAN语言程序设计初步 (2) FORTRAN源程序的书写格式(以77为例) (2) 变量 (2) 变量类型 (2) 算术运算符和运算优先级 (3) 赋值语句 (3) 参数语句(PARAMETER语句) (3) END语句 (3) PAUSE语句 (3) 逻辑运算和选择结构 (4) 关系表达式 (4) FORTRAN中数组的定义及使用 (4) 其他 (5) 1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5) 2. fortran里character*10 是什么意思 (5) 3. Fortran中kind是什么函数? (5)

第七讲_FORTRAN的基本知识.ppt FORTRAN语言程序设计初步 FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用 数学公式表达的问题而设计的,其数值计算的功能较强。 常用的是FORTRAN77和FORTRAN90两种标准。 1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。 2、每一个程序单位都是以“END”结束的。 3、一个程序单位包括若干行。 1)语句行。由一个FORTRAN语句组成。 2)非语句行,即注释行。 4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其 他语句引用。 5、一个程序单位中各类语句的位置是有一定规定的。 6、FORTRAN源程序必须按一定的格式书写。 FORTRAN源程序的书写格式(以77为例) 每一行有80列,分别如下: 1、第1-5列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。 2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。 3、第7-72列为语句区。 4、第73-80列,注释区。 变量 变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表两个不同的变 量。 FORTRAN的变量名按以下规则选定: 1)第一个字符必须是字母,即变量名必须以字母开头; 2)在一个字母后面可以跟1-5为数字或字母。 如果选定的变量名超过6个字符,则只有前面6个字符有效。 注:在变量名中大写与小写字母是等价的。 变量类型 整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。 1、隐含约定(I-N规则) FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。 在程序中,凡是变量名以字母I,J,K,L,M,N,i,j,k,l,m,n开头的变量被默认为整型变量,以其他字母开头的变量被 默认为实型变量。 2、用类型说明语句确定变量类型 1)INTEGER语句(整型说明语句) 2)REAL语句(实型说明语句) 3)DOUBLE PRECISION语句(双精度说明语句) 4)COMPLEX语句(复型说明语句) 5)LOGICAL语句(逻辑型说明语句)

高考英语一般现在时用法总结(完整)

高考英语一般现在时用法总结(完整) 一、单项选择一般现在时 1.I know daydreaming benefits invention, but the fact that it has no solid evidence. A.will be remaining B.remained C.remains D.had remained. 【答案】C 【解析】考查动词时态。句意:我知道白日梦有益于发明,但事实是它没有确凿的证据。根据所给动词是一般现在时和句意可知此处也用一般现在时,故选C. 2.The Small Goose Pagoda in Xi’an, one of the 22 Silk Road relics located in China, _______ back in 707 during the Tang Dynasty. A.dated B.was dated C.dates D.is dating 【答案】C 【解析】 试题分析:考查动词短语和时态。短语date back to追溯到....;从....开始有;该句型没有被动语态,也没有进行时。通常都使用一般现在时表示从现在时间某一事物能够追溯到的时期。故C项正确。 【名师点睛】 当分词做状语的时候,要特别考虑主被动关系以及时间的先后关系。如果构成分词的动词与句子的主语构成主动关系,就使用现在分词做状语;当二者构成被动关系,使用过去分词做状语。如果分词的动作发生在谓语动词之前,就使用分词的完成式。如果分词与句子的主语没有关系,可以使用状语从句或者独立主格结构。 考点:考查动词短语和时态 3.We live in a beautiful cottage with a yard, which ______ 20 feet from side to side. A.measures B.is measured C.measured D.has been measured 【答案】A 【解析】 试题分析:考察非谓语。句意:我们住的地方有一个院子,这个院子从一遍到另一边的距离是20英尺。 考点:考察非谓语。 4.---We’d better leave now. ---No hurry. The train ______ at 10 o’clock. A.has left B.left C.leaves D.would leave 【答案】C

最新英语一般现在时用法总结(完整)

最新英语一般现在时用法总结(完整) 一、单项选择一般现在时 1.We’ll go to play with snow if it ______ tomorrow. A.snow B.snows C.will snow D.snowed 【答案】B 【解析】 【详解】 考查if引导的条件状语从句。句意:如果明天下雪,我们就去玩雪。此处是if引导的条件状语从句,主句是一般将来时态,从句用一般现在时态,且主语是it,故答案为B。 2. you read the instructions closely, you would know what I . A.Had, was B.Should, am C.Had, am D.If, was 【答案】C 【解析】 句意:如果你仔细阅读了说明,你就会知道我现在指的是什么了。根据句意可知条件状语从句与过去的事实相反,在条件状语从句中,若if省略,需将should /had/were提前。主句中“我现在指的是什么”是客观事实,故用am。故选C。 3.Whenever you ______ a present, you’d better think about it from the receiver’s preference. A.bought B.buy C.will buy D.have bought 【答案】B 【解析】 试题分析:句意:每当你买礼物的时候,你最好从接收方的偏好想一想。whenever引导的让步状语从句,采用一般现在时表将来的用法。故选B。 考点:考查动词的时态。 4.The Dragon Boat Festival ________ the beginning of the hottest season of the year. A.is marking B.marks C.will mark D.marked 【答案】B 【解析】 试题分析:考查时态。一般现在时表示经常性习惯性的行为。本句中使用一般现在时端午节标志着一年中最热的季节的开始。故B正确。 考点:考查时态 5.Every time he ______ to visit me, he ______ buy me some books. A.will come; will B.will come; would C.comes; will D.comes; would 【答案】C

一般现在时总结归纳

一般现在时语法总结 一般现在时:表示经常性的事情,经常性的动作或一般性事实。 时间状语:often 经常,usually 通常,always 总是,every 每个,sometimes 有时,at……在点钟 只有在第三人称单数用动词的三单变化,其他用动词的原型。 1.三单变化: (1)多数在动词后面加- s ask->asks work->works get->gets stay->stays (2)以字母s x ch sh或o结尾的动词,在词尾直接加- es Watch -> watches wish -> wishes fix -> fixes do -> does go -> goes pass -> passes (3)以辅音字母加y结尾的动词,要先变y为i再加- es Try -> tries study -> studies cry -> cries fly -> flies 2.不规则变化 be-> am is are have->has 一般现在时的用法: 表示经常性或习惯性的状态;表示客观事实或普遍真理;在时间、条件等状语从句中,用现在时表示将来;在某些以here,there开头的句子中,用一般现在时表示正在发生的动作1>经常性或习惯的动作,常与表示频率的时间状语连用。 时间状语:every、sometimes、at……,on Sunday I leave home for school at 7 every morning. 2>客观真理,客观存在,科学事实 The earth moves around the sun. Shanghai lies in the east of china. 3>表示格言或警局中 Pride goes before fall. (骄者必败) 注意:此用法如果出现在宾语从句中,即使主句是过去时,从句谓语也要用一般现在时。例:columbus proved that earth is round. 4>现在时刻的状态、能力、性格、个性 I dont want so much.

Fortran常用函数

1、RANDOM_NUMBER Syntax ['sint?ks] n. 语法 CALL RANDOM_NUMBER (harvest结果) Intrinsic Subroutine(固有子程序):Returns a pseudorandom number greater than or equal to zero and less than one from the uniform distribution. 返回大于或等于0且小于1,服从均匀分布的随机数 2、RNNOA/ DRNNOA (Single/Double precision) Generate pseudorandom numbers from a standard normal distribution using an acceptance/rejection method. 产生服从标准正态分布的随机数 Usage(用法) CALL RNNOA (NR, R) Arguments(参数) NR— Number of random numbers to generate. (Input) 要产生随机数的个数 R— Vector of length NR containing the random standard normal deviates. (Output) 输出长度为NR,随机正态分布的向量 Comments(注解) The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator. 程序RNSET可以用来初始化随机数发生器的种子 Example In this example, RNNOA is used to generate five pseudorandom deviates from a standard normal distribution. INTEGER ISEED, NOUT, NR REAL R(5) EXTERNAL RNNOA, RNSET, UMACH C CALL UMACH (2, NOUT) NR = 5 ISEED = 123457 CALL RNSET (ISEED) CALL RNNOA (NR, R) WRITE (NOUT,99999) R 99999 FORMAT (' Standard normal random deviates: ', 5F8.4) END Output Standard normal random deviates: 2.0516 1.0833 0.0826 1.2777 -1.2260

FORTRAN 95 语法速查

FORTRAN 95 语法速查 ----------白云、李学哲、陈国新、贾波编著《FORTRAN95程序设计》读书笔记 目录:一、应用程序的创建与运行/FORTRAN 95所用的字符/ 变量类型及其声明,常量声明/表达式与运算符 二、输入与输出:表控、有格式 三、选择语句与结构:IF语句、CASE结构 四、DO循环结构 五、数组:数组的声明,数组的引用,数组的算术运算,数组的输入、输出,给数组赋初值, 动态数组,WHERE、FORALL语句 六、子程序:语句函数,内部子程序,调用子程序时的虚实结合:形参为数组、非定界数组、子 程序名、星号,递归子程序,外部子程序,纯子程序,逐元子程序 七、派生数据类型与结构体 八、指针与动态链表 九、文件:存取方式,基本操作语句,各类文件的读写操作 十、接口、模块 十一、公用区、存储关联、数据块子程序 十二、绘图:坐标系、设置图形颜色、创建图形程序/ 常用过程:设置线型、绘一像素点、设置当前位置、绘直线、绘弧线、绘矩形、绘多边形、绘制扇形(圆、椭圆)/ 文字信息的显示 附/录:标准函数与标准子例行程序 一、基础部份 1-1 FORTRAN 95 应用程序的创建与运行 创建或运行FORTRAN 95程序必须在Microsoft Developer Studio平台上进行。尽管程序文本及相关文件的编辑可以在任一文本编辑器上进行,然后再拷到Studio的文档窗口中。但最好还是一开始就进入Studio环境。创建FORTRAN 95 程序的步骤大致如下: 1)启动Microsoft Developer Studio 可以通过不同方式运行dfdev.exe程序以启动Microsoft Developer Studio [开始] \ Compaq Visual Fortran 6 \ Developer Studio \ dfdev.exe:或 ……\CVF66 \https://www.360docs.net/doc/c36732652.html,\MSDEV98\dfdev.exe Microsoft Developer Studio的界面如下图所示: 文档窗口 工作空间窗口 输出窗口

计算机程序设计语言(FORTRAN语言)

计算机程序设计语言(FORTRAN语言) (总分:36.00,做题时间:90分钟) 一、 (总题数:36,分数:36.00) 1.编译程序能将高级语言编写的源程序转换成( )。 A.解释程序 B.汇编程序 C.映象程序 D.目标程序 (分数:1.00) A. B. C. D. √ 解析: 2.一个完整的FORTRAN源程序( )。 A.至少包括一个主程序 B.至少包括一个主程序和一个子程序 C.由一个主程序与一个以上的子程序组成 D.由一个主程序与一个子程序组成 (分数:1.00) A. √ B. C. D. 解析: 3.语句函数定义语句在程序内合法的位置是( )。 A.在程序块开头语句之后,END语句之前 B.在程序块开头语句之后,可执行语句之前 C.在说明语句之后,END语句之前 D.在说明语句之后,可执行语句之前 (分数:1.00) A. B. C. D. √ 解析: 4.下列关于函数子程序虚实参数的错误说法是( )。 A.可以没有形参数 B.虚实结合的数组长度可以不同 C.实参表与虚参表类型可以不同 D.函数名可以作为虚参

(分数:1.00) A. B. C. √ D. 解析: 5.下列叙述中正确的是( )。 A.FORTRAN程序块中,无名公用语句只能有一个B.FORTRAN子程序中,至少应有一个RETURN语句C.FORTRAN程序块中,最后一行必须是END语句D.FORTRAN程序块中,必须有变量说明语句 (分数:1.00) A. B. C. √ D. 解析: 6.运行下面的程序时得不到所需的结果,其主要原因是( )。INTEGER X(11) DATA X/9,8,7,6,5,4,3,2,1,0,-1/ DO 10 1=1,X(1) ,-1 WRITE(*,*)1.0/SQRT(25.0-REAL(X(1) )* * 2) 10 CONTINUE END A.没有给X(11) 赋初值 B.发生除以零的情况 C.发生负数开平方的情况 D.循环参数设置错误 (分数:1.00) A. B. C. D. √ 解析: 7.下列数据中,不符合FORTRAN常量表示法的是( )。 A.-25.6 B.2.758D3 C.'FOOT"=' D.TRUE (分数:1.00) A. B. C. D. √ 解析:

FORTRAN知识点总结

F O R T R A N 第2章FORTRAN90基础知识: 程序单元的概念: fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。每个程序只有一个主程序单元。各单元体的程序体形式上相同。 程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。 语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。 字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。 数据结构: 整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回; 实型REAL ,小数形式和指数形式;复型COMPLEX (种别类

型参数值取实部与虚部中较大者); 字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成; 逻辑型LOGICAL。 派生数据类型TYPE; 数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A); 字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。 变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。 第3章基本语句: 类型说明语句:类型说明(种别说明),属性说明::变量名表 尽量避免把两个实数作相等或不相等的比较。淘汰隐式说明IMPLICIT NONE 种别说明:种别参数即对可移植数据精度和范围进行选择的机制 KIND(X) 返回变元X的种别参数值 SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。N指十进制有效位数,m指明值范围内以10为底的幂次。

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)

一般现在时知识点归纳总结

一般现在时知识点归纳总结 定义: 一般现在时表示经常或习惯性的动作或一般性事实,也可表示现在的状态或主语具备的性格和能力。 用法: (1)表示经常性或习惯性的动作。通常与副词every day(每天),always(总 是),usually(通常),often(经常),sometimes(有时),等时间状语连用。 I get up at six every day.我每天六点起床。 She usually plays sports. 她每天都做运动。 (2)表示科学原理,自然现象,客观事实或格言谚语等等。 The sun rises in the east.太阳每天从东方升起。 Constant dropping wears the stone. 滴水穿石 There are 50 students in my class. 我们班有50个学生。 (3).在某些以here,there开头的句子中,用一般现在时表示正在发生的动 作。如:Here comes the bus.公交车来了。 (4)在下列情况下用一般现在时表示将来:

①. 表示按计划或时间表将要发生的动作,通常有表示将来的时间状语。如: The plane takes off at 11:30 and arrives in Shanghai at l:20. 飞机十一点半起飞,一点二十分抵达上海。 注:只限于少数动词能这样用,如begin, start, end, finish, stop, go, come, leave, sail, arrive, return, close, open 等。 ②. 当主句为一般将来时态时,在if,as soon as,until,when等引导的状语 从句中用一般现在时代替一般将来时。如: If it doesn’t rain this afternoon,we’ll have a football match. As soon as he got inside, the dog shook himself. You can't leave until you find another to replace you. 一般现在时句式变换: 肯定句:表示肯定的句子 否定句:表示否定的句子 一般疑问句:一般疑问句是疑问句的一种。它是一般只用yes(是)或no (否)来回答的句子。朗读一般疑问句时用升调,而一般疑问句的简略答语用降调。

fortran心得

Read 的规则: 按行读取,每次读一行,读完后光标自动跳到下一行的开头,空格和逗号代表结束(所以空格和逗号也是读取的一部分的话,需要使用“输入输出格式”) 如果想要将一行数据读入数组,代码为: Read(10,*) s(:,:,:) 不用规定输入输出格式,因为会根据s(:,:,:)确定需要读入的数字的个数,然后fortran会按部就班的读取,甚至文件中当前这一行的数字个数不足以填满s(:,:,:)的时候,read会自动跳到下一行继续搜索数字,直到填满s(:,:,:)为止。 但是需要注意给数组赋值的顺序:read会把它搜索到的第一个数字给s(1,1,1),第二个给s(2,1,1),第三个给s(3,1,1)… 程序9 1: 将read(unit=field,fmt="(A79)",iostat=status)buffer 中的A79改为A2,结果只输出每行的前两个字符,说明read是按整行整行读取的。 中间空了几行之后,空行之后的内容还是能被读取和输出,这说明,空行和空白是不一样的:空行也算是一种文本内容,因此不会终止读取,而空白意味着结束。 !读取文件 program main implicit none character(len=79)::filename="number.txt",buffer integer,parameter::field=10 integer::status=0 logical alive inquire(file=filename,exist=alive) if(alive)then open(unit=field,file=filename) do while(.true.) read(unit=field,fmt="(A79)",iostat=status)buffer if(status/=0)exit write(*,"(A79)")buffer end do else write(*,*)filename,"does't exist." end if pause stop end program main ============================================= 附number.txt =============================== 1234555666

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.We will go to Tian'anmen Square to watch the raising of the national flag if it tomorrow. A. will rain B. rains C. doesn't rain D. won't rain 【答案】 C 【解析】【分析】主句用一般将来时.if引导的条件状语从句用一般现在时态,即“主将从现”,故选C。句意是:如果明天不下雨我们将去天安门广场看升旗。 【点评】本题考查if 引导的条件状语从句,主句用将来时,从句用一般现在时。 2.The children will climb the mountain if it________ tomorrow. A. won't rain B. didn't rain C. isn't raining D. doesn't rain 【答案】 D 【解析】【分析】句意:如果明天不下雨,孩子们会去爬山。if 引导的条件状语从句遵循主将从现的原则,主句用一般将来时,从句用一般现在时,从句是一个否定句,含有实义动词rain的否定句,要借助助动词don't/doesn't构成,主语是it,助动词用doesn't,故选D。 【点评】考查if引导的条件状语的时态。注意句子涉及到if引导的条件状语从句的用法。 3.Will you get wet if I ______ the experiment? A. will do B. do C. does D. did 【答案】 B 【解析】【分析】句意:如果我做实验,你会淋湿吗?if引导的条件状语从句,时态是主将从现,从句主语是 I,故谓语是动词原形,故选B。 【点评】考查时态,注意f引导的条件状语从句,时态是主将从现的用法。 4.If he _____ the money, he _____ a lot of clothes. A. has; will buy B. had; bought C. had; would buy D. had; will buy 【答案】 A 【解析】【分析】句意:如果他有钱,他会买许多衣服。if引导的时间状语从句遵循主将从现的原则,即主句用一般将来时,从句用一般现在时,从句主语是he,动词用三单形式,have有,其三单是has,主句用一般将来时,其结构为will+动词原形,buy买,动词原形,bought是buy的过去式,故选A。 【点评】考查if引导的主从复合句的时态。主语if引导条件状语从句的用法。 5.—I don't know if it tomorrow. —Well, if it , the school sports meeting will be cancelled. A. will rain;will rain B. rains;will rain C. will rain;rains

FORTRAN 90 程序编程规范

FORTRAN 90 程序编程规范 Fortran 90 编程规范,使程序代码高度组织化,更加易读、易懂、易于维护,程序更加高效。使编出的程序更易懂、易于维护。 1 语言选择 数值预报创新系统软件开发应避免使用Fortran77 的某些过时特征以Fortran 90不一致的特征。选择Fortran 90 作为开发语言,并采用Fortran 90 的新功能,如动态内存的分配(dynamic memory allocation)、递归(recursion ), 模块(modules)、POINTER 、长变量名、自由格式等。 Fortran 77其中某些只是一些冗余的功能,这些功能已经过时,另外,还有一些在Fortran90 中被证明是不好的用法,建议不要使用。 2 Fortran 90 的新特性 2.1.1 建议使用的Fortran 90 新特性 建议使用Fortran 90 提供的模块(module ),并用Use ONLY 指定module 中哪些变量或派生类型定义可用于调用程序。 尽量使用数组下标三元组,这样可优化并减少所需的代码行数。为提高可读性,要在括号内表明数组的维数,例如: 1dArrayA(:) = 1dArrayB(:) + 1dArrayC(:) 2dArray(: , :) = scalar * Another2dArray(: , :) 当访问数组的子集时,例如在有限差分等式中,可以通过使用下标三元组实现。例如:2dArray(: , 2:len2) = scalar *( & Another2dArray(:, 1:len2 -1) & - Another2dArray(:, 2:len2) & ) 对程序单元(program units )命名,并使用End program ,End subroutine ,End interface ,End module 等结构再次指定“program unit ”的名称。 在逻辑表达式中使用>、 >=、 ==、 <、 <=、 /=,它们分别代 替.gt.、.ge.、.eq.、.lt.、.le.、.ne. 。新的表示方法更接近标准的数学符号 在变量定义中始终使用“::”;始终用“DIMENSION ”定义数组形状;始终用(len=)的语法格式声明字符变量的长度。

一般现在时的用法

一般现在时的用法(1) 表示经常发生或习惯性的动作或状态。 We often write to each other. 我们时常相互通信。 Father always reads newspaper after breakfast. 父亲总是在早餐后读报。 这种情况常与always总是,usually通常,often经常,sometimes有时,seldom 很少,hardly几乎不,scarcely几乎不,every day每天,once a week每周一次,yearly每年,monthly每月,等时间状语或频率副词连用。 一般现在时的用法(2) 表示主语现在的性格、特征、能力。 He works hard. 他努力工作。 Does he like sports? 他喜欢体育运动吗? 一般现在时的用法(3) 表示客观事实或普遍真理。 The sun rises in the east. 太阳从东方升起。 After summer comes autumn. 秋天在夏天之后。 Light goes faster than sound. 光的传播速度比声音快。 一般现在时的用法(4) 表示按规定、计划或时间表将要发生的事。

He starts next week. 他下个星期出发。 We leave very soon. 我们很快就离开。 The train starts at 10 o'clock in the morning. 火车将在早上10点开出。 这类用法限于表示“移动”的动词:go去,come来,leave离开,start出发,begin 开始,arrive到达,take off起飞,等。 一般现在时的用法(5) 用于状语从句代替一般将来时。 I will tell him about it as soon as I see him next Monday. 下个星期一我看到他时马上告诉他。 I will get everything ready before my boss comes back. 我要在老板回来之前把一切都准备妥当。 这种情况常与连词:when当...的时候,as soon as一...就,before在...之前,after在...之后,until直到...,if如果,等引导的时间状语从句或条件状语从句连用。 如果从句有“愿意”的含义,在从句中可用“will或shall”。 You will succeed if you will (=are willing to) try. 如果你愿意一试,你是可能成功的。 比较: You will succeed if you try. 如果你尝试你就可能成功。 一般现在时的用法(6)

相关文档
最新文档