我是Fujitsu COBOL 3.0软件的新手。我尝试执行一个简单的程序。代码和错误如下。程序中的所有内容似乎都是正确的。谁能帮我吗?在这个软件中应该遵循任何预标准吗?
示例cobol计划是:
IDENTIFICATION DIVISION.
PROGRAM-ID. ShortestProgram.
PROCEDURE DIVISION.
DisplayPrompt.
DISPLAY "I did it".
STOP RUN.
--------------------------------------------------------------------------------------
** DIAGNOSTIC MESSAGE ** (NOPRGMID)
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 0: JMN1102I-S IDENTIFICATION DIVISION HEADER IS MISSING. HEADER ASSUMED TO BE CODED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1019I-W INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1005I-W CHARACTER STRING 'DENTIFICATION' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1356I-W INVALID WORD 'DENTIFICATION' IS SPECIFIED IN IDENTIFICATION DIVISION. IGNORED UNTIL NEXT PARAGRAPH OR DIVISION.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 2: JMN1019I-W INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 2: JMN1005I-W CHARACTER STRING 'ROGRAM-ID' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 4: JMN1019I-W INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 4: JMN1005I-W CHARACTER STRING 'ROCEDURE' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 6: JMN1004I-W RESERVED WORD 'DISPLAY' MUST START IN AREA B. ASSUMED TO START IN AREA B.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7: JMN1104I-S PROGRAM-ID PARAGRAPH IS MISSING. PROGRAM-NAME GENERATED BY SYSTEM.
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7: JMN1004I-W RESERVED WORD 'STOP' MUST START IN AREA B. ASSUMED TO START IN AREA B.
STATISTICS: HIGHEST SEVERITY CODE=S, PROGRAM UNIT=1
答案 0 :(得分:2)
警告(参考区域B)似乎建议您的代码应该从每行的第二列开始。这就是它找到的原因,例如“DENTIFICATION”而不是“IDENTIFICATION”。
我从未在COBOL中开发过,但我依稀记得第一列必须为空白,或者*为评论:警告消息似乎表明/ - 和D也是有效值。
更新:Google建议COBOL编译器忽略前6列,第7列具有特殊意义(D用于调试,*用于注释,......)。虽然这种行为可能是特定于编译器的。所以我怀疑你的问题是你的代码是从col 7开始的,它应该是col 8。
答案 1 :(得分:2)
将所有内容移到7列以上,以便IDENTIFICATION DIVISION在第8列开始,所有后续行在第8列或更高列开始。
还有一个编译器开关(不记得我的头顶),允许你从col 1开始
答案 2 :(得分:0)
在这里采取WAG(疯狂猜测)。从我上大学的那一年开始就没有了。
您的错误消息在底部显示
STATISTICS: HIGHEST SEVERITY CODE=S, PROGRAM UNIT=1
好的,所以我认为你有一些警告(可能是CODE = W),以及一个或多个实际导致程序失败的错误。
所以,扫描错误信息,我看到很多W-s,还有一行带有S:
C:\ FSC \ PCOBOL32 \样品\ SAMPLE6 \ SAMPLE7.COB 7:JMN1104I-S PROGRAM-ID PARAGRAPH IS 失踪。由...生成的程序名称 系统
所以你似乎错过了你的Program-ID段落。看看你的程序,我确实看到了一个n识别部门,它有一个程序ID。
我可以从中得出四点结论:
1)您的身份识别部分段落不正确
2)正如Neil所说,你没有运行你的代码片段,而是一个没有ID段落的样本。打开sample7.cob并查看
3)其他一些问题导致错误,但它被隐藏或误解为ID段错误