Fortran90几个重要的实验报告.docx
《Fortran90几个重要的实验报告.docx》由会员分享,可在线阅读,更多相关《Fortran90几个重要的实验报告.docx(43页珍藏版)》请在冰点文库上搜索。
![Fortran90几个重要的实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/a6bce803-585f-49c2-a961-8d7588f49c00/a6bce803-585f-49c2-a961-8d7588f49c001.gif)
Fortran90几个重要的实验报告
Fortran90语言程序设计
上机实验报告
河南科技大学
规划与建筑工程学院
班级:
工力112
姓名:
学号:
111409070210
成绩:
2013年5月19日
实验一
(1)熟悉FORTRAN90软件开发环境
一.实验目的
1.了解FORTRAN90与软件开发环境的关系。
2.掌握FORTRAN90上机实验基本操作过程。
3.掌握FORTRAN90软件开发环境启动方法。
4.理解有关工作区、项目、文件的基本概念。
5.掌握工作区、项目、文件创建方法。
6.熟悉CompaqVisualFortran软件开发环境图形用户界面。
7.掌握程序的输入、编辑、编译、构建、运行方法。
8.了解软件开发环境常用菜单、工具按钮、环境窗口基本功能。
9.掌握文件、文件夹的移动、复制、删除等操作方法。
二.课堂实验内容
1.问题描述
现有长1500米,宽1000米的地块要拍卖建造住宅小区,地块中央有一半径为100米的圆形公共绿地不属于拍卖范围,每平方米地价为5000元。
编写程序计算该地块拍卖总价,并输出。
要求地块长宽和绿地半径数据从键盘输入。
2.算法设计
通过对该问题的分析研究,设计求解算法,并绘制流程图如图1-1所示
结束
图1-1计算地块总价程序流程图
3.程序编写
根据算法和流程图,设计和编写程序如下:
ØØ !
班级:
工力112
ØØ !
姓名:
ØØ !
时间:
201304
ØØ !
计算加油站月销售额
ØØ PROGRAMmain
ØØ PARAMETER(pi=3.1415)
ØØ INTEGER:
:
number
ØØ REAL:
:
cubage,volumes,sale
ØØ REAL:
:
radius=5.0,heigh=3.0,unitprice=500.0
ØØ PRINT*,’请输入月销售油罐数量:
’
ØØ READ*,number
ØØ cubage=pi*radius*radius*heigh
ØØ volumes=cubage*number
ØØ sale=volumes*unitprice
ØØ PRINT*,‘加油站月销售额:
’,sale,’元。
’
ØØ END
4.运行结果
请输入月销售油罐数量:
4
加油站月销售额:
471225.0元。
Pressanykeytocontinue
三.课外练习
1.问题描述.
1.有一半径为5,高为20的圆柱型物体,求圆柱体积,并输出。
编写程序实现之。
2.有一半径为5,高为20的圆锥型物体,求圆锥体积,并输出。
编写程序实现之。
2.算法设计
结束
3.程序编写
程序2:
ØØ !
班级:
工力112
ØØ !
姓名:
ØØ !
时间:
2101304
ØØ !
计算圆锥体积
ØØ PROGRAMmain
ØØ PARAMETER(pi=3.1415)
ØØ REAL:
:
r,h,V
ØØ PRINT*,’请输入圆锥底半径和高:
’
ØØ READ*,r,h
ØØ V=pi*r*r*h/3
ØØ PRINT*,‘圆锥体积:
’,V
ØØ END
根据流程图,分别编写求解上述两问题的程序:
程序1、程序2。
程序1:
ØØ !
班级:
工力112
ØØ !
姓名:
ØØ !
时间:
201304
ØØ !
计算圆柱体积
ØØ PROGRAMmain
ØØ PARAMETER(pi=3.1415)
ØØ REAL:
:
r,h,V
ØØ PRINT*,’请输入圆柱底半径和高:
’
ØØ READ*,r,h
ØØ V=pi*r*r*h
ØØ PRINT*,‘圆柱体积:
’,V
ØØ END
4.运行结果
请输入圆柱底半径和高:
5,20
圆柱体积:
1570.750
Pressanykeytocontinue
请输入圆锥底半径和高:
5,20
圆锥体积:
523.5833
Pressanykeytocontinue
实验一
(2)掌握FORTRAN90基础知识
一.实验目的
1.了解FORTRAN90字符集。
2.掌握FORTRAN90实体名称的语法描述规则和具体使用要求。
3.了解FORTRAN90关键字意义,以及与名称的区别。
4.掌握FORTRAN90程序组织结构和语句排列次序的基本原则。
5.掌握FORTRAN90自由书写格式及三个标志符的主要作用。
6.理解数据、数据表示、数据类型概念,熟悉FORTRAN90数据类型。
7.进一步熟
二.课堂实验内容
1.问题描述
有一呈等腰梯形的鱼塘,上底边长为150米,下底边长为210米,高为40米,在鱼塘周围建起了围墙,如图2-1所示。
每平方米鱼塘产鱼4公斤,每公斤鱼的价格为10元。
编写程序计算该鱼塘的产量和产值,以及围墙的长度。
要求梯形的上底边长、下底边长、高从键盘输入。
c
图2-1鱼塘示意图
2.算法设计
结束
3.程序编写
ØØ !
班级:
工力112
ØØ !
姓名:
ØØ !
时间:
201304
ØØ !
计算鱼塘产量和产值
ØØ PROGRAMmain
ØØ INTEGER:
:
p=4,q=10
ØØ REAL:
:
a,b,c,h
ØØ REAL:
:
area,perimeter,yield,sales
ØØ PRINT*,’请输入梯形鱼塘的上底、下底和高值:
’
ØØ READ*,a,b,h
ØØ area=(a+b)*h/2
ØØ yield=area*p
ØØ sales=yield*q
ØØ c=SQRT(((b-a)/2)*((b-a)/2)+h*h)
ØØ perimeter=a+b+2*c
ØØ PRINT*,‘鱼塘产量:
’,yield,’公斤。
’
ØØ PRINT*,‘鱼塘产值:
’,sales,‘元。
’
ØØ PRINT*,‘围墙长度:
’,perimeter,‘米。
’
ØØ END
Ø
4.运行结果
请输入梯形鱼塘的上底、下底和高值:
150,210,40
鱼塘产量:
28800.00公斤。
鱼塘产值:
288000.0元。
围墙长度:
460.0000米。
Pressanykeytocontinue
三.课外练习
1.问题描述:
有一长5米、宽3米的长方形铁皮,在四个角对称挖了四个半径为0.2米的圆洞,根据需要对这块铁皮镀一层铜,镀铜的价格是每平方米50元。
计算镀铜费用。
2.算法设计
开始
输入矩形边长及圆洞半径:
length、width、radius
计算铁皮的面积:
area
计算镀铜费用:
rate
输出
3.程序编写
程序3-1:
ØØ !
班级:
工力112
ØØ !
姓名:
ØØ !
时间:
201304
ØØ !
计算镀铜费用
ØØ PROGRAMmain
ØØ INTEGER:
:
p=50
ØØ REAL:
:
length,width,radius
ØØ REAL:
:
area,rate
ØØ PRINT*,’请输入铁皮长宽和圆洞半径:
’
ØØ READ*,length,width,radius
ØØ area=length*width-4*3.1415*radius**2
ØØ rate=p*area
ØØ PRINT*,‘镀铜费用:
’,rate
ØØ END
4.运行结果
请输入铁皮长宽和圆洞半径:
5,3,0.2
镀铜费用:
724.8680
Pressanykeytocontinue
实验二
(1)内部数据类型与简单顺序程序设计
1.实验目的
1.了解内部数据类型及其KIND值参数概念。
2.掌握常量、变量、表达式、赋值语句的语法规则和基本功能。
3.掌握常用标准函数的基本功能和使用要求。
4.掌握表控输入输出的基本功能和使用要求。
5.掌握顺序结构概念和顺序结构程序设计方法。
进一步熟悉软件开发环境和掌握程序的输入、编辑、编译、构建和运行方法。
二.课堂实验内容
1.问题描述
已知两复数:
3.5+4.8i、7.5-3.2i。
计算其和、差、积、商,并输出计算结果。
编写程序实现之。
要求两复数从键盘输入。
2.算法设计
开始
输入两个复数:
c1,c2
计算两数之和并赋值于a
计算两复数之差并赋值于b
计算复数之积赋值给c
计算复数之商赋值给d
输出a,b,c,d
结束
3.程序编写
根据算法和程序流程图,设计和编写程序如下。
Ø!
班级:
工力112
Ø!
姓名:
Ø!
时间:
201304
Ø!
计算两复数的和、差、积、商
ØPROGRAMmain
ØCOMPLEX:
:
c1,c2
Øcomplex:
:
a,b,c,d
ØPRINT*,’请输入两个复数:
’
ØREAD*,c1,c2
Øa=c1+c2;b=c1-c2
Øc=c1*c2;d=c1/c2
ØPRINT*,‘复数之和:
’,a
ØPRINT*,‘复数之差:
’,b
ØPRINT*,‘复数之积:
’,c
ØPRINT*,‘复数之商:
’,d
ØEND
Ø!
复数变量占有8字节
4.运行结果
请输入两个复数:
3.5004.8007.500-3.2
复数之和:
(11.00000,1.600000)
复数之差:
(-4.000000,8.000000)
复数之积:
(41.61000,24.80000)
复数之商:
(0.1637840,0.7098812)
Pressanykeytocontinue
三.课外练习
1.问题描述
某炮兵阵地,某次使用大炮向敌人阵地猛烈发射炮弹。
炮弹的运行轨迹满足方程:
f(x)=-0.0000125x2+0.07x-50,计算炮弹能打击的最大高度和最远距离。
编写程序实现之。
问题分析:
(提示)
x1
设:
y=f(x)=ax2+bx+c,轨迹线为一抛物线,如图3-5所示。
ymax
图3-5一元二次方程轨迹曲线
一元二次方程求根公式为:
假定方程只有两个不同实数根。
2.算法设计
开始
请输入a,b,c
计算两根x1,x2
计算射程length和最大高度
输出射程和最大高度:
length、h
结束
!
班级:
工程力学112
!
姓名:
!
时间:
20130426晚上
!
计算计算大炮的最大打击高度和最远距离,并输出
PROGRAMmain
REAL:
:
a,b,c,d,x1,x2,x
REAL:
:
length,h
PRINT*,'请输入方程参数a,b,c'
READ*,a,b,c
d=b*b-4*a*c
x1=(-b+SQRT(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
x=0.5*(x1+x2)
h=a*x*x+b*x+c
length=x2-x1
PRINT*,'最大高度是:
','h=',h
PRINT*,'最远射程是:
','length=',length
END
3.程序编写
4.运行结果
请输入方程参数a,b,c
-0.0000127,0.07,-50
最大高度是:
h=46.45669
最远射程是:
length=3825.183
Pressanykeytocontinue
实验二
(2)数据有格式输入输出
一.实验目的
1. 了解数据有格式输入输出的主要作用、基本方法和使用规则。
2.掌握数据有格式输入输出语句(READ、PRINT、WRITE)的基本功能和语法规则。
3.掌握格式说明语句(FORMAT)的基本功能和语法规则。
4.掌握I、F、E、A、L、X、/、\等若干常用格式编辑符的格式要求和基本功能。
5.掌握数据有格式输入输出的数据组织和格式说明方法。
6.进一步掌握顺序结构程序设计方法。
7.进一步熟悉软件开发环境。
二.课堂实验内容
1.问题描述
通常需要计算(a+b)n的展开式系数,展开式系数满足杨辉三角关系。
计算并输出n=1,2,3,4,5时的展开式系数及系数之和,即下面的杨辉三角。
编写程序实现之。
字母“a”、字母“b”、二项式阶数n从键盘输入。
11
n=1112
n=21214
n=313318
n=41464116
n=51510105132
要求输入输出数据以规范、整洁、直观形式给出。
程序中应采用有格式输入输出。
二项式阶数n为2位整数,项符号为长度等于1的字符,系数为3位整数,系数和4位整数。
2.算法设计
开始
根据提示输入二项式第一、二项字母和阶数:
x、y、n
计算n=1时二项式系数c11,c12及系数和s1
计算n=2时二项式系数c21,c22,c23及系数和s2
计算n=3时二项式系数c31,c32,c33,c34及系数和s3
计算n=4时二项式系数c41,c42,c43,c44,c45及系数和s4。
按输出格式要求输出数据。
计算n=5时二项式系数c51,c52,c53,c54,c55,c56及系数和s5。
结束
3.程序编写
!
班级:
工力112
!
姓名:
!
时间:
20105
!
计算并输出二项式系数(杨辉三角)
PROGRAMyanghui_triangle
INTEGER
(1):
:
n
INTEGER:
:
x,y
INTEGER:
:
c11=1,c12=1,s1
INTEGER:
:
c21=1,c22,c23=1,s2
INTEGER:
:
c31=1,c32,c33,c34=1,s3
INTEGER:
:
c41=1,c42,c43,c44,c45=1,s4
INTEGER:
:
c51=1,c52,c53,c54,c55,c56=1,s5
WRITE(*,"(1X,'请输入二项式第一项字母(1个字母):
',\)")
READ(*,"(A)")x
WRITE(*,"(1X,'请输入二项式第二项字母(2个字母):
',\)")
READ(*,"(A)")y
WRITE(*,"(1X,'请输入二项式阶数(2位整数):
',\)")
READ(*,"(I2)")n
s1=c11+c12
c22=c11+c12;s2=c21+c22+c23
c32=c21+c22;c33=c22+c23;s3=c31+c32+c33+c34
c42=c31+c32;c43=c32+c33;c44=c33+c34;s4=c41+c42+c43+c44+c45
c52=c41+c42;c53=c42+c43;c54=c43+c44;c55=c44+c45;s5=c51+c52+c53+c54+c55+c56
WRITE(*,"(1X,'下面给出(',A1,'+',A1,')1到',I2,'次方的展开式系数及系数之和。
')")x,y,n
WRITE(*,"(1X,'阶数',9X,'杨辉三角',7X,'系数之和')")
WRITE(*,"(1X,15X,I3)")1
WRITE(*,"(1X,'n=',I2,8X,2(1X,I3),9X,I4)")1,c11,c12,s1
WRITE(*,"(1X,'n=',I2,6X,3(1X,I3),7X,I4)")2,c21,c22,c23,s2
WRITE(*,"(1X,'n=',I2,4X,4(1X,I3),5X,I4)")3,c31,c32,c33,c34,s3
WRITE(*,"(1X,'n=',I2,2X,5(1X,I3),3X,I4)")4,c41,c42,c43,c44,c45,s4
WRITE(*,"(1X,'n=',I2,6(1X,I3),1X,I4)")5,c51,c52,c53,c54,c55,c56,s5
END
请输入二项式第一项字母(1个字母):
1
请输入二项式第二项字母(2个字母):
1,1
请输入二项式阶数(2位整数):
5
下面给出(1+1)1到5次方的展开式系数及系数之和。
阶数杨辉三角系数之和
1
n=1112
n=21214
n=313318
n=41464116
n=51510105132
Pressanykeytocontinue
4.运行结果
三.课外练习
1.问题描述
使用数据有格式输入输出功能,输出由4个字符abcd组成的图形。
编写程序实现之。
a
bb
cc
ddddddddddddd
cc
bb
a
问题分析:
(提示)
a、b、c、d四个字符可以是任意可显示字符,这四个字符从键盘输入得到。
若输入的四个字符为*、#、&、$,则输出结果为:
*
##
&&
$$$$$$$$$$$$$
&&
##
*
由相同字符组成的字符串,可用标准函数REPEAT(str,I)得到。
如REPEAT(‘$’,3)=‘$$$’。
2.算法设计
开始
结束
3.程序编写
4.运行结果
实验三
(1)选择结构序程序设计
一.实验目的
1. 熟悉关系表达式和逻辑表达式。
2.掌握逻辑IF、块IF、多支块IF、SELECT语句的语法规则和使用要求。
3.掌握嵌套选择结构和嵌套选择语句的使用要求和实现方法。
4.掌握选择结构概念和选择结构程序设计方法。
二.课堂实验内容
1.问题描述
计算下面分段函数的值,编写程序实现之。
x<0
x=0
x>0
2.算法设计
输入x的值
5.程序编写
Ø!
班级:
工力112
Ø!
姓名:
Ø!
时间:
201305
Ø!
计算分段函数的值
ØPROGRAMexample
ØREAL(4):
:
x,y
ØPRINT*,'请输入x的值:
'
ØREAD*,x
ØIF(x<0)THEN
Øy=exp(2*abs(x))+sin(x*3.14159/180)
ØELSEIF(x==0)THEN
Øy=2
ØELSE
Øy=x/sqrt(1+x*x)
ØENDIF
ØPRINT*,'y=',y
ØEND
4.
请输入x的值:
-5.8
y=109097.7
Pressanykeytocontinue
请输入x的值:
0
y=2.000000
Pressanykeytocontinue
请输入x的值:
5.8
y=0.9854601
Pressanykeytocontinue
运行结果
三.课外练习
1.问题描述
某商店对购货额为1000元以上(含1000元,下同),八折优惠;500元以上1000元以下,九折优惠;200元以上500元以下,九五折优惠;100元以上200元以下,九七折优惠;100元以下,不优惠。
输入购货额,计算优惠货款,并输出。
2.算法设计
开始
输入购物额x
假
真
x>1000
假
真
x>500
y=0.8*x
x>200
真
y=0.97*x
假
x>0
真
y=x
y=0.95*x
输出y
!
班级:
工程力学112
!
姓名:
!
时间:
201305
!
程序用途:
计算超市购物优惠金额
PROGRAMmain
real(4):
:
x,y
PRINT*,'请输入购货金额'
read*,x
IF(x>=1000)THEN
y=0.8*x
ELSEIF(X>=500)THEN
y=0.9*x
ELSEIF(X>=200)then
y=0.95*x
elseIF(X>=100)THEN
y=0.97*x
else
y=x
ENDIF
PRINT*,'优惠金额为:
',y
END
结束
3.程序编写
请输入购货金额
1200
优惠金额为:
960.0000
Pressanykeytocontinue
请输入购货金额
600
优惠金额为:
540.0000
Pressanykeytocontinue
请输入购货金额
250
优惠金额为:
237.5000
Pressanykeytocontinue
请输入购货金额
150
优惠金额为:
145.5000
Pressanykeytocontinue
请输入购货金额
50
优惠金额为:
50.00000
Pressanykeytocontinue
4.运行结果
请输入购货金额
1200
优惠金额为:
960.0000
Pressanykeytocontinue
请输入购货金额
600
优惠金额为:
540.0000
Pressanykeytocontinue
请输入购货金额
250
优惠金额为:
237.5000
Pressanykeytocontinue
请输入购货金额
150
优惠金额为:
145.5000
Pressanykeytocontinue
请输入购货金额
50
优惠金额为:
50.00000
Pressanykeytocontinue
实验三
(2)循环结构序程序设计
一.实验目的
1.掌握关系表达式和逻辑表达式。
2.掌握循环控制条件的描述。
3.掌握三种循环结构的特征及相互之间的等价转换。
4.掌握DO、DOWHILE语句的语法规则和使用要求。
5.掌握循环结构概念和循环结构程序设计方法。
二.课堂实验内容
1.问题描述
验证哥德巴赫猜想。
哥德巴赫提出,一个不小于6的偶数必定能表示为两个素数之和。
如:
8=3+5。
求6至20之间的所有偶数的两个素数之和。
编写程序实现之。
输出格式为:
6=3+3
8=3+5
10=3+7
10=5+5
……
开始
2.算法设计
请输入偶数n
从3开始验