为了账号安全,请及时绑定邮箱和手机立即绑定

cobol中accept的用法和循环?

/ 猿问

cobol中accept的用法和循环?

弑天下 2019-04-04 11:07:02

cobol中accept的用法和循环


查看完整描述

3 回答

?
胡子哥哥

这个要看你是在什么环境下了,如果是DOSWINDOWSUNIX类的操作系统,你可以用它们的字符界面,ACCEPT对应于键盘输入,DISPLAY对应于屏幕输出。
举个例子吧,ACCEPT一个数值,然后求它的平方,DISPLAY出来,
working-storage section.
77 x pic x(10).
77 XasNum pic s9(09).
77 x2 pic 9(18).
77 x2-edit pic z(17)9.
procedure division.
display "请输入一个数值(最大9位,可以为负数): "
with no advancing.
accept x.
move function numval(x) to XasNum.
compute x2 = XasNum ** 2.
move x2 to x2-edit.
display "这个数值的平方是: " x2-edit.
stop run.
如果是MAINFRAME环境,你要在JCL中的SYSIN中指定X的数值,至于DISPLAY的输出结果,你要到JOB LOG中去看。

至于输出乘法表,如下:
working-storage section.
77 i pic 99.
77 j pic 99.
77 k pic 99.
procedure division.
perform varying i from 1 by 1 until i > 9
perform varying j from 1 by 1 until j > i
compute k = i * j
display i "*" j "=" k " " with no advancing
end-perform
display " "
end-perform.
stop run.

这两个程序,只要是符合COBOL ANSI 85标准的编译器都支持,还有,我只是把必要的代码列了出来,像DATA DIVISION,ENVIRONMENT DIVISION, IDENTIFICATION DIVISION这些我都没有写。

补充如下:
你问的SYSIN,在IBM MAINFRAME系列JCL里面的格式如下:(以上面ACCEPT一个数值,求其平方并DISPLAY为例)
//SYSIN DD *
+1000
/*
由于那个例子只ACCEPT一次,求得其平方即输出,所以SYSIN如上。
你可以把那个程序改一下,做一个循环,依次ACCEPT并DISPLAY其平方,直到ACCEPT的数值等于9999为止,程序中止。
此时,SYSIN的格式如下:
//SYSIN DD *
100
+1000
-20300
9999
/*
这样,程序共处理了三个数值,正的100,正的1000和负的20300。

至于你问的ALLOC DD(SYSIN) DS(*),这是个TSO命令,这种用法是把你的终端做为SYSIN。

你们老师是怎么回答的啊?你提到了CALL,我想大概是这么用的吧:
在JCL里面指定SYSTSIN:
//SYSTSIN DD *
ALLOC DD(SYSIN) DS(*)
CALL (你的可执行模块)



查看完整回答
反对 回复 2019-04-13
?
慕神8447489

和没有ACCEPT语句的cobol代码的编译一样。
如果要从JCL传一个值的话,在执行程序的JCL里加语句。
//SYSIN DD *
XXXXXX
/*
程序里用ACCEPT 语句接受就行。

查看完整回答
反对 回复 2019-04-13

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信