如何在Cobol中添加一串星号?

时间:2018-06-01 11:55:13

标签: cobol

问题:

  

如果库存总量小于50,请在书写行末尾添加两个星号(**)的字符串,以通知库存管理员需要更多库存。如果库存总量小于10,请在行末添加一个五个星号(*****)的字符串,以便库存管理员知道需要更多库存。

我如何在Cobol中制作一串星号?

1 个答案:

答案 0 :(得分:3)

  

我如何在Cobol中制作一串星号?

有两种方法。

第一个控制目标处的字符数,并且在移动之前初始化数据项时效果最佳。第二个控制源的字符数,当目的地的初始化无关紧要或作为STRING语句的一部分使用时,效果最佳。

方法1:

move all "*" to data-name-1 (1:number-of-asterisks)

例如:

   program-id. aster.
   data division.
   working-storage section.
   1 n pic 99.
   1 asterisk-line pic x(10) value space.
   procedure division.
   begin.
       perform varying n from 10 by -1 until n < 1
           move all "*" to asterisk-line (1:n)
           display asterisk-line
           move space to asterisk-line
       end-perform
       stop run
       .

输出:

**********
*********
********
*******
******
*****
****
***
**
*

请注意,程序在显示星号后移动空格以清除目标。这样可以防止在以下行中显示太多星号。

方法2:

move asterisks (1:number-of-asterisks) to data-name-1

例如:

   program-id. aster2.
   data division.
   working-storage section.
   1 n pic 99.
   1 asterisks pic x(10) value all "*".
   1 asterisk-line pic x(10) value space.
   procedure division.
   begin.
       perform varying n from 10 by -1 until n < 1
           move asterisks (1:n) to asterisk-line
           display asterisk-line
       end-perform
       stop run
       .

输出与上述相同。

请注意,在移动星号之前,无需move spaces(或初始化)目的地。