Fortran95程序设计实验报告50c5j.docx

上传人:b****8 文档编号:9359040 上传时间:2023-02-04 格式:DOCX 页数:29 大小:568.58KB
下载 相关 举报
Fortran95程序设计实验报告50c5j.docx_第1页
第1页 / 共29页
Fortran95程序设计实验报告50c5j.docx_第2页
第2页 / 共29页
Fortran95程序设计实验报告50c5j.docx_第3页
第3页 / 共29页
Fortran95程序设计实验报告50c5j.docx_第4页
第4页 / 共29页
Fortran95程序设计实验报告50c5j.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

Fortran95程序设计实验报告50c5j.docx

《Fortran95程序设计实验报告50c5j.docx》由会员分享,可在线阅读,更多相关《Fortran95程序设计实验报告50c5j.docx(29页珍藏版)》请在冰豆网上搜索。

Fortran95程序设计实验报告50c5j.docx

Fortran95程序设计实验报告50c5j

Fortran95程序设计实验报告50c52014j

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目1

编程,求1-100之间能被6整除的整数,请将这些整数保存到一维动态数组中,最后请输出这些整数(被6整除的整数)的个数及这些整数的和,并将这些整数(被6整除的整数)输出到文件中(TestIntegersMod06.txt)。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTEST01

!

IMPLICITNONE

INTEGER:

:

N,S!

NsavenumberSsaveforsumm

INTEGER:

:

I

integer,dimension(:

),allocatable:

:

num

Character*21:

:

FILENAME

FILENAME='TestIntegersMod06.txt'

OPEN(UNIT=1,FILE=FILENAME,STATUS='unknown')

!

findthenumberN

S=0;N=0

DOI=1,100

If(MOD(I,6)==0)THEN

N=N+1

S=S+I

ENDIF

ENDDO

!

definethedatanum

allocate(num(N))

N=0

DOI=1,100

If(MOD(I,6)==0)THEN

N=N+1

num(N)=I

WRITE(1,"(1X,'Integer=',I4)")I

ENDIF

ENDDO

!

PRINT*,N,S

WRITE(1,"(1X,'Numberofintergers=',I4,3X,'Sum=',I6)")N,S

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目2

任意输入12个实数,请编写程序用于统计每个正数(Positive)和负数(Negative)的个数,分别将请将这些实数保存到一维动态数组中。

并将这些实数输出到文件中(TestReals02.txt)。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

programTest02

implicitnone

integer:

:

num(12),i,Num_P,Num_N,n

integer,dimension(:

),allocatable:

:

numPositive,numNegative

Num_P=0

Num_N=0

n=12

!

inputandoutput

print*,'pleaseinput',n,'integers'

open(1,file='TestReals02.txt',status='unknown')

doi=1,n

read*,num(i)

enddo

!

doi=1,n

write(1,'(1x,12I4)')(num(i),i=1,12)

!

enddo

close

(1)

!

loopforallintegers

doi=1,n

if(num(i)>0)then

Num_P=Num_P+1

elseif(num(i)<0)then

Num_N=Num_N+1

endif

enddo

print*,'Positivesarethenumberof:

',Num_P

print*,'Negativesarethenumberof:

',Num_N

!

usingallocatabledata

allocate(numPositive(Num_P))

allocate(numNegative(Num_N))

Num_P=0

Num_N=0

doi=1,n

if(num(i)>0)then

Num_P=Num_P+1

numPositive(Num_P)=num(i)

elseif(num(i)<0)then

Num_N=Num_N+1

numNegative(Num_N)=num(i)

endif

enddo

print*,(numPositive(i),i=1,Num_P)

print*,(numNegative(i),i=1,Num_N)

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目3

已知,

,请编写程序,推求

,并将它们分别写入一维动态数组中,并将它们分别输出到文件中(TestSinA03.txt和TestCosB03.txt)。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

programTest03

parameter(pi=3.1415926)

integeri,num_sc

real:

:

x,sinx,cosx,a,b

real,dimension(:

),allocatable:

:

sin22,cos22

open(1,file='TextSinA03.txt')

open(2,file='TextCosB03.txt')

num_sc=0

doi=0,360,20

x=i/180.0*pi

a=(sin(x))**2

b=(cos(x))**2

