问题:
如果库存总数小于50,则在写入行的末尾添加两个星号(**)的字符串,以通知库存经理需要更多库存。如果库存总数小于10,则在行尾添加一个5个星号(*)的字符串,让库存经理知道迫切需要更多库存。
如何在Cobol中生成一串星号?
发布于 2018-06-01 20:12:08
如何在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
.输出:
**********
*********
********
*******
******
*****
****
***
**
*请注意,程序在显示星号后移动空格以清除目标位置。这是为了防止在下面的行中显示太多的星号。
方法二:
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 (或初始化)目标。
https://stackoverflow.com/questions/50642878
复制相似问题