第5章流程控制与逻辑运算讲解.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章流程控制与逻辑运算讲解

* * GOTO所要跳跃的目的地,可以是程序代码中任何一个设置有“行代码”的地方,这个位置可以在GOTO命令的前面或是后面。 * * * * * PAUSE:这可以应用在当屏幕上要连续输出许多页的数据时,在该换页的地方加一个PAUSE,等用户看完一页数据后,按Enter键再来读下一页的资料。 CONTINUE:在Fortran 77中,如果把CONTINUE放在适当的地方,可以方便阅读程序代码。 STOP可以使用在当程序读取到不合理的输入时。 * * * * * * 5-4-3 PAUSE,CONTINUE,STOP PAUSE :暂停执行,直到用户按下Enter键才会继续执行。 CONTINUE: 继续向下执行程序,f90后很少使用 STOP:结束程序执行 * * 5-5 二进制的逻辑运算 二进制的逻辑运算和IF中的逻辑判断式不太相同,比较接近单纯的数学运算。 0 .and. 0 = 0 0 .and. 1 = 0 1 .and. 0 = 0 1 .and. 1 = 1 F90的库函数:IAND( ) IOR( ) 用来做二进制的AND和 OR运算,是把输入的两个整数中,同样位置的位进行逻辑运算。 a=2 !a等于二进制的010 b=4 !b等于二进制的100 c=iand(a, b) !c=0,也就是二进制的000 c=ior(a, b) !c=6,也就是二进制的110 * integer :: a a=B“10” !a=2 a=O“10” !a=8 a=Z“10” !a=16 Fortran 90在设置整数时,可以不用十进制的方法,而使用其他进制的方法来做设置。把数字用双引号括起来,最前面加上B代表这段数字是二进制数字,同理最前面用O代表要使用八进制,用Z代表要使用16进制。 * WRITE/READ ([UNIT=]number, IOSTAT=stat, ADVANCE=advance) 5-6 流程控制与文件 IOSTAT=stat???? 设置一个数值给在它后面的变量,用来说明文件的读写状态。 ???????? stat0??? 表示读写操作发生错误。 ???????? stat=0??? 表示读写操作正常。 ???????? stat0??? 表示文件终了(-1或-2)。 ADVANCE=‘YES’ or ‘NO’ ???? 使用这个字段时候一定要设置输出入格式,在输出时可以使用这个设置来控制write命令是否会自动换行。 * 5-6 流程控制与文件 Open(unit=8,file=‘input.dat’,status=‘old’,iostat=ierror1) If (ierror1 /= 0) then write(*,*) “Error: file open” stop End if Read(8, “(F6.3, F6.3, F6.3)”, iostat=ierror3) x,y,z If (ierro3==0) write(*,*) x, y, z If (ierro30) write(*,*) “end of file” Open(unit=9,file=‘output.dat’,status=‘replace’,iostat=ierror2) If (ierror2 /= 0 ) then write(*,*) “Error: file open) stop End if Write(9,*) x,y,z Write(9,100) x,y,z 100 format(‘x=‘,F10.2, ‘y=‘, F10.2, ‘z=‘, F10.2) * Fortran程序的调试 编写包含分支和循环结构的程序比编写简单的顺序结构程序更容易犯错误。 如果只是发现输出值有错误,如何定位排错? 最好方法:符号调试器,但是需要查看系统手册以便如何使用。 一般方法:在程序中插入write语句,在一些关键位置点输出变量的值,以观察程序中间结果与预期结果的差异。 如果是IF块的问题:重点检查逻辑表达式。 另外一个常见错误:实数型变量的等值测试。 * * 作业 P98 1、2、3、4 5、一束光线从折射率为n1的区域穿透到折射率为n2的另一个区域,光线被折射,折射的角度由斯涅尔定律给出。编写Fortran程序,给定区域1中的入射角?1和折射率n1、n2,计算光束在区域2中的出射角度?2。计算时以空气和水为例,并大致估计一下发生全反射的入射角度。可以根

文档评论(0)

4477704 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档