资源描述:
《fortran程序30个》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序1PROGRAMchaper1272INTEGER::A(10)=(/5,7,4,8,12,2,10,3,9,11/)INTEGER::sum=0,ave!打开一数据文件,设置一个有格式直接存取文件,将10个数分2个记录写入文件。!数据文件生成2个记录,每个记录行长度相同,记录长度为25OPEN(1,FILE='input21.dat',FORM='FORMATTED',ACCESS='DIRECT',RECL=25)WRITE(1,"(5I5)",REC=1)(A(I)+10,I=1,5)!按格式说明将头5个数写入第1个记录WRITE(1,"(5I5)",REC=2)(A(I)+10,
2、I=6,10)!按格式说明将后5个数写入第2个记录READ(1,"(5I5)",REC=2)(A(I),I=6,10)!按格式说明从第2个记录中读取后5个数READ(1,"(5I5)",REC=1)(A(I),I=1,5) !按格式说明从第1个记录中读取头5个数DOI=1,10 sum=sum+A(I)ENDDOave=sum/10!打开一个最大记录长度为22的有格式顺序存取文件OPEN(2,FILE='input22.dat',FORM='FORMATTED',ACCESS='DIRECT',RECL=22)WRITE(2,"('10个数之和为:',I5)",REC=1)sum !输出1记
3、录行,记录长度为22WRITE(2,"('10个数平均值为:',I5)",REC=2)ave!输出1记录行,记录长度为22WRITE(2,"(A)",REC=3)'程序运行正常结束。' !输出一个记录行,记录长度为22 END程序2PROGRAM average REALsum,ave INTEGERn OPEN(1,file='score.dat') PRINT*,'正在统计平均成绩,请等待。' sum=0.0;n=0 DO READ(1,*,END=100)S sum=sum+s n=n+1 ENDDO100ave=sum/nWRITE(*,"('平均成绩为:',F5.2
4、)")ave PRINT*,'平均成绩统计完毕。'END程序3本章《文件与设备》的例题ex1009一、本程序是一个写入文件的程序,可以用来记录全班同学的考试成绩。二、源程序。moduletypedeftypestudentintegerchinese,english,mathendtypeendmoduleprogramexam1009usetypedefimplicitnoneintegerstudentstype(student),allocatable::s(:)character(len=80)::filename="data.txt"integer,parameter::filei
5、d=10integer::iwrite(*,*)"班上有多少学生?"read(*,*)studentsallocate(s(students),stat=i)if(i/=0)thenwrite(*,*)"allocatebufferfail."stopendifopen(fileid,file=filename)doi=1,students write(*,"('请输入'I2'号同学的中文、英文、及数学成绩')")i read(*,*)s(i).chinese,s(i).english,s(i).math write(fileid,"('座号:'I2/'中文:'I3'英文:'I3'数学:'I
6、3)")i,s(i) enddoclose(fileid)stopend程序4本章《文件与设备》的例题ex1008一、MODUL可以用来封装程序模块,通常用来把程序具有相关功能的函数及变量封装在一起。二、源程序《使用MODULE》使用这些变量的子程序和函数只要USE这个MODULE就可以使用它们。moduleglobalimplicitnoneintegera,bcommona,bendmoduleprogramexam1008useglobalimplicitnonea=1b=2callsub()endprogramsubroutinesub() useglobal implicitnon
7、e write(*,*)a,b returnendsubroutine程序5本章《文件与设备》的例题ex1007一、请调试源程序。二、源程序《显示文件内容》programexam1007implicitnonecharacter(len=79)::filenamecharacter(len=79)::bufferinteger,parameter::fileid=10integer::status=0logi