2014-02-07 189 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

參數數據區域可被用於將數據傳遞到子程序和例程。

相關問題