FORTRAN95程序设计实验
fortran95程序设计

fortran95程序设计
Fortran95一门面向应用的编程语言,用于开发科学和工程应用软件,它继承了Fortran77的优点,又增添了很多新特性。
这些特性大大改善了编程效率,使Fortran95程序设计更加灵活、更具有扩展性。
首先,Fortran95可以使用动态数组和变量名数量(变量名的长度从6个字符提高到32个字符),这样就可以更加清楚地定义问题和程序功能。
此外,Fortran95中允许使用数据类型,它允许开发者使用自定义数据类型,这样可以更加清楚地描述程序的结构和功能。
其次,Fortran95支持更多的编程模型,如结构化编程,面向对象编程,组件设计,它使程序设计变得更具灵活性,能够更有效地编写程序代码,从而提高程序的执行效率。
此外,Fortran95还提供了许多存储器管理的功能,以更好地实现内存的动态分配和释放,使程序运行更快。
它还提供了一些语言特征,如变量的定义和数组的声明,能够更好地维护程序的可读性和可维护性。
另外,Fortran95还具有跨平台功能,允许用户在不同的操作系统之间迁移程序,以及在不同的系统上并行运行程序,这些特性也可以提高程序的性能。
总之,Fortran95拥有许多功能,可以提升程序设计的效率,使软件开发变得更具可移植性和可扩展性。
正因为有了这些优点,Fortran95有着广泛的应用,为科学和工程软件开发提供了强大的技
术支持。
FORTRAN语言程序设计——FORTRAN95

教材目录
(注:目录排版顺序为从左列至右列 )
教学资源
该教材有配套的实验指导书——《FORTRAN95程序设计实验指导与测试》。 该教材还提供电子课件等资源。
教材特色
该教材以程序设计为主线,以编程应用为驱动,通过案例和问题引入知识点,重点讲解程序设计的思想和方 法。书中所有程序实例都是由教师在多年授课过程中挑选所得,并采用Microsoft Develop Studio集成开发环 境。为适应不断更新的计算机操作系统,在实验教材中还给出了Windows 7、Windows 10操作系统下使用Visual Fortran的上机操作过程。
全书共14章,主要内容有: FORTRAN95概述及编译环境的介绍、FORTRAN95程序设计基础、顺序结构程序设 计、选择结构程序设计、循环结构程序设计、数组、函数与子程序、文件、派生类型与结构体、指针、模块、常 用数值算法。
成书过程
修订情况
ห้องสมุดไป่ตู้出版工作
该教材由王丽娟、段志东主编,李玉龙主审。第1、2、12、14章由王红鹰编写,第3、5、6、7章由陈权编写, 第9、11、13章和附录A由段志东编写,第4、8、10章和附录B由王丽娟编写。
该教材在规划和编写过程中得到了兰州交通大学教务处、计算机教学示范中心、电信学院、继续教育学院、 土木工程学院的领导和教师们的支持。
2017年9月1日,该教材清华大学出版社出版。
内容简介
该教材介绍FORTRAN95的语法规则以及利用它进行程序设计的方法。全书共14章,主要内容有: FORTRAN95 概述及编译环境的介绍、FORTRAN95程序设计基础、顺序结构程序设计、选择结构程序设计、循环结构程序设计、 数组、函数与子程序、文件、派生类型与结构体、指针、模块、常用数值算法。另外,还扩充了计算思维和计算 机系统组成的相关知识。
FORTRAN95程序设计实验

FORTRAN95程序设计实验FORTRAN95的基本语法包括变量定义、注释、循环和条件判断等。
在FORTRAN95中,变量可以通过关键字"INTEGER"、"REAL"和"CHARACTER"等进行定义。
例如,以下语句定义了一个整型变量A和一个浮点型变量B:INTEGER::AREAL::B注释可以通过用一个感叹号(!)开头进行标识。
例如:!这是一个注释循环可以使用关键字"DO"和"ENDDO"来实现。
例如,以下代码展示了一个简单的循环,计算了1到10的和:INTEGER::I,SUMSUM=0DOI=1,10SUM=SUM+IENDDO条件判断可以使用关键字"IF"、"THEN"、"ELSE"和"ENDIF"来实现。
例如,以下代码展示了一个简单的条件判断,判断一个数是否为正数:INTEGER::NUMREAD(*,*)NUMIF(NUM>0)THENPRINT*,"该数为正数"ELSEPRINT*,"该数为非正数"ENDIF在FORTRAN95中,还有其他的语法和特点,如数组、函数、子程序等。
下面的实例将展示如何使用FORTRAN95编写一个计算圆面积和周长的程序。
PROGRAM CircleREAL :: PI, R, Area, CircumferencePRINT*,"请输入半径:"READ(*,*)RArea = PI * R**2Circumference = 2 * PI * RPRINT *, "圆的面积为:", AreaPRINT *, "圆的周长为:", CircumferenceEND PROGRAM Circle以上程序首先定义了一个实数变量PI、半径R、面积Area和周长Circumference。
fortran 95程序设计

