如何在Cobol中添加一串星号?
问题: 如果库存总量小于50,则在写入行的末尾添加一个由两个星号(**)组成的字符串,以通知库存经理需要更多库存。如果库存总量小于10,则在行的末尾添加一个由五个星号组成的字符串(****),以让库存经理知道急需更多库存 如何在Cobol中生成一串星号 如何在Cobol中生成一串星号 有两种方法 第一种方法控制目标位置的字符数,在移动前初始化数据项时效果最佳。第二种方法控制源代码中的字符数,在不关心目标的初始化或用作如何在Cobol中添加一串星号?,cobol,Cobol,问题: 如果库存总量小于50,则在写入行的末尾添加一个由两个星号(**)组成的字符串,以通知库存经理需要更多库存。如果库存总量小于10,则在行的末尾添加一个由五个星号组成的字符串(****),以让库存经理知道急需更多库存 如何在Cobol中生成一串星号 如何在Cobol中生成一串星号 有两种方法 第一种方法控制目标位置的字符数,在移动前初始化数据项时效果最佳。第二种方法控制源代码中的字符数,在不关心目标的初始化或用作字符串语句的一部分时效果最佳 方法1: 例如: program-id. a
字符串
语句的一部分时效果最佳
方法1:
例如:
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
.
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
.
请注意,程序在显示星号后移动空格以清除目标。这是为了防止在下面的行中显示太多的星号
方法2:
例如:
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
.
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
.
program-id.aster2。
数据司。
工作储存区。
图99。
1个星号pic x(10)值全部为“*”。
1星号线pic x(10)值空间。
程序司。
开始。
执行从10乘以-1到n<1的变化
将星号(1:n)移动到星号行
显示星号线
结束表演
停跑
.
输出与上面相同
请注意,在移动星号之前,无需移动空格(或初始化)目标
如何在Cobol中生成一串星号
有两种方法
第一种方法控制目标位置的字符数,在移动前初始化数据项时效果最佳。第二种方法控制源代码中的字符数,在不关心目标的初始化或用作字符串
语句的一部分时效果最佳
方法1:
例如:
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
.
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
.
请注意,程序在显示星号后移动空格以清除目标。这是为了防止在下面的行中显示太多的星号
方法2:
例如:
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
.
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
.
program-id.aster2。
数据司。
工作储存区。
图99。
1个星号pic x(10)值全部为“*”。
1星号线pic x(10)值空间。
程序司。
开始。
执行从10乘以-1到n<1的变化
将星号(1:n)移动到星号行
显示星号线
结束表演
停跑
.
输出与上面相同
请注意,在移动星号之前,无需移动空格(或初始化)目的地。首先,我将查看Cobol手册。我猜你要么需要一个循环,要么需要一个自己循环的函数。你能试一试吗?通过制作一个值为“*”的picture子句,应该重新打开这个问题。所要求的答案“如何在Cobol中生成一系列星号?”非常狭窄,只有两个可能的答案;其中一个问题是在问题“暂停”之前提出的。根本不可能进一步缩小该问题的范围。第一段只是对提出最后一个问题的解释。如果第一段是发现“范围太广”的原因,然后删除该段。这是一个很好的问题,因为答案允许创建任何单个字符的字符串+1首先,我要看一下Cobol手册。我猜你要么需要一个循环,要么需要一个自己循环的函数。你能试一试吗?通过制作一个值为“*”的picture子句,应该重新打开这个问题。所要求的答案“如何在Cobol中生成一系列星号?”非常狭窄,只有两个可能的答案;其中一个问题是在问题“暂停”之前提出的。根本不可能进一步缩小该问题的范围。第一段只是对提出最后一个问题的解释。如果第一段是发现“范围太广”的原因,然后删除该段。这是一个很好的问题,因为答案允许创建任何单个字符的字符串+1.