首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Cobol中添加星号字符串?

如何在Cobol中添加星号字符串?
EN

Stack Overflow用户
提问于 2018-06-01 19:55:13
回答 1查看 733关注 0票数 0

问题:

如果库存总数小于50,则在写入行的末尾添加两个星号(**)的字符串,以通知库存经理需要更多库存。如果库存总数小于10,则在行尾添加一个5个星号(*)的字符串,让库存经理知道迫切需要更多库存。

如何在Cobol中生成一串星号?

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 20:12:08

如何在Cobol中生成一串星号?

有两种方法。

第一种方法控制目标位置的字符数,当数据项在移动前初始化时效果最好。第二种方法控制源端的字符数,当目标的初始化无关紧要或用作STRING语句的一部分时,效果最好。

方法1:

代码语言:javascript
复制
move all "*" to data-name-1 (1:number-of-asterisks)

例如:

代码语言:javascript
复制
   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
       .

输出:

代码语言:javascript
复制
**********
*********
********
*******
******
*****
****
***
**
*

请注意,程序在显示星号后移动空格以清除目标位置。这是为了防止在下面的行中显示太多的星号。

方法二:

代码语言:javascript
复制
move asterisks (1:number-of-asterisks) to data-name-1

例如:

代码语言:javascript
复制
   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 (或初始化)目标。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50642878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档