fortran 95程序设计
Fortran 95程序设计是一门针对科学计算和工程学科的高级编程语言。
这门语言的设计目的是为了提供一种简洁、高效、易于实现和易于维
护的编程环境,以便于开发出更高质量的科学计算和工程解决方案。
Fortran 95的特点之一是其输入输出,因为它可以使用多种方式输入
和输出数据,使程序的编写更加简单而不失灵活性。
另一个特点是其
令人宜人的书写风格,使得代码的可读性和可维护性得到了更好的保障。
此外,Fortran 95还支持模块化编程,由于模块被编写为独立的
实体,因此可以更好地调试和修改源代码。
在Fortran 95代码中,程序员使用各种算法和数学技术来解决问题。
这门语言不仅提供了一些基本的算法和数据结构,还支持数组操作、
字符串操作、位操作等高级操作。
它的函数式编程能力也很强,可以
使程序更加高效、简洁和易于维护。
虽然Fortran 95在以往的几十年中已经被不断地改进和扩展,但是它仍然存在一些问题。
例如,它只支持有限的异常处理机制,无法处理
不同层级的异常。
此外,一些新的编程语言,如Python和R,已经逐渐取代了Fortran在科学计算和工程学科中的地位。
总之,Fortran 95程序设计是一门高级编程语言,具备简洁性、高效性、易实现性和易维护性的特点。
虽然它可能存在一些缺陷和限制,但是对于需要高效可靠的科学计算和工程解决方案的行业和领域,Fortran 95仍然是一个很好的选择。
fortran95课程设计

fortran95课程设计一、课程目标知识目标:1. 理解Fortran 95编程语言的基本概念和语法结构;2. 掌握Fortran 95的数据类型、变量声明和运算符使用;3. 学会使用控制结构(如循环、条件语句)进行程序设计;4. 了解数组、函数和子程序在Fortran 95中的应用。
技能目标:1. 能够编写简单的Fortran 95程序,实现基本的输入输出功能;2. 能够运用控制结构进行逻辑判断和循环操作;3. 能够使用数组进行批量数据处理;4. 能够编写简单的函数和子程序,实现代码的模块化。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发自主学习编程的热情;2. 培养学生严谨、细致的编程习惯,注重代码的可读性和效率;3. 培养团队合作精神,学会在编程过程中与他人交流、协作;4. 提高学生的逻辑思维能力,培养解决实际问题的能力。
课程性质:本课程为计算机编程入门课程,以Fortran 95编程语言为载体,培养学生编程技能和逻辑思维能力。
学生特点:学生处于初中或高中阶段,具备一定的数学基础,对编程感兴趣,但可能缺乏实际编程经验。
教学要求:教师应注重理论与实践相结合,以实例为主线,引导学生掌握编程技能,培养编程兴趣。
同时,关注学生的个体差异,提供针对性的指导和支持。
通过本课程的学习,使学生能够达到上述课程目标,为后续编程学习打下坚实基础。
二、教学内容1. Fortran 95基础语法- 程序结构- 数据类型与变量声明- 运算符与表达式- 基本输入输出操作2. 控制结构- 选择结构(IF语句)- 循环结构(DO循环、WHILE循环)3. 数组与函数- 数组的基本操作与应用- 内置函数与自定义函数- 子程序与模块化编程4. 实践项目与案例分析- 简单的计算器程序- 温度转换程序- 数组排序程序- 函数与子程序的应用实例5. 编程规范与调试技巧- 编码规范与命名规则- 调试方法与技巧- 性能优化建议教学内容安排与进度:第一周:Fortran 95基础语法及程序结构第二周:数据类型与变量声明、运算符与表达式第三周:基本输入输出操作、选择结构(IF语句)第四周:循环结构(DO循环、WHILE循环)第五周:数组的基本操作与应用第六周:内置函数与自定义函数、子程序与模块化编程第七周:实践项目与案例分析(计算器程序、温度转换程序等)第八周:编程规范与调试技巧、性能优化本教学内容根据课程目标制定,涵盖了Fortran 95编程语言的核心知识点,通过理论与实践相结合的方式,使学生能够逐步掌握编程技能,培养解决实际问题的能力。
Fortran95实验指导 实验八 子程序

