2014-02-07 57 views
1

我是NATURAL programming language的新手。我试图找到一种方法,我可以像在C++或Java中一样将一个参数传递给子例程。现在我必须把所有东西都移动到另一个变量上并调用方法。因此很麻烦,而且有更多的代码可供编写。有没有办法将参数传递给NATURAL子例程?

问题:自然程序子程序是否可以像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 
+0

我在下面回答了您的问题,但我确实有问题。什么数据类型是passVariable1?它有自然的D(日期)还是T(时间)的格式? – zarchasmpgmr

+0

Alpha是与passVariable1 –

+0

相关的数据类型。日期/时间格式的变量有一些很好的功能,你可以玩这样的游戏。你可能也想看看MOVE SUBSTRING语句。免责声明:我是前SAG研发部门。 – zarchasmpgmr

回答

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

参数数据区域可被用于将数据传递到子程序和例程。

相关问题