有没有办法将参数传递给NATURAL子程序?

时间:2014-02-07 19:54:00

标签: mainframe

我是NATURAL programming language的新手。我试图找到一种方法,我可以将一个参数传递给子程序,就像在C ++或Java中一样。现在我必须将所有内容移动到另一个变量并调用该方法。因此很麻烦,需要编写更多代码。

问题:自然程序子程序是否可以使用C ++或Java中的参数列表?

   D = passVariable1
   PERFORM FLIP-DATE
      A = D 
   END-SUBROUTINE
   newVariable = A

代码:

 DEFINE SUBROUTINE FLIP-DATE          
    #A    = #D                    
    #B    = #E                     
    #C    = #F                  
    RESET   #NMM #NDD #NCCYY                                                
 END-SUBROUTINE

我想做什么。

代码:

   DEFINE SUBROUTINE FLIP-DATE(A,B,C,D,E,F) <-- is this possible somehow?          
     #A    = #D                    
     #B    = #E                     
     #C    = #F                  
     RESET   #NMM #NDD #NCCYY                                                
   END-SUBROUTINE

2 个答案:

答案 0 :(得分:2)

参数数据区(PDA)是本地数据区(LDA)的特殊检验,用于函数,外部子例程或帮助例程对象。您可以定义内联参数,如

DEFINE DATA
PARAMETER
1 #A(N2)
1 #B(N2)
1 #C(N2)
1 #D(N2)
1 #E(N2)
1 #F(N2)
LOCAL
your local variables
END-DEFINE
…

或者,您也可以创建一个单独的源对象,类似于外部LDA。

DEFINE DATA
PARAMETER USING pda
LOCAL
your local variables
END-DEFINE
…

请注意,您不能将参数与内部子例程一起使用。

如果您之前从未使用过这种强大的语言,我建议您先阅读Software AG网站上的Natural documentation,特别是“第一步”手册。

答案 1 :(得分:1)

parameter-data-area可用于将数据传递给子程序和例程。