实验八 函数与子例行程序子程序是FORTRAN95提供的重要功能之一,FORTRAN95允许用户自己定义子程序,允许用户通过子程序设计和编写程序。
在设计和编写一个复杂的程序时,通常需要使用科学的程序设计方法,如:结构化程序设计方法、模块化程序设计方法、面向对象程序设计方法等,子程序功能完全支持结构化和模块化程序设计方法,结构化和模块化程序设计方法可通过子程序得到应用。
使用子程序可提高程序的可读性、可理解性、可维护性和可修改性,是编写高质量、高水平、高效率程序的有效手段。
子程序分内部子程序和外部子程序。
内部子程序是包含在程序单元CONTAINS 结构中的子程序,只有定义它们的程序单元才能调用执行它们。
内部子程序包括函数子程序和子例行程序两类,通常将函数子程序简称为函数,子例行程序简称为子程序。
本次实验是学习和掌握子程序的一次系统实验活动。
通过本次实验,能够熟练使用语句函数、内部子程序、外部子程序设计和编写程序,求解比较复杂的实际问题。
一、实验目的1.了解函数的有关基本概念,如:函数名称、函数自变量、函数调用、函数表达式等。
2.掌握语句函数定义、调用、参数的基本内容和使用规则。
3.掌握使用语句函数设计和编写程序的方法。
4. 了解内部子程序的有关基本概念,如:定义、调用、形式参数、实在参数、参数传递关系等。
5. 掌握内部子程序定义、调用、形式参数、实在参数、参数传递的基本内容和使用规则。
6. 掌握结构化程序设计方法。
7. 掌握使用内部子程序设计和编写程序的方法。
8. 了解递归概念,掌握递归问题的求解方法。
9. 掌握递归子程序定义、调用、参数传递关系的基本内容和使用规则。
10. 了解外部子程序概念,掌握并行、协调、合作编写大型复杂程序的方法。
11. 掌握外部子程序定义、调用、参数传递关系的基本内容和使用规则。
12. 掌握使用递归和外部子程序设计和编写程序的方法二、实验内容11、问题描述在解决某工程计算问题时,遇到下列函数:2()12y x x x =++2()f x =()p x =()q x =计算x=0.1,0.2,0.3时,上述函数的值,并输出。
基于Fortran95的SIMPLE程序设计

Ke r s SMP ;F r n 5 9 ;p ga n ;n meia h a ll fr y wo d : I L E ot 9 /0 r rmmig u rcl e t 'l e a r o tts l
0 引言
SMP正 ( I I 一mpii Me o o rsue Ln e I l t td frPe sr ik c h d
装数据的功能的运用; 删除了所有功能强大但易破坏程序结构的 C T , O语句; O 一些比较符合结构化编程的新的语句
块 的运用 ; ra 5中增强 了的数组功能在待求数组赋初值 、 F tn or 9 设定边 界条件 等方 面的运用 等 。并 通过实 例进行 了新
旧两种编程方法的对比。结果表明基于新语法的程序具有 比原有程序更易维护、 可读性好的特点。 关键词 : Байду номын сангаас L 算法 ; ra 5 0程序设计 ; S PE I F tn / ; or 9 9 数值传热学
Fra 作为一门高级 编程语 言 , or tn 是最适合 用于
科学计算 的。正因此 N T的教学 中使用 的程 序多 H E utn) q aos算法是数值传热学 ( H ) i N r里最基本也是最
重要的算法。这一算法及其各种改进方案在世界各 由 Fra or tn编制。Fra6 o r 6和 Fra 7 tn or 7 都是这 门语 tn 言相 当成熟 的标 准 , 自都 流行 了十几年 。但是 各
Fra6 不是结构化的语 言 , o- 6 en 没有直接实现三种基
中圈分 类号 :K 2 T 14 文献 标识 码 : A
L n,DA a rY, I IO N ie 删 Y .i Mi . uqu 2
FORTRAN95第三章循环程序设计

