问题:
如果库存总量小于50,请在书写行末尾添加两个星号(**)的字符串,以通知库存管理员需要更多库存。如果库存总量小于10,请在行末添加一个五个星号(*****)的字符串,以便库存管理员知道需要更多库存。
我如何在Cobol中制作一串星号?
答案 0 :(得分:3)
我如何在Cobol中制作一串星号?
有两种方法。
第一个控制目标处的字符数,并且在移动之前初始化数据项时效果最佳。第二个控制源的字符数,当目的地的初始化无关紧要或作为STRING
语句的一部分使用时,效果最佳。
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
.
输出:
**********
*********
********
*******
******
*****
****
***
**
*
请注意,程序在显示星号后移动空格以清除目标。这样可以防止在以下行中显示太多星号。
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
(或初始化)目的地。