作者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