FORTRAN95第三章循环程序设计第三章的内容包括:1.DO循环:DO循环是FORTRAN中最基本的循环结构。
它允许我们指定循环变量的初始值、结束值和步长。
在每次循环迭代时,循环变量都会自动更新,并且在达到结束值时退出循环。
2.嵌套循环:FORTRAN也支持嵌套循环,这是在一个循环内部使用另一个循环。
嵌套循环使得我们能够处理更加复杂和具有分层结构的问题。
3.WHILE循环:FORTRAN还提供了类似于其他编程语言中的WHILE循环。
WHILE循环允许我们在循环前先检查一个条件,并且只要条件为真,就会继续执行循环体。
4.无限循环:有时候需要创建一个无限循环,即一个永远不会结束的循环。
在FORTRAN中,我们可以使用无条件的循环退出语句来跳出循环。
5.循环控制:在循环内部,我们可以使用控制语句来控制循环的执行方式。
这些控制语句包括CONTINUE、EXIT、CYCLE和END。
6.循环的应用:循环结构在许多数学和科学计算问题中都有广泛应用,如求和、求平均值、计算阶乘、寻找最大和最小值等。
循环程序设计是编程中非常重要的一部分,因为它可以帮助我们处理大数据集和执行复杂算法。
FORTRAN95提供了一系列强大的循环结构,使得我们能够更加灵活和高效地处理各种问题。
在循环程序设计中,重点应该放在优化循环的执行。
通过合理地选择循环变量的初始值、结束值和步长,以及使用合适的循环控制语句,可以使循环更加高效。
此外,避免在循环体内进行过多的计算和IO操作,可以减少循环的执行时间。
总之,循环程序设计是编程中一个基本但重要的概念。
FORTRAN95提供了丰富的循环结构和控制语句,使得我们能够更加高效地处理各种问题。
在实际应用中,我们应该根据具体问题的要求,合理选择和优化循环结构,以求得更好的性能和效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
read*,income
select case(income)
case(0:1000)
income_rate=income*rate_1
print*,'缴纳的税为:',income_rate
case(1001:2000)
income_rate=income*rate_2
Fortran95
程序计实验
班级:核工11
姓名:薛院院
学号:2110302026
实验一
一.实验内容
一个边长为8.5m的边形草地。计算八边形草地的面积并输出。
二.问题分析(流程图)
三.程序
!核工程11
!薛院院
!2013.03.11
!计算8边形的面积
PROGRAM COLUMATE
REAL(4) A !定义边长
实验四
一.实验内容
计算 + - ……+ ,其中n满足1+
二.问题分析(流程图)
三.程序
!班级:核工11
!姓名:薛院院
!日期:4.8
!计算级数之和
program main
real::sum=1,term,sign=1,s=0
integer::a,i,n=0
print*,'请输入一个较大的数(如10000)'
read*,n
print'(a,i2,a)','请输入',n,'个整数:'
read*,(a(i),i=1,n)
end subroutine
!数据输出子程序
subroutine output(a,n)
integer a(n),n
print*,a
end subroutine
!整数排序子程序
subroutine sort(a,n)
integer a(n),n
integer :: i, j, m, t
do i =1,n
m = i
do j = i+1, n
if (a(j) < a(m)) then
m = j
end if
end do
if (i /= m) then
t = a(i)
a(i) = a(m)
a(m) = t
end if
enddo
do i=1,n
read*,number(i),english(i),math(i),physics(i)
averages(i)=(english(i)+math(i)+physics(i))/3.0
sum1=sum1+english(i)
sum2=sum2+math(i)
sum3=sum3+physics(i)
enddo
i=i+1
enddo
end subroutine
!统计奇函数
function odd(a,n)
integer a(n),n,odd,oddl
oddl=0
do i=1,n
if(mod(a(i),2)==1)oddl=oddl+1
enddo
odd=oddl
endfunction
!统计偶函数
function even(a,n)
integer a(max),n,n1,n2
call input(a,n)
call sort(a,n)
n1=odd(a,n)
n2=even(a,n)
print*,'这批整数'
call output(a,n)
print*,'这批整数的奇数个数为:',n1
print*,'这批整数的偶数个数为:',n2
call dele(a,n)
endif
enddo
print*,'计算的该数值为:x=',x(j)
end
四.实验结果
实验八
一.实验内容
对一组数字进行处理
二.问题分析(流程图)
三.程序
!班级:核工11
!姓名:薛院院
!学号:2110302026
!日期:2013.4.7
!主程序
program main
parameter (max=50)
end subroutine
subroutine dele(a,n)
integer a(n),n,i,j
i=1
do while(i<n)
j=i+1
do while(j<=n)
if (a(i)==a(j)) then
do k=j+1,n
a(k-1)=a(k)
enddo
n=n-1
else
j=j+1
endif
write(*,100)'数学',n2,p2*100
write(*,100)'物理',n3,p3*100
write(*,100)'三门课',nn,pp*100
100 format(1x,'高于',a,'平均成绩的学生人数有',i2,'人,占总人数比例',f8.2,'%')
end
四.实验结果
实验六
一.实验内容
REAL(8) B,P
INTEGER(1) NUMBER !定义边数
REAL(8) AREAL !定义面积
PRINT*,'请输入多边形的边数'
READ*,NUMBER
PRINT*,'请输入多边形的边长'
READ*,A
B=A/2/sin(3.14/NUMBER)
P=A/2+B
AREAL=SQRT(P*(P-A)*(P-B)**2)
PRINT*,'该多边形的面积为:',AREAL
END
!输入边数8;输入边长8.5
!输出结果:43.631297090078
四.实验结果
实验二
一.实验内容
计算还清贷款的月算
二.问题分析
三.程序
!核工程11
!薛院院
!2013.03.11
!计算还清贷款的月数
!PROGRAM CALUCATE
REAL P,D,R,M
二.问题分析(流程图)
三.程序
!核工11
!薛院院
!2110302026
!计算应该缴纳的税
program calucate_money
integer income
real::income_rate
real::rate_1=0.03,rate_2=0.05,rate_3=0.07,rate_4=0.10,rate_5=0.14,rate_6=0.20
三.程序
!班级:核工11
!姓名:薛院院
!学号:2110302026
!日期:4.8
program main
parameter(max=1000)
real x(max)
i=1
x(1)=1.5
do i=1,1000
j=i+1
if(abs(x(j)-x(i))>10e-7) then
x(j)=x(i)-f(x(i))/f1(x(i))
real::sum1=0,sum2=0,sum3=0
integer(1)::n,n1=0,n2=0,n3=0,nn=0
real::p1,p2,p3,pp
print*,'请输入学生人数'
read*,n
print*,'请输入',n,'名学生的学号、英语、数学、物理成绩'
print*,'数据之间用空格间隔。学号为长度为5的字符串,用引号括住'
enddo
english_ave=sum1*1.0/n
math_ave=sum2*1.0/n
physics_ave=sum3*1.0/n
average=(english_ave+math_ave+physics_ave)/3.0
do i=1,n
if(english(i)>english_ave)n1=n1+1
read*,a
do while(s<=a)
n=n+1
s=s+n**2
enddo
do i=1,n
sign=-1*sign
term=sign/i
sum=sum-term
enddo
print*,sum
end
四.实验结果
实验五
一.实验内容
计算学生的平均成绩,每门课的平均成绩,三门课的平均成绩以及统计高于每门课的成绩和三门平均成绩的学生人数和占总人数的比例
do i=1,n
read*,x(i)
enddo
print 100,x
do i=1,n
t=x(1)
do j=2,n
x(j-1)=x(j)
enddo
x(n)=t
print 100,x
enddo
100 format(4i2)
end
四.实验结果
实验七
一.实验内容
用牛顿迭代法求解方程 在x=1.5附近的值
二.问题分析(流程图)
if(math(i)>math_ave)n2=n2+1
if(physics(i)>physics_ave)n3=n3+1
if(averages(i)>average)nn=nn+1