您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > fortran语言程序设计
《FORTRAN语言》实验(上机)报告班级·学号1333107.1133310723姓名郑珏辉实验日期12月19日任课教师实验名称实验一顺序结构程序设计验证型一、实验目的(1)熟悉FortranPowerStation4.0的集成开发环境和上机步骤;(2)掌握源程序的书写格式;(3)掌握FORTRAN90中基本数据类型及其描述、运算;(4)掌握基本语句的使用。二、实验内容:(1)编写程序,将华氏温度转化为摄氏温度,公式为:)32(95FC。要求:输入一个华氏温度值F,按照公式将其转化为摄氏温度值C。(2)编写程序,其功能是:输入a,b,x的值,计算并输出y的值。bxeyax5ln2当x=1.234,a=-5,b=0.9876时,y=9.376444E-03。三、实验平台FortranPowerStation4.0四、程序清单programmain_1implicitnonereal::F,Cread*,FC=5*(F-32)/9print*,C=,Cendprogrammain_2implicitnonereal::a,b,x,yprint*,输入x,a,b:read*,x,a,by=(exp(a*x)+log(x)*log(x))/(5*b)print*,y=,yend五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号1333107.1133310723姓名郑珏辉实验日期12月19日任课教师实验名称实验二选择结构程序设计验证型一、实验目的(1)掌握逻辑表达式的书写方法和逻辑型数据的使用;(2)学会正确使用逻辑运算符和逻辑表达式;(3)掌握块IF结构、块CASE结构、逻辑IF语句和算术IF语句。二、实验内容:(1)编写程序,输入年、月,求该月的天数。用year、month分别表示年、月,day表示每月的天数。注意:①每年的1,3,5,7,8,10,12月,每月31天;4,6,9,11月每月30天;2月闰年为29天,平年为28天。②年份能被4整除,但不能被100整除,或者能被400整除的年均为闰年。(2)编写程序,输入一个自然数,若为奇数则输出其平方根,否则输出其立方根。三、实验平台FortranPowerStation4.0四、程序清单programmain_3implicitnoneinteger::year,month,dayprint*,请输入年,月read*,year,monthif(month==1.or.month==3.or.month==5.or.month==7.or.month==8.or.month==10.or.month==12)thenprint*,本月有31天elseif(month==4.or.month==6.or.month==9.or.month==11)thenprint*,本月有30天elseif(month==2)thenif(mod(year,4)==0.and.mod(year,100)/=0.or.mod(year,400)==0)thenprint*,本月有29天elseprint*,本月有28天endifelseif(month/=(1,12))thenprint*,输入错误endifendprogrammain_4implicitnoneinteger::areal::bprint*,请输入aread*,aif(mod(a,2)==1)thenb=a**0.5elseb=a**0.3333333endifprint*,bend五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号13331071133310723姓名郑珏辉实验日期12.26任课教师实验名称实验三循环结构程序设计操作型一、实验目的(1)掌握用DO语句和DOWHILE语句实现循环的方法;(2)掌握循环结构的实现方法;(3)掌握循环嵌套的执行过程。二、实验内容:(1)编写程序,求100~1000之间的所有素数,要求输出这些素数的个数和平均值。(2)编写程序,mnniniSY11)(,其中为偶数为奇数nnnnSn22。当m=10时,Y的值是多少?三、实验平台FortranPowerStation4.0四、程序清单Programmain_5implicitnoneinteger::i,j,n=0,s=0real::a=0.0doI=100,1000doj=2,SQRT(REAL(i))if(mod(i,j)==0)EXITenddoif(jSQRT(REAL(i)))thenn=n+1s=s+iendifenddoa=real(s)/real(n)print*,素数的个数有,n,个,平均值为,aendProgrammain_6implicitnoneinteger::i,n,s,y,m,t=0print*,请输入mread*,mdon=1,mt=0doi=1,nIF(mod(n,2)==0)thens=2*nelses=n*nendift=i+tenddoy=y+s+tenddoprint*,y=,yend五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号13331071133310723姓名郑珏辉实验日期12.30任课教师实验名称实验四字符型数据程序设计操作型一、实验目的(1)掌握字符型、双精度型常量变量的表示方法及其运算;(2)掌握字符型数据的输入输出格式及数据类型之间的转换和运算规则。二、实验内容:(1)编写程序:输入一个字符,若为小写字母,则输出其大写字母;若为大写字母,则输出其小写字母;若为数字,则原样输出该数字字符;否则,输出*。(2)编写程序,用双精度数据计算:)!2()1(!6!4!21cos2642nxxxxxnn,直到第n项的绝对值小于1510为止。三、实验平台FortranPowerStation4.0四、程序清单programmain_9implicitnonecharacter::a,bprint*,请输入字符aread*,aif(ichar(a)48)thenprint*,*elseif(ichar(a)=59)thenprint*,aelseif(ichar(a)=90)thenb=char(ichar(a)+32)print*,belseb=char(ichar(a)-32)print*,bendifendprogrammain_10implicitnoneinteger::i,j,kreal(kind=8)::x,a,ba=0b=1print*,'请输入'read*,xdoi=1,100doj=1,2*ik=1k=k*jenddoa=(-1)**i*x**(2*i)/kif(abs(a)=10**(-15))thenb=b+aendifenddoprint*,bend五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号13331071133310723姓名郑珏辉实验日期12.26任课教师实验名称实验五数组操作操作型一、实验目的(1)掌握数组的定义及赋值和输入输出的方法;(2)熟悉数组在内存中的存储顺序(按列存储);(3)掌握数组赋初值的方法;(4)掌握与数组有关的算法。二、实验内容:(1)编写程序,利用冒泡排序法把输入的一列无序的数据按由小到大的顺序排列。(2)编写程序,其功能是:计算给定的20个数据与平均值之差的绝对值之和。DEMENSIONA(20)DATAA/3.5,1.5,-2.5,4.5,2.5,3.0,5.5,-6.5,3.5,2.5,&1.5,2.5,4.5,-3.0,2.6,3.4,6.3,-3.8,5.2,-1.6/三、实验平台FortranPowerStation4.0四、程序清单programmain_7implicitnoneinteger::i,j,m,ninteger,dimension(:),allocatable::Aprint*,请输入数组中数的个数read*,nallocate(A(1:n))print*,请输入数组read*,Adoi=1,n-1doj=i+1,nif(A(i)A(j))thenm=A(j)A(j)=A(i)A(i)=mendifenddoenddoprint*,Adeallocate(A)endprogrammain_8implicitnoneinteger::i,jreal::s=0,b,creal,dimension(20)::AA=(/3.5,1.5,-2.5,4.5,2.5,3.0,5.5,-6.5,3.5,2.5,1.5,2.5,4.5,-3.0,2.6,3.4,6.3,-3.8,5.2,-1.6/)doi=1,20s=s+A(i)enddob=s/20doj=1,20c=c+abs(A(j)-b)enddoprint*,cend五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号13331071133310723姓名郑珏辉实验日期12.30任课教师实验名称实验六子程序程序设计操作型一、实验目的(1)掌握语句函数的定义及引用方法、函数子程序和子例行子程序的结构和调用方法;(2)掌握FORTRAN程序单元间的数据传递方法。二、实验内容:(1)若Fibonacci数列的第n项记为fib(a,b,n),则有下列的递归定义:fib(a,b,1)=afib(a,b,2)=bfib(a,b,n)=fib(b,a+b,n-1)(n2)用递归方法求5000之内最大的一项。(2)设2)(xxeexsh,编写程序求sh(2)-sh(3)。(3)编写求阶乘及累加和的函数,调用函数求:mnniniiiS111)(当m=10时,S=4038133。三、实验平台FortranPowerStation4.0四、程序清单1.recursivefunctionfib(a,b,n)result(fi)selectcase(n)case(1)fi=acase(2)fi=bcase(3:)fi=fib(b,a+b,n-1)endselectendprogramfib_proreal::a,b,maxfib=0integer::k,num=0read*,a,bwrite(*,*)(fib(a,b,k),k=1,20)dok=1,20if(fib(a,b,k)=5000.and.fib(a,b,k)maxfib)thenmaxfib=fib(a,b,k)num=kendifenddoprint*,'5000之内最大的一项是第',num,',其值是:',maxfibend2.functionsh(x)result(sh_result)implicitnonereal::x,sh_resultsh_result=(exp(x)-exp(-x))/2endprogrammain_11implicitnonerealt,sht=sh(2.0)-sh(3.0)print*,tend3.functions(n)result(s_result)implicitnoneinteger::i,n,t,q,s_resultt=1q=0doi=1,nt=t*iq=q+ienddos_result=t+qendprogrammain_12implicitnoneinteger::m,s,j,l=0read*,mdoj=1,ml=l+s(j)enddoprint*,lend五、调试和测试结果1.六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号姓名实验日期任课教师实验名称实验七派生类型和指针程序设计操作型一、实验目的(1)掌握结构体的概念、定义、格式及引用和初始化方法;(2)掌握结构体数组的定义;(3)掌握指针的概念、定义格式和使用;(4
本文标题:fortran语言程序设计
链接地址:https://www.777doc.com/doc-1394926 .html