write(1,"('Degreeis',i5,2X,'(sin(x))**2valueisgivenas:

',F5.3)")i,a

write(2,"('Degreeis',i5,2X,'(cos(x))**2valueisgivenas:

',F5.3)")i,b

num_sc=num_sc+1

enddo

close

(1)

close

(2)

!

definetheallocatabledataandsettheirvalues

allocate(sin22(num_sc))

allocate(cos22(num_sc))

num_sc=0

doi=0,360,20

x=i/180.0*pi

num_sc=num_sc+1

sin22(num_sc)=(sin(x))**2

cos22(num_sc)=(cos(x))**2

print*,i,x,sin22(num_sc),cos22(num_sc)

enddo

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目4

输入

值(

),按

,精度要求五位有效数字,最后一项小于

,请编写程序并将这些项(

)写入一维动态数组中,最终输出到文件中(TestTerms04.txt),并在屏幕上打印输出,

的值。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

programmain

integer:

:

n

real:

:

xx,QQ,Term,eps=1E-5

real,dimension(:

),allocatable:

:

Termss

n=1

print'(A/)','Inputasmallvalueofx(absolutevalueislessthan1)=='

read*,xx

Term=xx

QQ=Term

dowhile(abs(Term)>=eps)

n=n+1

Term=xx**n/n

QQ=QQ+Term

enddo

print*,'Qis',QQ,'numberoftermsis',n

!

writethesetermsintoanallocatabledataarray

allocate(Termss(n))

n=0!

zero

Term=xx

QQ=Term

dowhile(abs(Term)>=eps)

n=n+1

Term=xx**n/n

QQ=QQ+Term

Termss(n)=Term

print*,n,Term,Termss(n)

enddo

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目5

对两个同阶矩阵(

列,使用动态数组)进行相加,编写程序,并将这些

的两个测试矩阵(ARR1和ARR2)之和输出到文件中(TestArrays05.txt)。

测试矩阵ARR1=

测试矩阵ARR2=

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest05

real,DIMENSION(:

:

),ALLOCATABLE:

:

Arr1,Brr2,Crr3

INTEGER:

:

S=2,T=3

ALLOCATE(Arr1(S,T),Brr2(S,T),Crr3(S,T))

PRINT*,'InputdataofArr1andBrr2!

'

!

DOi=1,S

!

READ*,(Arr1(i,j),j=1,T)

!

ENDDO

Arr1(1,1)=1.5;Arr1(1,2)=2.8;Arr1(1,3)=3.6

Arr1(2,1)=12.7;Arr1(2,2)=1.2;Arr1(2,3)=8.4

!

DOi=1,S

!

READ*,(Brr2(i,j),j=1,T)

!

ENDDO

Brr2(1,1)=2.5;Brr2(1,2)=2.2;Brr2(1,3)=3.4

Brr2(2,1)=12.3;Brr2(2,2)=1.8;Brr2(2,3)=8.6

DOi=1,S

DOj=1,T

Crr3(i,j)=Arr1(i,j)+Brr2(i,j)

ENDDO

ENDDO

PRINT*,'OutputsummationofArr1andBrr2!

'

OPEN(2,FILE='TestArrays05.txt',status='unknown')

DOi=1,S

write(2,*)(Crr3(i,j),j=1,T)

print*,(Crr3(i,j),j=1,T)

ENDDO

END

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目6

下面程序的功能是从键盘上输入一个角度X,按下述关系,计算表达式Y的值:

当X小于10度时,Y=

当10大于等于小于30度时,Y=

当30大于等于X小于45度时,Y=

请给出测试结果并拷屏输出。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

programTest06

parameter(pi=3.1415926)

realx,y

print*,'pleaseinputxvalue(indegree):

'

read*,x

if(x<10)then

y=sin(abs(x*pi/180.0))

elseif(x>=10.and.x<30)then

y=cos(x*pi/180.0)/2

elseif(x>=30.and.x<45)then

y=5*tan(sqrt(x*pi/180.0))

endif

print*,'y=',y

print*

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目7

下面程序的功能是从键盘上输入一个数据X,按下述关系,计算表达式Y的值:

当X>10时,Y=1

当2

当-1

当X<=-1时,Y=2X

请给出测试结果并拷屏输出。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest07

IMPLICITNONE

INTEGER:

:

X,Y

print*,'PleaseinputvalueofX!

'

READ*,X

IF(X>=10)THEN!

Y=1

ELSEIF(X>2)THEN

Y=X/2

ELSEIF(X>=-1)THEN!

Y=X-1

ELSE

Y=2*X!

ENDIF

PRINT*,X,Y

ENDPROGRAM

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目8

判定学生成绩的等级:

给定3名学生的考试成绩(Score),评判每个学生的成绩等级(Grade),并输出。

编写程序实现之。

成绩按以下标准评定等级:

A:

85≤S≤100;B:

60≤S<85;C:

S<60。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

programTest08

implicitnone

integerscore

charactergrade

write(*,*)"Pleaseinputascore"

read(*,*)score

if(score>=85.and.score<=100)then

grade='A'

elseif(score>=60.and.score<85)then

grade='B'

elseif(score>=0.and.score<60)then

grade='E'

else

grade='?

'

endif

write(*,"('Grade:

',A1)")grade

!

stop

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目9

超额累进税率,是指将应税所得额按照税法规定分解为若干段,每一段按其对应的税率计算出该段应交的税额,然后再将计算出来的各段税额相加,即为应税所得额应交纳的个人所得税。

我国最新个人所得税计算方法规定按5%至45%的九级超额累进税率计算缴纳个人所得税。

三级超额累进税率为:

1)不超过500元的部分,税率5%;

2)超过500元至2000元的部分,税率10%;

3)超过2000元的部分,税率45%。

