非常基本的问题。
我必须为COBOL程序写出数据词汇表。此数据词汇表包含有关每个变量的以下详细信息:
我有几个包含88级开关的变量。我的问题是:这些88级交换机是否被视为变量,我应该将它们包含在数据术语表中吗?或者,根据我必须使用的数据词汇表结构来判断,在这种情况下是否应该忽略它们?
虽然我在这里,但另一个简单的问题。填充程序是否应包含在数据词汇表中?该程序特别包含大量填充变量,大多数是简单的“PIC X”变量。
答案 0 :(得分:7)
假设我理解被问到的问题。
如果您可以使用COBOL布局和数据词汇表条目以及没有88条目的一个示例,这将有所帮助。但是,我会尽力回答这个问题。
不,88级条目不是变量,它们不会增加或减少记录的长度。它们只是允许您创建条件语句。
如果说你的数据词汇表中只包含有助于记录长度的变量吗?
如果是,那么每88项不应该有单独的数据词汇表条目。但是,它可能有助于解释给定变量的值[s](3甚至5或甚至是预期值的额外行)。
01 record-store.
02 location pic 9(4).
88 dist-center value 100, 101, 102.
02 value pic 9(6).
02 paid pic X(1).
88 yes value 'Y', 'y'.
88 no value 'N', 'n'.
您的数据词汇表将/可能是:
现在知道你的期望值你可以回去改变你的88值吗?
...
02 location pic 9(4).
88 dist-center value 100, 101, 102.
88 customers value 1 thru 99.
88 invalid value 0, 103 thru 9999.
...
如果不是那么:
您可以在88级之前输入单独的数据词汇表条目。
您的数据词汇表将/可能是:
答案 1 :(得分:1)
像往常一样,这取决于。 : - )
88级值似乎属于第3部分“值范围”,特别是如果它们记录了某些变量允许的唯一值。
如果使用文档重建记录,FILLER字段当然很重要。如果您只想记录其他字段的用法,那么它们就不是很有趣了。
答案 2 :(得分:1)
'PIC X'FILLER变量可能是工作存储中的标志,有88个级别,因此非常重要。
例如,我们经常使用这种类型的构造:
01 FILLER PIC X.
88 OPTION-IS-ON VALUE 'Y', FALSE 'N'.
88 OPTION-IS-OFF VALUE 'N'.
这定义了一个标志,我们只使用它的条件来引用它。例如,我们可以像这样使用它:
SET OPTION-IS-ON TO TRUE. | This puts a 'Y' in the PIC X
.
.
.
IF OPTION-IS-ON
do something
END-IF
在这种情况下,我们永远不需要引用实际的标志值本身,因此您无需为其命名。
88级别的'FALSE'只允许您指定使用该语句时存储的内容:
SET OPTION-IS-ON TO FALSE | This puts an 'N' in the PIC X
当然与说法相同:
SET OPTION-IS-OFF TO TRUE | This also puts an 'N' in the PIC X
这一切都取决于当时更具可读性。