作者charlesdc (MoOn)
看板Fortran
标题Re: [问题] 倒数计时
时间Tue Oct 26 17:09:47 2010
※ 引述《comg (虫)》之铭言:
: 请问一下倒数计时器的问题
: 在fortran中是否有倒数计时的语法或IMSL
: 用google找了半天还是没找着
: 或者要有什麽方式写 (例如CALL DOS 指令的方式)
我的作法大概是用抓时间去判断时间间距
那上一篇回文说用法不好 是因为我再回圈内做太多事
导致跑一次需花太多时间以至於没办法抓到精准的时间间距
implicit none
integer date_time(8),s,time,temp
character*10 b(3)
write(*,*)"输入秒数"
read(*,*)s
call date_and_time(b(1),b(2),b(3),date_time)
s=s*1000 !单位毫秒
do
temp=date_time(8)
call date_and_time(b(1),b(2),b(3),date_time)
if (ABS(temp-date_time(8))==1) then
s=s-1
end if
if (s==0) then
exit
end if
end do
end
测试过可以抓到1毫秒 所以精度上不会有太大的问题
重点是回圈内不要做太多事!! 尤其是输出
至於date_and_time的用法请参考
http://docs.sun.com/app/docs/doc/819-5259/6n7bsi994?l=zh_TW&a=view
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.26.71
1F:→ charlesdc:cpu_time去测发现精度只有+-10毫秒左右 要在准的话就在 10/26 17:37
2F:→ charlesdc:简化回圈内的事情 10/26 17:37
3F:→ kingofsdtw:如果程式delay... timer也会停! 10/26 21:29
4F:→ charlesdc:如果程式delay的时候什麽东西会继续走? 10/27 01:02
5F:推 will1118:系统时间XDD 10/28 01:21
6F:→ Cypresslin:青春年华(误 10/28 13:39
7F:→ charlesdc:老板可能也会走喔@@ 10/28 21:33
8F:→ comg: 其实我也是这麽想的 去做一个无回圈然後去抓系统时间 10/29 11:23
9F:→ comg: 而且我觉得啊 抓到前後两系统时间百分秒没有差很多 10/29 11:24
10F:→ comg: 其实在同一个百分秒内 在回圈内可以抓到很多次耶~~ 10/29 11:25
11F:→ charlesdc:事实上是可以抓到0.001秒的差距值 但是回圈再跑的时候会 10/29 13:41
12F:→ charlesdc:浪费掉时间 比较要注意的就是这里而已 10/29 13:41