亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3150 | 回復(fù): 6
打印 上一主題 下一主題

請教,400下COBOL中的遞歸調(diào)用 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-07-21 19:53 |只看該作者 |倒序瀏覽
程序1:STEST2BU:

       IDENTIFICATION DIVISION .
       PROGRAM-ID. STEST2BU.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. IBM-AS400.
       OBJECT-COMPUTER. IBM-AS400.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-LK                                  PIC 9(1).

       PROCEDURE DIVISION .

           MOVE 1 TO WS-LK.
           CALL "STEST1BU" USING BY CONTENT WS-LK.

           STOP RUN.


程序2:STEST1BU:

       IDENTIFICATION DIVISION .
       PROGRAM-ID. STEST1BU.

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. IBM-AS400.
       OBJECT-COMPUTER. IBM-AS400.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-RETURN                              PIC 9(1).
       01 WS-A                                   PIC 9(1).
      
       LINKAGE SECTION.
          01  LK-RETURN                          PIC X(1).

       PROCEDURE DIVISION USING LK-RETURN.
           
           MOVE LK-RETURN TO WS-RETURN.
           MOVE WS-RETURN TO WS-A.
           ADD 1 TO WS-RETURN.
           DISPLAY "A " WS-A.
           IF WS-RETURN < 5
              CALL "STEST1BU" USING BY CONTENT WS-RETURN.
           DISPLAY "B " WS-A.

           EXIT PROGRAM.

運行:

CALL STEST2BU

期待結(jié)果:
A 1
A 2
A 3
A 4
B 4
B 3
B 2
B 1

實際結(jié)果:
A 1
A 2
A 3
A 4
B 4
B 4
B 4
B 4  

希望哪位同學(xué)指點,謝謝哦

論壇徽章:
0
2 [報告]
發(fā)表于 2006-07-28 10:24 |只看該作者
懷疑被AS/400 優(yōu)化了.    內(nèi)存優(yōu)化了.

[ 本帖最后由 digitalchina 于 2006-7-28 11:19 編輯 ]

論壇徽章:
0
3 [報告]
發(fā)表于 2006-07-28 14:31 |只看該作者
CALL "STEST1BU" USING BY CONTENT WS-RETURN.
means: LK-RETURN  = WS-RETURN,
then: MOVE LK-RETURN TO WS-RETURN.
           MOVE WS-RETURN TO WS-A.
means:WS-A = LK-RETURN.
DISPLAY "A " WS-A.
DISPLAY "B " WS-A.
應(yīng)該就是顯示累加后的WS-RETURN,顯示的沒問題呀,沒有看出來怎么會越來越小。

論壇徽章:
0
4 [報告]
發(fā)表于 2006-07-28 19:47 |只看該作者
謝謝大家,我的同事給我的答案是:
COBOL85中不支持遞歸調(diào)用,在COBOL2000  之后才開始COBOL的遞歸調(diào)用,(包括IBM)但是需要顯示的聲明為遞歸程序。格式:PROGRAM-ID.  PGMID  IS  RECURSIVE  PROGRAM.

不過我沒用過COBOL2000。

論壇徽章:
0
5 [報告]
發(fā)表于 2006-07-28 22:35 |只看該作者
這不是支持的問題呀,你這個程序顯然達不到你想要的結(jié)果,你調(diào)試一下就知道變量怎么變化了。

論壇徽章:
0
6 [報告]
發(fā)表于 2006-08-09 23:14 |只看該作者

It's about active group

如果要得到你期望的結(jié)果,編譯程序的時候選擇 *new一個active group.
不然,相同的active group中,同一個變量ws-a被放在同樣的存儲空間,被最內(nèi)層的程序修改之后,外層程序中看到的也是相同的值了。

論壇徽章:
0
7 [報告]
發(fā)表于 2006-08-10 09:55 |只看該作者
關(guān)于子程序的變量如何變化,你可以參考cobol手冊,或者搜索我以前的貼子。
這是我以前寫的一個遞歸程序,針對漢諾塔移位的,就是有三個塔A,B,C,A有N個盤子,大的在下,小的在上,借助C, 把A的盤子移動到B, 同樣順序排列。
python寫的
# Type "copyright", "credits" or "license" for more information.
>>> def move(a, b):
...     print a,'----->', b
...     
>>> move('A','B')
A -----> B
>>> def digui(n,a,b,c): #move a to b by c 移動a到b,借助c
...     if (n==1):
...         move(a,b)
...     else:   
...         digui(n-1,a,c,b) #move a to c by b 移動a到c,借助b
...         move(a,b)
...         digui(n-1,c,b,a) #move c to b by a 移動c到b,借助a
...         
>>> digui(3,'A','B','C')
A -----> B
A -----> C
B -----> C
A -----> B
C -----> A
C -----> B
A -----> B
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP