1

我是NATURAL 编程语言的新手。我正在尝试找到一种方法,可以将一个参数传递给子例程,就像在 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
4

2 回答 2

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 文档,尤其是“First Steps”手册。

于 2014-02-09T00:19:38.270 回答
1

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

于 2014-02-08T09:33:51.273 回答