Fortran95程序设计实验报告50c5j.docx
- 文档编号:9359040
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:29
- 大小:568.58KB
Fortran95程序设计实验报告50c5j.docx
《Fortran95程序设计实验报告50c5j.docx》由会员分享,可在线阅读,更多相关《Fortran95程序设计实验报告50c5j.docx(29页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Fortran95 程序设计 实验 报告 50 c5j
![提示](https://static.bdocx.com/images/bang_tan.gif)