如某人月应纳税所得额为1500元,则应纳税额为:

500*5%+1000*10%=125(元)

试编写一个个人所得税计算器。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

implicitnone

realX_shou,Y_shui

write(*,*)"PleaseinputincomeSHOURU!

"

read(*,*)X_shou

 

if(X_shou<=500)then

Y_shui=X_shou*5/100

elseif(X_shou>500.and.X_shou<=2000)then

Y_shui=(X_shou-500)*10/100+25

else

Y_shui=(X_shou-2000)*45/100

endif

write(*,*)"revenuetobesubmitted"

write(*,*)Y_shui

end

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目10

下面程序的功能是从键盘上输入一个角度X,按下述关系,计算表达式Y的值:

当X小于45度时,Y=

当X大于等于45且小于90度时,Y=

当X大于等于90且小于180度时,Y=

当其它度数时,Y=0。

请给出测试结果并拷屏输出。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest10

REAL:

:

X,Y,Xarc

parameter(pi=3.1415928)

PRINT*,'PleaseinputanangleindegreeforX:

'

READ*,X

IF(X<45)THEN

Xarc=X*pi/180

Y=ABS(tan(Xarc))

ELSEIF(45<=X.AND.X<90)THEN

Xarc=X*pi/180

Y=LOG(0.8)*cos(Xarc)/2!

!

Y=cos(Xarc)/2

ELSEIF(90<=X.AND.X<=180)THEN

Xarc=X*pi/180

Y=5*TAN(SQRT(Xarc))

ELSE

Y=0

ENDIF

PRINT*,'Thevalueoffunction(X)is',Y

PRINT*

END

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目11

编写程序实现以下要求:

(1)写一个函数或子程序FunMod,求出1到m(含m,比如m=210)中能被7整除的所有整数。

(2)主程序调用FunMod函数或子程序,并读入和显示这些整数。

最终在屏幕上输出它们。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest11

IMPLICITNONE

INTEGER:

:

i

Character*1,indexX

indexX=''

DOi=1,210

callFunMod(i,indexX)!

callexternalsubroutine

IF(indexX=='T')THEN

WRITE(*,*)i!

theintergerwhichcanbemodedwith7

ENDIF

ENDDO

END

subroutineFunMod(IntTmp,indexX)

integerIntTmp

Character*1,indexX

IF(MOD(IntTmp,7)==0)THEN

indexX='T'

else

indexX='F'

ENDIF

endsubroutine

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目12

编写一个内部函数子程序求m个实数的平方和。

并在屏幕上输出测试结果。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest12

IMPLICITNONE

INTEGER:

:

M!

RESforresult

realArr(5)

RealS1

M=5

Arr

(1)=1.5

Arr

(2)=2.5

Arr(3)=3.5

Arr(4)=4.5

Arr(5)=5.5

S1=SumSquare(M,Arr)!

internalfunction

Print*,'Summationofx^2is',S1

CONTAINS

RealFunctionSumSquare(N,Arr)

INTEGER:

:

N,I

Real:

:

Arr(5)

SumSquare=0.0

DOI=1,N

SumSquare=SumSquare+Arr(I)**2

ENDDO

endfunction

END

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目13

编写一个外部子程序求一个一维数组(实数)的各元素的平方之和,并在主程序中打印输出,最终在屏幕上打印输出结果。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest13

IMPLICITNONE

INTEGER:

:

N!

RESforresult

realArr(5)

RealRES

N=5

Arr

(1)=1.5

Arr

(2)=2.5

Arr(3)=3.5

Arr(4)=4.5

Arr(5)=5.5

callSquare(N,Arr,RES)!

externalsubroutine

PRINT*,'S=',RES

END

SubroutineSquare(N,Arr,RES)

INTEGER:

:

N

Real:

:

RES,Arr(5)

RES=0.0

DOI=1,N

RES=RES+Arr(I)**2

ENDDO

ENDsubroutine

实验结果考屏

学号:

20154244000姓名:

ABC日期:

2017/4/21上机考试教师:

吴兴征实验地点:

B3-216成绩:

测试题目14

编写外部函数子程序MUL,其功能是求所有N(=5)个正整数之积。

并在屏幕上输出测试结果。

实验目的(一句话)

编写程序,按指定要求输出

实验要求

实验代码

PROGRAMTest14

IMPLICITNONE

INTEGER:

:

N,S,MUL!

Sforresult

integerArr(5)

N=5

Arr

(1)=18

Arr

(2)=28

Arr(3)=48

Arr(4)=78

Arr(5)=21

S=MUL(N,Arr)!

externalfunction

PRINT*,'S=',S

END

FUNCTIONMU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1