命令在COBOL中等待吗?

问题描述 投票:1回答:2

COBOL中是否存在一种“等待”功能?我写了一个计算器,为了使它超过50年代,我打印了“计算”。 “正在计算..”例如:

                   DISPLAY "SECONDO NUMERO"
                   ACCEPT B
                   COMPUTE C= A * B
                          DISPLAY "Computing"
                          DISPLAY "Computing."
                          DISPLAY "Computing.."
                          DISPLAY "Computing..."
                          DISPLAY "Computing...."
                          DISPLAY "Computing....."
                          DISPLAY "Computing......"
                          DISPLAY A "x" B " FA..."
                          DISPLAY C

现在,有没有办法在我放置“计算”部分的COBOL上稍加延迟(半秒)?谢谢!!!

cobol gnucobol
2个回答
0
投票

我们没有任何命令,例如sleep或cobol中的wait。编码一些Dummy语句不是一个比WAIT或SLEEP停止更好的主意。就像它是DB2程序一样,COMMIT可以用于获得良好的通过时间。问候,


0
投票

标准COBOL中没有等待或延迟语句。对于GnuCOBOL,可能会有CALL "SYSTEM"来引起延迟。

[我获取了一些用于经过时间测量的代码,并修改了代码以创建一个延迟过程。

[需要延迟的地方,插入语句PERFORM timed-delay。当然,延迟可以改变。即使延迟超过午夜,此代码也可以正常工作。

代码:

   working-storage section.
   01 t pic 9(8).
   01 t-start.
     03 t-start-hour pic 99.
     03 t-start-minute pic 99.
     03 t-start-second pic 99v99.
   01 t-end.
     03 t-end-hour pic 99.
     03 t-end-minute pic 99.
     03 t-end-second pic 99v99.
   77 t-elapsed pic 9(7)v99.
   procedure division.
   xxx section.
   begin.
       accept t from time
       display t
       perform timed-delay
       accept t from time
       display t
       stop run
       .

   timed-delay.
       accept t-start from time
       move 0 to t-elapsed
       perform until t-elapsed > 0.5   *> one-half second
           accept t-end from time
           perform get-elapsed
       end-perform
       .

   get-elapsed section.
   begin.
       if t-start > t-end
           move 86400 to t-elapsed
       else
           move 0 to t-elapsed
       end-if
       compute t-elapsed = t-elapsed
         + (t-end-hour - t-start-hour) * 3600
         + (t-end-minute - t-start-minute) * 60
         + (t-end-second - t-start-second)
       end-compute
       .

输出:(显示0.55秒的延迟)

21424364
21424419
© www.soinside.com 2019 - 2024. All rights reserved.