FORTRAN实验报告2016LI
数值分析2016上机实验报告
序言数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。
是科学与工程计算(科学计算)的理论支持。
许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。
目前,试验、理论、计算已成为人类进行科学活动的三大方法。
数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。
现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。
MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。
目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
本实验报告使用了MATLAB软件。
对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。
并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。
目录序言 (1)问题一非线性方程数值解法 (3)1.1 计算题目 (3)1.2 迭代法分析 (3)1.3计算结果分析及结论 (4)问题二追赶法解三对角矩阵 (5)2.1 问题 (5)2.2 问题分析(追赶法) (6)2.3 计算结果 (7)问题三函数拟合 (7)3.1 计算题目 (7)3.2 题目分析 (7)3.3 结果比较 (12)问题四欧拉法解微分方程 (14)4.1 计算题目 (14)4.2.1 方程的准确解 (14)4.2.2 Euler方法求解 (14)4.2.3改进欧拉方法 (16)问题五四阶龙格-库塔计算常微分方程初值问题 (17)5.1 计算题目 (17)5.2 四阶龙格-库塔方法分析 (18)5.3 程序流程图 (18)5.4 标准四阶Runge-Kutta法Matlab实现 (19)5.5 计算结果及比较 (20)问题六舍入误差观察 (22)6.1 计算题目 (22)6.2 计算结果 (22)6.3 结论 (23)7 总结 (24)附录问题一 非线性方程数值解法1.1 计算题目编写不动点迭代法求根程序:把方程010423=-+x x 写成至少四种x=g (x )的形式,取初值5.1x 0=,进行不动点迭代求根,并比较收敛性及收敛速度。
FORTRAN实验报告(一)
①整型:
PROGRAM ADD6_1
!输出9*9乘法表
INTEGER I,J
DO I=1,9
PRINT 10,(J,I,J*I,J=1,I) !隐性DO循环
输出:87 67.40 465 345.70
⑵输入:0087067.40
0046500345.70
输出:87 67.40
465 345.70
③指数形式:
PROGRAM XI6_2
!输入1234567891011121314151617181920
INTEGER A
REAL B,C
CHARACTER*10 D
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
STATEMENT
END SELECT
2、循环结构格式如下:
DO循环:DO I=E1,E2,E3
STATEMENT
[IF(L) EXIT]
[IF(L) CYCLE]
ENDDO
DO WHIEL循环:DO WHILE(LOGICAL)
STATEMENT
ENDDO
隐DO循环:(STATEMENT, I=E1,E2,E3)(可以嵌套使用)
计算机程序设计基础—FORTRAN实验设计报告线性方程组求解问题
中南大学本科生课程设计(实践)任务书、设计报告(计算机程序设计基础—FORTRAN)题目线性方程组求解问题学生姓名陈晨指导教师刘胤宏学院土木工程学院专业班级土建类工程试验班学生学号18计算机基础教学实验中心2012年 6 月29日Fortran 课程设计实验报告之 线性方程组求解问题题目重现:一物理系统可用下列线性方程组来表示:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡θ-θ-θθθ--θg m g m N N a a m m m m 2121212111001cos 00sin 00cos 0sin 0sin cos 从文件中读入m1、m2和θ的值,求a1、a2、N1 和N2的值。
其中g 取,输入θ时以角度为单位。
要求如下:(1)分别用两种方法(例如高斯消去法、矩阵求逆法、三角分解法、追赶法等),定义求解线性方程组Ax=b 的子程序,要求该子程序能求解任意线性方程组。
(2)在主程序中分别调用上面定义的两个子程序,并对求解结果进行对比分析。
(3)绘制以上两个方法所求得的方程解的数据分布图。
题目分析:初看题目,MY GOD !这辈子没见过这么复杂奇葩的方程组。
而脑袋里那些应付考试还可以的少的可怜的Fortran 基础知识,更是直接缴械投降,无地自容了。
不愧是大学,不愧是让无数土木人工科男竞折腰的Fortran 课程设计。
好吧,虽然极度怀疑自己的智商,但不战而屈己之兵又不是我土木人的性格。
打开电脑,摩拳擦掌,Fortran ,老子来了!我们的目的地是,线性方程组的解,通往目的地的道路有好几条,Gauss 大道,矩阵求逆之道,还有两条小路:三角分解与追赶之径。
目前的情况是,小道路黑路不熟,大道倒是有星点的光。
果断走大道嘛。
开发思想嘛,对于解这样一个复杂的线性方程组,聪明的人类是不会傻乎乎自己去做的。
于是,我们把这个繁琐的工作交给任劳任怨的计算机吧,省下我们大好年华去干更多有意义的事情。
Fortran实验报告样例(1)
n n 1)1(312111+-+⋅⋅⋅-+-实验报告样例南京信息工程大学Fortran 语言程序设计 实验(实习)报告 实验(实习)名称 循环程序设计 实验(实习)日期 得分 指导老师系 专业 班级 姓名 学号一.实验目的:1. 掌握DO 、DO WHILE 语句的语法规则和使用要求。
2. 掌握循环结构概念和循环结构程序设计方法。
3. 掌握强制性终止循环语句EXIT 和CYCLE 的基本功能和使用规则,以及相互区别。
4. 掌握嵌套循环结构概念和应用。
二.实验内容1:1. 问题描述给定5名学生的考试成绩S,评判每个学生的成绩等级,并输出。
编写程序实现之。
成绩按以下标准评定等级:优:90≤S ≤100;良:80≤S<90;中:70≤S<80; 及格:60≤S<70;不及格:S<60。
2.问题分析已知:5个学生成绩:s 1、s 2、s 3、s 4、s 5,从键盘输入,数据类型为整型。
求:5个学生成绩等级,g1、g2、g3、g4、g5,数据类型为字符型。
求解该问题的基本思想是:从键盘依次读取学生成绩数据,每读一个学生成绩,就按照成绩等级评定标准评定等级,并输出该学生等级。
由于有确定的5个学生,所以读取学生成绩和评定成绩等级共5次。
该问题显然是一个重复次数确定的重复处理问题,可通过“计数型”循环结构和DO 循环语句实现。
用整型变量cj 表示学生成绩,用字符型变量grade 表示成绩等级。
用整型变量I 作为循环控制变量。
通过分析,设计算法,绘制框图,如图6-2所示。
3. 实验步骤:1) 算法流程图:2) 编制源程序:(可附在下一页上)3) 运行结果:输入:输出:4. 分析实验中遇到的问题及其解决的办法三、实验内容2:1.问题描述计算其中n 为满足不等式12+22+32+…+n 2>A 的最小项数n。
A 从键盘输入,如:10000。
编写程序实现之。
2.问题分析求解本题,先通过“条件型”循环结构求最小项数n ,整型数,然后再通过“计数型”循环计算级数之和。
fortran有限元程序课程设计
fortran有限元程序课程设计一、课程目标知识目标:1. 掌握Fortran语言的基本语法和程序结构;2. 理解有限元方法的基本原理及其在工程问题中的应用;3. 学会使用Fortran编写有限元程序,解决简单的物理问题;4. 了解有限元程序的调试与优化方法。
技能目标:1. 能够运用Fortran语言编写简单的有限元程序;2. 能够对有限元程序进行调试和性能优化;3. 能够运用所学知识解决实际工程问题,具备一定的编程实践能力;4. 能够通过团队合作,共同完成较复杂的有限元程序编写。
情感态度价值观目标:1. 培养学生对编程和计算物理学的兴趣,激发学生的求知欲和探索精神;2. 培养学生严谨、细致、勤奋的学习态度,提高学生的问题解决能力;3. 培养学生的团队合作精神,提高沟通与协作能力;4. 增强学生的民族自豪感,认识我国在有限元领域的发展成果。
课程性质:本课程为高年级专业选修课,旨在使学生掌握Fortran有限元程序的编写和应用,提高学生的编程实践能力和解决实际问题的能力。
学生特点:学生已具备一定的数学、物理和编程基础,具有较强的逻辑思维能力和动手能力。
教学要求:结合课本内容,注重理论与实践相结合,强化编程实践,提高学生的实际操作能力。
同时,注重培养学生的团队合作精神,提高学生的综合素质。
通过本课程的学习,使学生能够独立编写和优化有限元程序,为后续学习和工作打下坚实基础。
二、教学内容1. Fortran语言基础:变量定义、数据类型、运算符、控制结构、数组、函数与子程序等;2. 有限元方法原理:有限元离散化、单元划分、形函数、刚度矩阵、载荷向量、边界条件处理等;3. 有限元程序编写:根据实际问题,运用Fortran语言编写有限元程序,包括前处理、核心计算和后处理;4. 程序调试与优化:调试技巧、性能分析、优化方法等;5. 实际工程案例:选取具有代表性的工程问题,运用所学的Fortran有限元程序解决。
fortran实验报告
fortran实验报告FORTRAN实验报告实验⽇期2012年3⽉6⽇⼀、实验⽬的1、了解FORTRAN90软件开发环境2、学会启动Fortran,掌握程序的编辑、编译、构建、运⾏⽅法。
3、了解软件开发环境常⽤菜单、⼯具按钮、环境窗⼝基本功能。
掌握⽂件、⽂件夹的移动、复制、删除等操作⽅法。
⼆、实验内容1、运⾏Microsoft Developer Studio软件开发环境。
2、理解有关⼯作区(Workspaces)、项⽬(Projects)、⽂件(Files)的基本概念。
3、掌握⼯作区(Workspaces)、项⽬(Projects)、⽂件(Files)创建⽅法。
4、掌握程序的编辑(Edit)、编译(Compile)、构建(Build)、运⾏(Run)⽅法三、实验步骤1、建⽴⽂件夹2、启动Microsoft Developer Studio软件开发环境,并创建⼯作区、项⽬3、创建⽂件4、编译项⽬内源程序⽂件5、构建可执⾏程序⽂件。
6、运⾏可执⾏程序⽂件四、实验结果与分析实验结果:FORTRAN实验报告实验⽇期2013年3⽉13⽇⼀、实验⽬的1、掌握源程序的书写格式;2、掌握FORTRAN 90中基本数据类型及其描述、运算;3、掌握基本语句的使⽤⼆、实验内容编写简单程序代码1、整数类型program ex0404 integer aa=3write(*,*) "a=",astopEndprogram ex0406 integer(kind=4) write write=2+2*4-3write(*,*) "2+2*4-3=",write stopEnd2、浮点数类型program ex0410real :: a,b,ca=0.5b=0.5c=sin(a)**2 + cos(b)**2 write(*,*) "c=",cstopEnd3、复数类型program ex0411 complex :: a,ba=(1.0,1.0)b=(1.0,2.0)write(*,*) "a+b=",a+b write(*,*) "a-b=",a-b write(*,*) "a*b=",a*b write(*,*) "a/b=",a/bstopend4、字符类型program ex0413 character(len=20) stringstring = "Good morning."write(*,*) stringstring(6:) = "evening." ! 重设设定从第6个字符之后的字符串write(*,*) string end5、逻辑类型program ex0416logical a,ba=.true.b=.false.write(*,*) a,bend三、实验步骤1、编译、构建、运⾏、调试程序2、编写实验报告四、实验结果与分析1、执⾏结果:2、执⾏结果:3、执⾏结果:45、FORTRAN实验报告实验⽇期2012年3⽉26⽇⼀、实验⽬的1、掌握⾃定义数据类型的使⽤,熟练进⾏程序编写⼆、实验内容⾃定义类型program ex0434implicit none! 开始建⽴person这个类型character(len=30) :: name ! ⼈名integer :: age ! 年龄integer :: height ! ⾝⾼integer :: weight ! 体重character(len=80) :: address ! 地址end type persontype(person) :: a ! 声明⼀个person类型的变量write(*,*) "NAME:"read(*,*) a%namewrite(*,*) "AGE:"read(*,*) a%agewrite(*,*) "HEIGHT:"read(*,*) a%heightwrite(*,*) "WEIGHT:"read(*,*) a%weightwrite(*,*) "ADDRESS:"read(*,"(A80)") a%addresswrite(*,100) a%name,a%age,a%height,a%weight100 format("Name:",A10/,"Age:",I3/,"Height:",I3/,"Weight:",I3,& &"Addres:",A50) stopend三、实验步骤1、编写程序代码、编译、调试2、编写实验报告四、实验结果与分析实验结果:输⼊Chang 23 171 59 hebeidaxue执⾏结果:FORTRAN实验报告实验⽇期2012年4⽉9⽇⼀、实验⽬的掌握输⼊输出的格式及变量声明的应⽤⼆、实验内容1、输⼊输出的格式integer areal bcomplex clogical dcharacter(len=20) ea=10b=12.34c=(1,2)d=.true.e="FORTRAN"write(*,"(1X,I5)") a ! ⽤I来格式化整数write(*,"(1X,F5.2)" ) b ! ⽤F来格式化浮点数write(*,"(1X,F4.1,F4.1)" ) c ! complex也是浮点数write(*,"(1X,L3)") d ! ⽤L来输出logicalwrite(*,"(1X,A10)") e ! ⽤A来输出字符串End⼆、变量声明的应⽤program ex0432implicit noneinteger :: a=1integer :: b=2real :: cc=real(a)/real(b) ! 经由库函数real把整数转换成浮点数write(*,"(F5.2)") c end⼆、实验步骤1、编译、调试2、编写实验报告四、实验结果与分析实验结果:1、2、FORTRAN实验报告实验⽇期2012 年4⽉17⽇⼀、实验⽬的1、熟悉和掌握选择结构程序的编写⽅法2、熟悉和掌握各种选择结构的实现⽅法⼆、实验内容1、编写计算⾝⾼、体重是否正常代码program ex0502implicit nonereal(kind=4) :: height ! 记录⾝⾼real(kind=4) :: weight ! 记录体重write(*,*) "height:"read(*,*) height ! 读⼊⾝⾼write(*,*) "weight:"read(*,*) weight ! 读⼊体重if ( weight > height-100 ) then! 如果体重⼤于⾝⾼减去100, 会执⾏下⾯的程序write(*,*) "Too fat!"else! 如果体重不⼤于⾝⾼减去100, 会执⾏下⾯的程序write(*,*) "Under control." end ifstopEnd2、计算学⽣的成绩program ex0512implicit noneinteger scorecharacter gradewrite(*,*) "Score:"read(*,*) scoreselect case(score)case(90:100) ! 90到100分之间grade='A'case(80:89) ! 80到89分之间grade='B'case(70:79) ! 70到79分之间grade='C'case(60:69) ! 60到69分之间grade='D'case(0:59) ! 0到59分之间grade='E'case default ! 其它情形grade='?'end selectwrite(*,"('Grade:',A1)") gradestopend三、实验步骤1、分析问题,设计算法,编写程序2、编译、构建、运⾏、调试程序3、编写实验报告四、实验结果与分析第⼀个程序执⾏结果:输⼊170 58输⼊170 89第⼆个程序执⾏结果:输⼊89输⼊98FORTRAN实验报告实验⽇期2012 年4⽉24⽇⼀、实验⽬的1、了解⼦程序定义、调⽤、形式参数、实在参数、参数传递的基本内容和使⽤规则2、了解结构化程序设计⽅法3、了解使⽤⼦程序设计和编写程序的⽅法⼆、实验内容1、要求验证书本所讲的Fortran程序的⼦程序编写规则及调⽤⽅法。
Fortran语言编程小结(五篇材料)
Fortran语言编程小结(五篇材料)第一篇:Fortran语言编程小结1.单双精度Program ex01 implicit none real(kind=4):: a real(kind=8):: b a=3.***66666666_4!确定这个数字是使用单精度 b=3.***66666666_8!确定这个数字是使用双精度 write(*,*)a,b End program ex012.判断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 END3.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:”,I 3/,&“Addres:”,A80)End4.REAL 与 INTEGER Program ex0431 implicit noneinteger :: a=1integer :: b=2real:: cc=a/b!c=1/2=0, 虽然c是浮点数,但因为a,b是整数,计算a/b时会用整数去计算.write(*,“(F5.2)”)c End5.DATA 变量表/初值表/,变量表/初值表/,… PROGRAM ex0430 IMPLICIT NONE INTEGER A REALB COMPLEXC CHARACTER(20)STR DATA A,B,C,STR /1,2.0,(1.0,2.0), 'FORTRAN 77'/ WRITE(*,*)A,B,C,STR END6.复数实虚部Program ex0430 complex :: c =(1,2)write(*,100)real(c),'+',aimag(c),'i' 100 format(f5.1,a1,f5.1,a1)End7.逻辑输出 Program ex0416logical a,ba=.true.b=.false.write(*,100)a,bformat(L5,L4)End8.Program ex0415character(len=20)stringcharacter(len=5)substringstring = “Have a nice day.”substring = “nice”write(*,*)ichar('A')!输出字符A的ASCII码write(*,*)char(65)!输出ASCII码65所代表的字符,也就是Awrite(*,*)len(string)!输出字符串string声明时的长度write(*,*)len_trim(string)!输出字符串string内容的长度write(*,*)index(string, substring)!nice在Have a nice day的第8个位置 End9.Program ex0414character(len= 6)firstcharacter(len=10)secondcharacter(len=20)addfirst=“Happy ”second=“Birthday”add = first//second!经由两个连续的除号可以连接两个字符串write(*,100)addFORMAT('生日快乐',/,A)End10.带精度计算 Program ex0408real(kind=8):: a,ba=1b=0.1write(*,*)a,“+”,b,“=”,a+b End11.逻辑if语句 Program ex0504 implicit noneinteger rain, windspeedlogical r,wwrite(*,*)“Rain:”read(*,*)rainwrite(*,*)“Wind:”read(*,*)windspeedr =(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(*,*)“停止上班上课”elsewrite(*,*)“照常上班上课” End if End12.Select Case用法 Program ex0512 implicit noneinteger :: scorecharacter gradewr ite(*,*)“Score:”read(*,*)scoreselect case(score)case(90:100)grade='A'case(80:89)grade='B'case defaultgrade='?'End selectwrite(*,“('Grade:',A1)”)grade End13.IF GOTO语句PROGRAM ex0514 IMPLICIT NONE REAL heightREAL weightWRITE(*,*)“height:” READ(*,*)heightWRITE(*,*)“weight:” READ(*,*)weightIF(weight > height-100)GOTO 200 100 WRITE(*,*)“Under control.”GOTO 300200WRITE(*,*)“Too fat!” 300 STOP END14.DO WHILE 循环 Program ex0604 implicit noneinteger, parameter :: limit=10integer counterinteger :: ans = 0counter = 2do while(counter <= limit)ans = ans + countercounter = counter + 2end dowrite(*,*)ans END15.CYCLE,EXIT 语句 Program ex0609 implicit noneinteger :: i,jloop1: do i=1,3loop2: do j=1,3if(i==3)exit loop1!跳离loop1循环if(j==2)cycle loop2!重做loop2循环write(*, “('(',i2,',',i2,')')”)i, jend do loop2end do loop1 End16.大小写字符 Program ex0612 implicit noneinteger iinteger strlencharacter(len=20):: stringwrite(*,*)“String:”read(*,*)stringstrlen = LEN_TRIM(string)do i = 1, strlenstring(i:i)= char(ichar(string(i:i))+32)end dowrite(*,“('encoded:',A20)”)string End17.循环计算 Program ex0614 implicit nonereal a,b,anscharacter :: 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*bcase('/')ans = a/b case defaultwrite(*,“('Unknown operator ',A1)”)keystop end selectwrite(*,“(F6.2,A1,F6.2,'=',F6.2)”)a,key,b,answrite(*,*)“(Y/y)to do again.(Other)to exit.” read(*,“(A1)”)key end do End18.矩阵相加 pogram ex implicit noneinteger, parameter :: row = 2integer, parameter :: col = 2integer :: matrixA(row,col)integer :: matrixB(row,col)integer :: matrixC(row,col)integer rinteger cwrite(*,*)“Matrix A”do r=1, rowdo c=1, colwrite(*,“('A(',I1,',',I1,')=')”)r,cread(*,*)matrixA(r,c)end doend dowrite(*,*)“Matrix B”do r=1, rowdo c=1, colwrite(*,“('B(',I1,',',I1,')=')”)r,cread(*,*)matrixB(r,c)end doend dowrite(*,*)“Matrix A+B=”do r=1, rowdo c=1, colmatrixC(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 eximplicit noneinteger, parameter :: row = 2integer, parameter :: col = 2integer :: a(2,2)=(/ 1,2,3,4 /)!a(1,1)=1, a(2,1)=2, a(1,2)=3, a(2,2)=4integer :: 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)End20.FORALL语句 Program ex Implicit none integer :: I,Jinteger, parameter :: size = 5integer :: 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!下半部分write(*,“(5(5I5,/))”)a End21.Allocatable Program EX Implicit none integer :: size, error=0integer, parameter :: one_mb=1024*1024 !1MBcharacter, allocatable :: a(:)Dosize=size+one_mb!allocate(a(size), stat=error)if(error/=0)exitwrite(*,“('Allocate ',I10, ' bytes')”)size write(*,“(F10.2,' MB used')”)real(size)/real(one_mb)deallocate(a)End do End22.Function 函数 Program ex implicit nonereal :: a=10real :: b=20real :: addwrite(*,“(f6.2)”)add(a,b)End Function add(a,b)implicit none real :: a,breal :: addadd = a*b End23.SAVE语句 Program ex Implicit nonecall sub()call sub()call sub()End program Subroutine sub()Implicit noneInteger :: count = 1Save count!指定save变量永远活着,不会忘记它的内容Write(*,*)countcount = count+1 End[运行结果:1 2 3 ]24.生成随机数 program ex implicit noneinterface!定义函数的接口function random10(lbound, ubound)implicit none real :: lbound, ubound real :: random10(10)end functionend interfacereal :: a(10)CALL RANDOM_SEED()!系统根据日期和时间随机地提供种子a = random10(1.0, 10.0)write(*,“(10F6.2)”)aend function random10(lbound, ubound)implicit nonereal :: lbound, uboundreal :: lenreal :: random10(10)realtinteger ilen = ubound-lbound!计算范围大小do i=1,10call random_number(t)!t会是0~1之间的随机数random10(i)= lbound + len * t!把t转换成lbound~ubound 间的随机数end do End25.MODULE语句 Module globalimplicit noneinteger a,bcommon a,b End module Program ex0834use globalimplicit nonea=1b=2call sub()End program Subroutine sub()use globalimplicit nonewrite(*,*)a,breturn End subroutine26.写文件到text program ex0902implicit nonecharacter(len=20):: stringopen(unit=10, file=“test.txt”)write(10,“(A20)”)“I LOVE YOU.”!写到文件中rewind(10)read(10,“(A20)”)string!从文件中读出来write(*,“(A20)”)string!写到屏幕上 end27.随机成绩 program gendataimplicit noneinteger studentsinteger irealr(3)write(*,“(4A5)”)“座位”,“语文”,“数学”,“英语”call random_seed()write(*,*)“How many students?”read(*,*)studentsdo i=1,studentscall random_number(r)write(*,“(6I5)”)i,int(r*50+50)end do end program第二篇:Fortran语言复习大纲复习内容提纲1.FORTRAN程序的结构、书写规则FORTRAN程序的构成(主程序和子程序);FORTRAN77源程序的书写格式。
FORTRAN实验报告
《FORTRAN 语言》实验(上机)报告班级·学号 姓名 实验日期 任课教师 实验名称实验一 顺序结构程序设计验证型一、实验目的(1)熟悉Fortran PowerStation4.0的集成开发环境和上机步骤;(2)掌握源程序的书写格式; (3) 掌握FORTRAN 90中基本数据类型及其描述、运算;(4) 掌握基本语句的使用。
二、实验内容:(1)编写程序,将华氏温度转化为摄氏温度,公式为:。
要求:输入一个华氏温度)32(95-=F C 值F ,按照公式将其转化为摄氏温度值C 。
(2)编写程序,其功能是:输入a,b,x 的值,计算并输出y 的值。
b x e y ax 5ln 2+=当x=1.234,a=-5,b=0.9876时,y= 。
三、实验平台 Fortran PowerStation 4.0四、程序清单五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN语言》实验(上机)报告班级·学号姓名实验日期任课教师实验名称实验二选择结构程序设计验证型一、实验目的(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)编写程序,输入一个自然数,若为奇数则输出其平方根,否则输出其立方根。
三、实验平台Fortran PowerStation 4.0四、程序清单五、调试和测试结果六、教师批语与成绩评定:年月日《FORTRAN 语言》实验(上机)报告班级·学号 姓名 实验日期 任课教师 实验名称实验三 循环结构程序设计操作型一、实验目的(1)掌握用DO 语句和DO WHILE 语句实现循环的方法;(2)掌握循环结构的实现方法; (3) 掌握循环嵌套的执行过程。
河北大学工商学院Fortran程序设计实验报告
年级2010级学号2010483036姓名王丽丽成绩专业土木工程实验地点B3-216 指导教师袁满实验项目输入输出和声明语句实验日期2012-3-2一、实验目的:练习fortran语言中的输入输出和声明语句的使用二、实验要求:阅读书上例题并调试运行三、实验结果及分析program e41implicit noneinteger areal bcomplex clogical dcharacter*(20) ea=10b=12.34c=(1,2)d=.true.e="fortran"write(*,100) a 运行结果:100 format(1x,i5)write(*,200) b200 format(1x,f5.2)write(*,300) c300 format(1x,f4.1,f4.1)write(*,400) d400 format(1x,l3)write(*,500) e500 format(1x,a10)End年级2010级学号2010483036 姓名王丽丽成绩专业土木工程实验地点B3-216 指导教师袁满实验项目输入输出和声明语句实验日期2012-3-9一、实验目的:练习fortran语言中的输入输出和声明语句的使用二、实验要求:练习使用输入输出和声明语句三、实验结果及分析(1)program t0402 运行结果:real r,mj,zcwrite(*,*)"请输入圆的半径"read(*,*) rpai=3.14mj=r*r*paizc=2*pai*rwrite(*,*) "圆的面积是:",mjwrite(*,*) "圆的周长是:",zcstopend program t0402end program t0403(2)program t0401 运行结果:real ra,rbinteger a,ba=2b=3ra=2.0rb=3.0write(*,*) b/a 整型变量只保留数值的整数位,小数部分舍去。
FORTRAN课程设计报告
中南大学本科生课程设计(实践)设计报告(程序设计基础)题目常微分方程数值解学生伟指导教师红雨学院土木建筑学院专业班级土建类0908学生学号1208090814计算机基础教学实验中心2010年07月07日FORTRAN 课程设计报告摘要本题是通过长期的观察统计,得到一个食饵一捕食者系统的数学 模型如下:捕食者(鲨鱼):a=0.5,入 2=0.02, X 2(0)= 2; 绘制食饵和鲨鱼数量随时间的变化情况图。
再由已知的初始条件,通过一阶线性微分方程组得到食饵和鲨鱼 数量随时间变化关系曲线。
这一过程首先要通过四阶龙格库塔法得到 多组鲨鱼和食饵随时间变化的数据,再通过FORTRAN 编译程序,QuickWin 的图形操作得到变化曲线。
关键词:四阶龙格一库塔法、FORTRAN 、QuickWin 图形操作设计思想 (一)总体设想1、 生成数据用四阶龙格库塔法,取不同的时刻对应鲨鱼和食饵数量, 得 到多组数据。
2、 Q uickWin 图形操作画出基本图形界面模仿课本及例题做出一个基本的图形界面,包括界面的大 小、颜色、名称等,以为后面绘图作准备。
dx 1 dtx i (r i1X 2)dX2X 2( dt2X 1),食饵: r i = 1,入 i = 0.1, X i (0)= 25;3、设计主程序连接数据与QuickWin程序,画出相应曲线将得到的多组数据与绘图程序连接起来,并最终绘制鲨鱼、食饵随时间变化曲线。
(二)系统模块结构简介常微分方程的数值解设计主程序连接数据文件和图形界面,绘制曲线系统设计与实现①数据生成模块首先要查阅资料了解四阶龙格库塔法的原理及其数学形式:dydtdxdtf (t, x , y ) y(t。
) y og (t, x, y ),其中X(t°) X oy i 1y i6(f12f2 2f3f4) f1hf(t i,\, y i)则f2hf (t i A,X i1-f1)2 1,同理可得f3hf (t i1h,x21尹2』^2)f4hf (t i h,X i93,y i f3) X i 1, g l, g2, g3, g4首先在FORTRAN POWER STATION中建立一个项目文件,命名为my files,之后新建一个text.f90文件命名为数据,开始编程。
Fortran课程设计报告_范文
中南大学课程设计报告书课程名称:Fortran语言课程设计班级:土木工程2005级06班学号:1201050624姓名:成丕富指导教师:蔡旭晖二○○六年六月目录一、课程设计任务书 (3)二、需求分析 (5)三、概要设计 (5)四、系统实现 (6)五、详细设计 (10)六、源程序代码 (12)七、总结 (28)八、参考文献 (28)《FORTRAN 程序设计课程设计》任务书一、 实践目的通过本课程设计,培养利用程序设计技术进行计算机与专业知识的交叉应用,综合解决实际问题的能力。
通过自己分析问题、寻求算法、编写、调试程序、解决问题的过程,掌握多模块结构的程序设计与调试方法,以及程序模块间的数据传递方法,建立提出问题、分析问题、解决问题的思维方式,促进灵活运用所学知识解决问题能力的提高。
二、 设计任务制作一个信息管理系统,从以下题目中任选其一。
1.上网查询各省会城市2005年生产总值(GDP)、农林牧渔业总产值、工业总产值,将数据。
以统一格式保存在一个纯文本文件tongji.dat 中。
编程实现:(1)从文件tongji.dat 中读取数据,计算全国省会2005年GDP 的平均值,统计GDP 高于平均值的城市数;(2)按第一产业(即农林牧渔业总产值与工业总产值之和)总产值的升序排序,将排序后的数据存入文件fenxi.dat 中。
(3)统计工业总产值在1000亿元以下、1000~2000亿元、2000~3000亿元、3000亿元以上的城市数,并绘制分布饼图和折线图。
(4)计算各城市2005年较2004年相比的GDP 增长幅度,计算并输出自己所在省的省会城市GDP 增长幅度在各省会城市中的排名。
2.已知[]ihk j i k j i k j i k ji k ijeh u u u uu 2)(1,)(1,)(,1)(,1)1(41-+++=-+-++,其中h=0.0021,,,1500,0,,500,0+==+⋅=+⋅=⋅⋅hi i hi i j j eu e u e h j u h j u)5000,5000(0.2)0(,<<<<=j i u j i 其中(1)计算)(,k j i u 及)()(,h j eu hi k j i ⋅+-⋅,k 、i 、j=0,1,2,….,500要求结果精确到小数点后第6位,并将结果输出到文件poisson.dat 中。
西安交通大学工程分析程序设计Fortran上机作业参考答案
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . .
. . . . .
1
8 指 针 、格 式化 输入 /输 出、 文件 操作 8.1 格式化输入输出 . . . . . . . . . 8.1.1 整数 . . . . . . . . . . . 8.1.2 实数 . . . . . . . . . . . 8.1.3 复数 . . . . . . . . . . . 8.1.4 逻辑型 . . . . . . . . . . 8.1.5 字符串 . . . . . . . . . . 8.2 输出金字塔形状 . . . . . . . . . 8.3 整齐的杨辉三角形 . . . . . . . 8.4 龙格-库塔法求解微分方程 . . . 8.5 Shell排序 . . . . . . . . . . . . 9 参考文献 10 LICENSE
Fortran90上级实验报告
Fortran90上级实验报告实验一上机日期:2012年2月23日1.实验目的:(1)了解FORTRAN90与软件开发环境的关系.(2)掌握FORTRAN90上机实操作过程.(3)掌握FORTRAN90软件开发环境启动方法.(4)理解有关工作区,项目,文件创建方法.(6)熟悉软件开发环境图形用户界面.(7)掌握程序输入,编译,运行方法.(8)了解软件开发环境常用菜单,工具按钮,环境窗口基本功能.2上机过程记录(1)主要记录输入程序的原代码:Program mainReal length,width,radiusReal ::unitprice=0.5,totalprice,areaPrint*,’请输入图形长宽值:’Read*,length,widthPrint*”请输入绿地半径:”Read*,radiusArea=length*width-3.1415926*radius**2Totalprice=unitprice*areaPrint*,’地块总价为:’totalprice’万元’End(2)调试过程: D:\shiyan01\xm1\chengxul.f90D:\shiyan01\xm1\chengxul.f90(6) : Error: Syntax error, found CHARACTER_CONSTANT '请输入绿地半径:' when expecting one of: , ;Print*"请输入绿地半径:"------^D:\shiyan01\xm1\chengxul.f90(10) : Error: Invalid character_kind_parameter. No underscore Print*,'地块总价为:'totalprice'万元'------------------------------------^D:\shiyan01\xm1\chengxul.f90(10) : Error: Syntax error, found IDENTIFIER 'TOTALPRICE' when expecting one of: ( * :: , ; : ) (/ [ + - . ] /) ** / > // .LT. ...--------------------^D:\shiyan01\xm1\chengxul.f90(10) : Error: This Hollerith or character constant is too long and cannot be used in the current numeric context. ['地块总价为:']Print*,'地块总价为:'totalprice'万元'-------^Error executing df.exe.xm1.exe - 4 error(s), 0 warning(s)(3)调试成功的程序的原代码Program mainReal length,width,radiusReal ::unitprice=0.5,totalprice,areaPrint*,’请输入图形长宽值:’Read*,length,widthPrint*”请输入绿地半径:”Read*,radiusArea=length*width-3.1415926*radius**2Totalprice=unitprice*areaPrint*,’地块总价为:’totalprice’万元’End3收获:对FORTRAN90软件有了一个全面清晰的了解,初步熟悉了软件开发环境图形截面,熟悉掌握常用菜单,工具按钮和环境窗口的操作截面.工作空间,项目和原程序不可使用中文名输入标点后要转换英文输入状态.实验二1.实验目的:(1)了解FORTRAN90字符集(2)掌握FORTRAN90实体名称的语法描述规则和具体要求.(3)了解FORTRAN90关键字意义,以及与名称区别.(4)掌握FORTRAN90程序组织结构和语句排列次序的基本原则.(5)掌握FORTRAN90自由书写格式及三个标志符主要作用.(6)理解数据,数据表是,数据类型概念, 熟悉FORTRAN90数据类型.2上机过程记录(1)主要记录输入程序的原代码:program exampleinteger(1)::I;J;Kinteger Sprint*,'请输入三个整数:'read*,I,J,KS=I+J+Kprint*,'I1+I2+I3=',Sprint*'三个整数所有可能的排列次序有:'print*I,J,Kprint*I,K,Jprint*J,I,Kprint*J,K,Iprint*K,I,Jprint*K,J,Iend program(2)调试过程D:\shiyan01\xm1\chengxul.f90D:\shiyan01\xm1\chengxul.f90(2) : Error: Syntax error, found';' when expecting one of: ( : % . = =>integer(1)::I;J;K---------------^D:\shiyan01\xm1\chengxul.f90(8) : Error: Syntax error, found CHARACTER_CONSTANT 'sange:' when expecting one of: , ;print*'sange:'------^D:\shiyan01\xm1\chengxul.f90(9) : Error: Syntax error, found IDENTIFIER 'I' when expecting one of: , ;print*I,J,K------^D:\shiyan01\xm1\chengxul.f90(10) : Error: Syntax error, found IDENTIFIER 'I' when expecting one of: , ;print*I,K,J------^D:\shiyan01\xm1\chengxul.f90(11) : Error: Syntax error, found IDENTIFIER 'J' when expecting one of: , ;print*J,I,K------^D:\shiyan01\xm1\chengxul.f90(12) : Error: Syntax error, found IDENTIFIER 'J' when expecting one of: , ;print*J,K,I------^D:\shiyan01\xm1\chengxul.f90(13) : Error: Syntax error, found IDENTIFIER 'K' when expecting one of: , ;print*K,I,J------^D:\shiyan01\xm1\chengxul.f90(14) : Error: Syntax error, found IDENTIFIER 'K' when expecting one of: , ;print*K,J,I------^D:\shiyan01\xm1\chengxul.f90(3) : Error: A specification statement cannot appear in the executable section.integer S^Error executing df.exe.xm1.exe - 9 error(s), 0 warning(s)(3)调试成功的程序的原代码program exampleinteger(1)::I;J;Kinteger Sprint*,'请输入三个整数:'read*,I,J,KS=I+J+Kprint*,'I1+I2+I3=',Sprint*'三个整数所有可能的排列次序有:' print*I,J,Kprint*I,K,Jprint*J,I,Kprint*J,K,Iprint*K,I,Jprint*K,J,Iend program。
《Fortran语言程序设计》实验指导书(2005,理,工,王万银)
《Fortran 语言程序设计》实验指导书(勘查技术与工程地球物理学专业)王万银邱之云编写地质工程与测绘工程学院地球探测与信息工程系二O O六年前言一、实验课性质:非独立设课二、采用教材:白云,FORTRAN90程序设计,上海:华东理工大学出版社,2003年(该书为理论课教学教材,无相应的实验课教材)。
三、实验课总学时:20学时四、实验项目名称和学时分配五、实验教学的目的和要求本门实验课的目的是通过上机实验,让学生掌握Fortran语言的编程环境,熟悉Fortran 语言的语法规则,能够熟练使用Fortran语言编写小型程序。
六、实验课程考试方式1、实验报告每次实验完成后必须编写实验报告。
实验报告应包括实验内容(表达实验的基本内容)、实验结果(算法设计结果、程序编写结果、给定的输入实验数据、实验测试结果)及实验过程中存在的问题。
2、考核方式实验参加的次数和实验报告的成绩综合评定,方法如下:(1)必须参加实验和编写实验报告才可以参加成绩评定。
(2)共有10个必须的实验,每次占十分之一。
(3)实验课成绩占课程总成绩的30%。
实验一:Fortran基本程序结构及输入/输出实验一、实验课时:2学时二、实验目的、内容及要求1、实验目的(1)了解FORTRAN90软件开发环境。
掌握FORTRAN90上机实验基本操作过程。
掌握FORTRAN90软件开发环境启动方法。
理解有关工作区、项目、文件的基本概念。
掌握工作区、项目、文件创建方法。
熟悉Microsoft Developer Studio软件开发环境图形用户界面。
掌握程序的编辑、编译、构建、运行方法。
了解软件开发环境常用菜单、工具按钮、环境窗口基本功能。
掌握文件、文件夹的移动、复制、删除等操作方法。
(2)了解FORTRAN90字符集。
掌握FORTRAN90实体名称的语法描述规则和具体使用要求。
了解FORTRAN90关键字意义,以及与名称的区别。
掌握FORTRAN90程序组织结构和语句排列次序的基本原则。
Fortran程序总结
1.行的书写(行的长度、分行、续行)一行可以是0~132个字符,空格有意义,语句最长不超过2640个字符一行可以有多个语句,用“;”分隔一个语句可分行写,读行标记为&(放在尾部),但如为关键字,首尾均加&。
最多可有511个续行。
2.说明语句必须出现在可执行语句之前,格式说明语句(FORMAT语句)除外。
3.注释标志符:自由格式:!固定格式:C *语句分隔符:分号;(仅自由格式可以使用)续行符:自由格式:&申明标号:1到5位无符号整数空格:关键字、变量、常量内部不能用空格,但相邻两者之间须用空格4.信息处理的分类:数值处理和信息处理现代计算机工作原理:程序存储和程序控制(冯·诺依曼)1、运算器——算术运算、逻辑运算2、控制器——根据指令控制计算机工作运算器、控制器和寄存器称为中央处理器CPU3、I/O设备——提供数据传输服务4、总线——数据传输的公共通道1.机器语言:二进制代码形式,可以被计算机直接执行,不可移植2.汇编语言:用助记符来代替机器指令,容易记忆,不可移植3.高级语言:接近自然语言(英语)的程序设计语言,又称算法语言,易学、易用、易维护,可移植性好例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等5.FORTRAN90程序是一种分块结构,由若干个程序单元块组成:主程序、外部子程序、模块、块数据单元无论是主程序单元,还是子程序单元,都是独立的程序单位,应该独立编写,它们的形式相似。
非语句行:注释语句:!后的所有字符都被编译器忽略。
可独占一行,也可在其它语句之后,空行为注释行(固定格式用C和*)6.常量的定义:常量是程序执行过程中不能变化的量。
基本数据类型有五种:整型、实型、复型、字符型和逻辑型前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。
FORTRAN 90通过KIND值确定整数的存储开销、最大位数和取值范围,如表所示。
FORTRAN实践报告
中南大学本科生课程设计(实践)设计报告(程序设计基础)题目微分方程求解实践报告学生学号1208100420学生姓名陈立湘指导教师蔡旭晖学院土木建筑学院专业班级土建类10-04班计算机基础教学实验中心2011年 06 月 30 日FORTRAN语言课程计摘要:本次实践主要是让我在独立自主的前提下发挥各种方法途径把在本学期学到的fortran知识运用起来解决实际问题,在问题伴随之下探索并努力解决,并借用了资料上的一些微分方程的解决程序以及书上的画图程序完成。
一.设计思想1.实践目标及目的最直接的目的自然是搜索资料运用所学知识编写一个大型程序来解决特定的实际问题,而众所周知fortran是世界上第一个被正式推广使用的电脑高级语言,而且电脑日益发展在生活中占据着越来越重要的地位,而程序语言又是电脑运行的基础,就像是人体上的各种细胞,组织……更甚者实践出真知,所以我们通过独立实践fortran语言来编写程序解决实际问题是锻炼自身以及学以致用,体验的最好的办法,这样能让我们独立自主,学以致用,实践知识,锻炼能力……2.问题分析当我看到课程设计任务上的三个问题时,义无反顾的选择了第二个,首先是因为微分方程在数学上比较实在(其实编程和数学不同的),问题大体内容是在意大利生物学家Ancona关于鱼类种群相互制约关系的研究前提下绘制一个食饵和鲨鱼数量随时间的变化情况图,这样的话问题就是编写一个微分方程的求解程序来解决这个题目,而在老师给予的参考资料上有一些微分方程的求解程序示范,那自然是要参考资料上的了,最后要以图的形式展现,那么fortran语言中的QuickWin就少不了了,而对于一个大程序子程序是必不可少的,这样实践的各类问题就都展现出来了,接下来就是一一解决。
二.系统设计与实现1.总体设计2.算法以及结构我的算法是以积分一步的特雷西方法为基础主程序辅之以QuickWin画图程序以及其他子程序链接在一起实行解决问题的。
Fortran基本用法小结
Fortran基本用法小结目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9章,都是最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。
要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
如果有不妥的方,希望大家指正。
谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释Fortran=For mula Tran slator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
ortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortran90。
ortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看77程序。
以下是77和90的一些格式上的区别。
Fortran 77:固定格式(fixed format),程序代码扩展名:.f 或.for(1)若某行以C,c或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入出等);7~72为程序代码编写区;73往后被忽略;(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。
大学计算机2016实验报告【范本模板】
大学计算机实验报告编制教师:张敏卓学锋钟琪张凯审定:唐年庆2016至2017学年第1学期计算机科学学院实验报告说明本课程实验从开课学期第四周开始,每周2学时上机实验课,十八周结束,其中第十八周为实验抽测,共32学时。
除统一安排的时间外,学生还可根据自己的实际适当安排课余时间上机。
实验课注意事项如下:(1)每次实验前学生必须充分准备..每次的实验内容,以保证每次上机实验的效果.实验过程中必须独立..完成。
(2)每次实验课将考勤..,并作为实验成绩的重要依据。
(3)每次实验完成后,亲自..批阅..,并让老师手写...将实验报告交实验指导老师检查或盖章签字.....,否则实验成绩无效。
(4)实验报告中学生必须填写【实验地点..完成。
....】,注意:必须手写....】、【实验时间(5)每次实验完成后,请将实验结果压缩后上传.....到服务器。
(6)学期结束时,每位同学应将自己的《实验报告册》交各班级班长或学习委员,由班长或学习委员以班级为单位、按学号从小到大排列........好统一交给实验指导老师,否则无实验成绩。
附实验成绩登记表实验一:操作系统基本练习实验日期:2016年月日实验地点:第三实验楼机房实验成绩:指导教师姓名:一、实验目的:1。
掌握Windows 7 的启动和退出。
2。
学会资源管理器、我的电脑的使用方法.3.掌握控制面板的使用、Windows 7 系统设置。
4.掌握文件和文件夹的新建、选定、复制、重命名、删除和查找等操作.二、实验任务:1.实验准备:在大学计算机基础课程学习平台下载“实验1”资料包,并解压于D盘,并将解压后的文件夹重新命名为你的姓名。
2.在“Text"文件夹中建立名为Test1。
Txt文本文件.在所建立文本文件中用一种输入法输入以下文字内容:3.查找C盘中所有jpg图片,然后按照大小排列,拷贝前2个到“Image”文件夹下;把资料包中audio文件夹下的css文件的扩展名修改为.txt类型,并设置为隐藏属性。
C语言课程设计实验报告2016版--全套
姓名刘洋评分理学院实验报告课程名称:C语言课程设计题目:C程序设计综合实践专业:信息与计算科学姓名学号:刘洋(151-1)指导教师:***2016年6月24日实验报告一一、实验名称C 语言基础实验二、实验目的1.熟练掌握循环、分支与顺序结构等程序设计;2.能够利用C 语言对定积分、数制转换等问题进行求解。
三、实验要求利用C 语言求解下列题目。
1、计算斜率:要求用户从键盘输入两个点的坐标,利用c 语言计算过两点直线的斜率。
(考虑要周全)2、利用C 语言求解定积分的近似值(结果保留2位小数):20cos(1)x dx π+⎰3、凯撒加密算法:凯撒加密算法是一种古老的加密技术,该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母来替代(如果穿越过了字母Z ,会绕回到字母表的起始位置,例如,每个字母都用字母表中两个位置之后的字母代替,那么Y 就被替换为A ,Z 被替换为B ),试编写程序用凯撒加密方法对消息进行加密。
用户输入待加密的消息和移位计数,编写时可假定待加密的消息不超过80个字符,消息为全英文,加密时不改变字母的大小写等。
4、校园歌手大奖赛,有10个评委打分,试编程求出选手的平均得分(去掉一个最高分和一个最低分)5、编写10进制转换为任意进制的工具软件(仅限于正整数),要求用户输入待转换的10进制数和所需要转换的进制数。
如:请输入10进制数:123请输入所要转换的进制数:8将123转换为8进制的结果为:1736、在第五题的基础上改进,使得工具能够支持任意数制的转换(仅限于正整数,且只考虑2进制、8进制、16进制的互转即可)。
四、实验步骤(1)计算斜率:要求用户从键盘输入两个点的坐标,利用c语言计算过两点直线的斜率。
程序输入:程序输出:特殊情况判断:源代码:运行效果截图:(2)(3)(4)(5)(6)五、总结1、实验中遇到的问题和解决问题的方法(1)(2)……2、实践结果分析及改进意见六、参考资料1.谭浩强.C++面向对象程序设计题解与上机指导.北京:清华大学出版社,2006,4.2.......实验报告二一、实验名称C语言数组操作、矩阵运算及多文件联编二、实验目的1.熟练掌握C语言中一、二数组的灵活运用;2.掌握C语言中(Visual Studio和Dev C++)多文件联合编译的使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验二选择结构程序设计
验证型
一、实验目的
(1)掌握逻辑表达式的书写方法和逻辑型数据的使用;
(2)学会正确使用逻辑运算符和逻辑表达式;
(3)掌握块IF结构、块CASE结构、逻辑IF语句和算术IF语句。
(1)掌握字符型、双精度型常量变量的表示方法及其运算;
(2)掌握字符型数据的输入输出格式及数据类型之间的转换和运算规则。
二、实验内容:
(1)编写程序:输入一个字符,若为小写字母,则输出其大写字母;若为大写字母,则输出其小写字母;若为数字,则原样输出该数字字符;否则,输出*。
(2)编写程序,用双精度数据计算:
(1)编写程序:从键盘输入若干字符串,并把这些字符串存放到文件FILE1.TXT中。
(2)编写程序,读出当前文件夹下文件README.TXT的内容,显示在屏幕上。
三、实验平台
Fortran PowerStation4.0
四、程序清单
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
PRINT*,Y
READ*,N
END
五、调试和测试结果
实验一正常运行,共有143个素数,其和为75067
实验二正常运行,当输入m=10时,输出结果为445
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验四字符型数据程序设计
操作型
一、实验目的
xn+1=1-sinxn。如果迭代10次不收敛,则终止运行。
三、实验平台
Fortran PowerStation4.0
四、程序清单
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验一顺序结构程序设计
验证型
一、实验目的
(1)熟悉Fortran PowerStation4.0的集成开发环境和上机步骤;
(2)掌握源程序的书写格式;
(3)掌握FORTRAN 90中基本数据类型及其描述、运算;
(4)掌握基本语句的使用。
四、程序清单及运行结果
要求:第1题写出运行结果,第2题写出程序清单。
五、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验八文件操作
操作型
一、实验目的
(1)掌握文件与记录的概念;
(2)掌握文件的打开和关闭;
(3)掌握文件的存取方法。
二、实验内容:
CHARACTER name *8
REAL salary
REAL award
REAL cost
END TYPE
INTEGER I,J,NUM
PARAMETER (NUM=10)
TYPE (person) , DIMENSION ( NUM )::clerk
DO i=1,NUM
READ *,clerk(i).name, clerk(i).salary, clerk(i).award, clerk(i).cost
END DO
DO J=1,NUM
IF(clerk(j).salary + clerk(j).award–clerk(j).cost>=1200)THEN
PRINT * ,clerk(j).name, clerk(j).salary, clerk(j).award, clerk(j).cost
END IF
二、实验内容:
(1)编写程序,将华氏温度转化为摄氏温度,公式为: 。要求:输入一个华氏温度值F,按照公式将其转化为摄氏温度值C。
(2)编写程序,其功能是:输入a,b,x的值,计算并输出y的值。
当x=1.234,a=-5,b=0.9876时,y=。
三、实验平台
Fortran PowerStation5.0
end if
read*,I
end
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验三循环结构程序设计
操作型
一、实验目的
(1)掌握用DO语句和DO WHILE语句实现循环的方法;
(2)掌握循环结构的实现方法;
(3)掌握循环嵌套的执行过程。
INTEGER i
x=0
DO i=1,5
p=>x(1:i,1)
p=p+1
PRINT *,p
END DO
END
请将程序略作修改,用于输出下列图形:
(1) (2)
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
三、实验平台
Fortran PowerStation4.0
N=0
DO I=100,1000,1
DO J=2,I-1,1
K=MOD(I,J)
IF(K==0)EXIT
IF(J==I-1)THEN
N=N+1
SUM=SUM+I
ENDIF
ENDDO
ENDDO
PRINT*,"100到1000内素数的个数为:",N
PRINT*,"100到1000内素数之和为:",SUM
班级·学号姓名实验日期任课教师
实验名称
实验七派生类型和指针程序设计
操作型
一、实验目的
(1)掌握结构体的概念、定义、格式及引用和初始化方法;
(2)掌握结构体数组的定义;
(3)掌握指针的概念、定义格式和使用;
(4)理解动态变量的含义。
二、实验内容:
1、有以下程序:
IMPLICIT NONE
TYPE person
END DO
END
运行程序,输入以下数据:
“Lister”,876,451,123
“Angel”,746,523,23
“Billy”,912,551,243
“Henry”,926,660,314
“Ervine”,676,481,103
“Ford”,816,351,89
“George”,936,451,145
“Mailer”,766,480,98
“Philip”,880,560,168
“Victor”,660,440,86
输出结果为:。
2、以下程序用于在屏幕上输出如下图形:
1
21
32 1
43 2 1
54 3 2 1
IMPLICIT NONE
INTEGER,POINTER::p(:)
INTEGER,TARGET::X(5,5)
操作型
一、实验目的
(1)掌握语句函数的定义及引用方法、函数子程序和子例行子程序的结构和调用方法;
(2)掌握FORTRAN程序单元间的数据传递方法。
二、实验内容:
(1)若Fibonacci数列的第n项记为fib(a,b,n),则有下列的递归定义:
fib(a,b,1)=a
fib(a,b,2)=b
fib(a,b,n)=fib(b,a+b,n-1) (n>2)
班级·学号姓名实验日期任课教师
实验名称
实验九综合程序设计
综合型
一、实验目的
综合运用所学知识,掌握利用FORTRAN语言解决实际问题的方法。
二、实验内容:
1、编写程序:输入30名学生一门课的考试成绩,以0~9分,10~19分,…90~99分,100分为分数段,统计各分数段的人数。
2、用迭代法求一非线性方程x-1+sinx=0在1.0附近的一个实根,精度要求为10-5。迭代格式为:
,直到第n项的绝对值小于 为止。
三、实验平台
Fortran PowerStation4.0
四、程序清单
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验五数组操作
操作型
一、实验目的
(1)掌握数组的定义及赋值和输入输出的方法;
(2)熟悉数组在内存中的存储顺序(按列存储);
(3)掌握数组赋初值的方法;
(4)掌握与数组有关的算法。
二、实验内容:
(1)编写程序,利用冒泡排序法把输入的一列无序的数据按由小到大的顺序排列。
(2)编写程序,其功能是:计算给定的20个数据与平均值之差的绝对值之和。
DEMENSION A(20)
DATA A/3.5,1.5,-2.5,4.5,2.5,3.0,5.5,-6.5,3.5,2.5,&
(2)编写程序,输入一个自然数,若为奇数则输出其平方根,否则输出其立方根。
三、实验平台
Fortran PowerStation4.0
四、程序清单
program shiyan2_2
real::I,
read*,I
if(mod(I,2)==o)then
print*,I**0.333
else
print*,I**0.5
READ*,I
END
PROGRAM SHIYAN3_2
INTEGER::N,S,I,Y,M,SUM
READ*,M