实验12 递归与外部子程序.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:5 大小:168KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验12 递归与外部子程序.doc

实验12递归与外部子程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

----实验十二递归与外部子程序递归子程序是FORTRAN90新增的功能之一,递归子程序适用于对递归问题的求解。对于递归问题,使用递归子程序求解,将大大降低程序设计的难度。一般情况下,应尽可能将求解问题描述成递推或递归问题,以便使用递归子程序求解。递归子程序分递归函数子程序和递归子例行程序,递归子程序定义类似于普通子程序,不同之处是在FUNCTION或SUBROUTINE语句之前增加一个RECURSIVE属性关键字前缀。外部子程序是出现在主调程序单元之外的子程序,外部子程序和主程序可单独保存在不同的源程序文件中,可分别独立编译。外部子程序可用于大型复杂的程序设计,可实现多人并行(同时)、协调、合作开发大型复杂程序。使用外部子程序,有时需要在主调程序单元中通过EXTERNAL语句声明。外部子程序分外部函数子程序和外部子例行程序,外部子程序类似于普通子程序,不同之处是出现在主调程序单元之外。本次实验是学习和掌握递归和外部子程序的一次系统实验活动。通过本次实验,能够熟练使用递归和外部子程序设计和编写程序,求解比较复杂的实际问题。一.实验目的了解递归概念,掌握递归问题的求解方法。掌握递归子程序定义、调用、参数传递关系的基本内容和使用规则。了解外部子程序概念,掌握并行、协调、合作编写大型复杂程序的方法。掌握外部子程序定义、调用、参数传递关系的基本内容和使用规则。掌握使用递归和外部子程序设计和编写程序的方法。二.实验内容11.问题描述已知:计算当x=2.85,n=15时的函数值。使用递归函数求解该问题。编写程序实现之。x和n的值从键盘输入。2.算法设计函数f可用以下递推公式描述。根据递推公式,学生自行设计递归函数求解算法。3.程序编写根据递推公式和递推求解算法,学生自行编写程序,要求使用递归函数子程序实现。4.实验要求分析问题,设计算法,编写程序,要求使用递归函数子程序实现。函数计算必须使用递归函数子程序实现。输入输出数据采用有格式输入输出,使输入输出数据规范、醒目、简洁。在D盘上创建新工作区:shiyan12和新项目:xm121。在项目xm121内创建源程序文件:xm121.f90,同时在文件中编辑输入程序。在项目xm121内编译、构建、运行、调试程序。将输出结果以注释形式编辑输入到源程序文件xm121.f90末尾。5.实验步骤分析问题,设计算法,编写程序。启动软件开发环境MicrosoftDeveloperStudio。在D盘上创建新工作区:shiyan12。在工作区shiyan12内创建新项目:xm121。在项目xm121内创建源程序文件xm121.f90,编辑输入源程序文本。编译、构建、运行、调试程序,输入x和n的值:2.85,15,得到输出结果。输出结果以注释形式编辑输入到源程序文件末尾。三.实验内容21.问题描述已知勒让德多项式:计算当x=4.58,n=12时函数值。使用递归函数求解该问题。编写程序实现之。x和n的值从键盘输入。2.算法设计勒让德公式已经是一个递推公式,为了便于编写递归函数,可写成以下形式:根据递推公式,学生自行设计递归函数求解算法。3.程序编写根据算法,学生自行设计和编写程序,要求使用内部子例行程序实现。4.实验要求分析问题,设计算法,编写程序,要求使用递归函数子程序实现。在工作区shiyan12内创建新项目:xm122。在项目xm122内创建源程序文件:xm122.f90,同时在文件中编辑输入程序。在项目xm122内编译、构建、运行、调试程序。将输入数据和输出结果以注释形式编辑输入到源程序文件xm122.f90末尾。5.实验步骤分析问题,设计算法,编写程序。在工作区shiyan12内创建新项目:xm122。在项目xm122内创建源程序文件xm122.f90,编辑输入源程序文本。编译、构建、运行、调试程序,输入x和n的值:4.58,12,得到输出结果。将输出结果以注释形式编辑输入到源程序文件末尾。四.实验内容31.问题描述已知5×5矩阵A:12402018112517503045241614541548201038285219283542按以下要求完成操作:从键盘输入矩阵数据;从屏幕输出矩阵数据;将第2行与第4行交换;从屏幕输出交换后矩阵数据;求矩阵中绝对值最小元素值,及所在行号和列号;用绝对值最小元素值与所在行、列每个元素相加;从屏幕输出相加后矩阵数据;结束对于矩阵输入、矩阵输出、矩阵元素交换、求矩阵绝对值最小元素值、绝对值最小元素值与所在行列元素相加五类操作,