- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Fortran程序设计
第十四讲 习题课与GDB调试
复习第十三讲内容
旧版本的Fortran特性
格式:
1-5列是行号
第一列是C或者星号,表示本行为注释
第六列如果不是空白或0,表示续行
注释
有效语句位置
续行
旧版本
第一列用C或*
从第7列到72列
第6列非0为续行
Fortran90
!开始的行
从第1-132列
用表示续行
行号
在1-5列
每行程序的最前面
DATA语句的使用
变量初始化:
DATA a,b,c /1.0,2*2.0/
数组初始化:
REAL a(2,2)
DATA a /1.,2.,3.,4./ !按列优先
旧的PARAMETER 语句:
INTEGER SIZE
PARAMETER (SIZE=1000)
COMMON语句
用BLOCK DATA初始化COMMON块中的数据
BLOCK DATA initial
INTEGER var1,var2
COMMON /mydata/ var1,var2
DATA var1,var2 /1,2/
END BLOCK DATA
四条不必要的子程序特性
另一子程序的返回点
另一入口点
语句函数
将内置函数作为参数传递
语句函数
PAUSE
STOP
END
PAUSE语句
用于暂停程序的执行
已经在Fortran95中被删掉
STOP语句
用于终止程序的执行
可以在STOP后面加参数,形式如下:
STOP stop_value
例如:
STOP ‘Normal completion’
当终止时,会显示这个字符串
END语句
在Fortran90之前,所有的程序单元都用END结束
Fortran90以后,标准是用形如:
END PROGRAM
END MODULE
之类的语句
当然,也可以单用END
但是,内部过程和模块过程必须用
END SUBROUTINE和
END FUNCTION
算术IF语句
GOTO语句
计算GOTO语句
赋值GOTO语句
旧的DO循环与CONTINUE
多文件编译
14.1 迷宫的解法一
设置辅助数组的解法:
设置三个和maze数组一样结构的数组:
Step_maze 用于保存当前块在路径中的步数
Leave_direction 用于保存在路径中离开当前块的方向,0表示东面,1,2,3分别表示南西北
From_direction 表示从哪个方向到达当前块
过程列表:
Createmaze(maze,n) 创建一个随机的二维方阵maze(n,n),方阵的元素要么是0要么是1,1表示迷宫的通道,0表示迷宫的墙
Init_random_seed() 初始化随机数种子
Solve(maze,n) 在迷宫maze(n,n)中找到一条从maze(1,1)到maze(n,n)的路径,如果找不到,输出提示信息,找到就输出路径步骤
get_new_position(n,i,j,direction) 在数组direction中取得i,j的方向,并计算这个方向所对应的新的i,j值
check_direction(maze,n,i,j,direction,step_maze) 检查迷宫的下一个方向能否走的通
14.2 迷宫的解法二
在这个算法中,不设置辅助数组
用自定义的数据结构来保存在每个块上面的步数、方向等信息
TYPE :: maze_element
INTEGER :: road
INTEGER :: leave_direction
INTEGER :: from_direction
INTEGER :: step
END TYPE maze_element
14.3 迷宫的递归解法
见代码
14.4 Fortran程序的调试
程序的调试
程序没有语法错误,但是运行出错
程序运行结果和预期不符
程序运行结果的精度达不到要求
调试的方法:
在程序中增加调试语句,来输出一些中间结果
用调试软件
图形化的调试软件
命令行的调试软件
14.5 GDB的使用
如果需要调试程序,编译的时候添加-g选项
gfortran –g example.f90 –o example
生成的example.exe文件就是可执行文件
此时,可以输入
gdb example 进入调试程序
14.6 GDB 使用概述
GDB的命令可以输入help查看
输入命令时,可以不用输入完整的命令,只需要前面几个字母,当然,这前面几个字母应该唯一区分了该命令
输入一个或多个字母后,连按两次TAB键,可以列出所有以该字母打头的命令
14.7 在GDB中运行程序
r
run
可以在gdb中运行程序
14.8暂停与恢复程序运行
调试程序中,暂停程序运行是必须的,GD
您可能关注的文档
最近下载
- YS-900A-G故障录波及测距装置说明书.pdf VIP
- 建筑幕墙施工与验收规范讲解:课件示例.ppt VIP
- CSC-150数字式母线保护装置(国网六统一版本)说明书.pdf VIP
- 第8课 用制度体系保证人民当家作主 课件 中职高教版中国特色社会主义.pptx
- 丹佛斯双涡轮离心压缩机-应用手册-TT、TG.pdf VIP
- 《建筑幕墙工程施工技术》课件.ppt VIP
- 2023年全国社会保障基金理事会招聘考试真题.docx
- CSC-336C数字式非电量保护装置说明书.pdf VIP
- 中国银行房屋抵押贷款合同7篇.docx VIP
- 中国智能仓储市场调研报告(2025)-AIoT星图研究院.docx
原创力文档


文档评论(0)