Fortran第十四讲-GDB调试.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档