<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    superwei

    導航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    COBOL語法和文法(1)

    ?REDEFINES
    ??? 可以用不同的變量描述同一內存。
    ??? 01 PART_RECODE USAGE DISPLAY
    ????? 03 PART-TYPE PICTURE...
    ????? 03 PART_TYPE_A.
    ??????? 05 PART_NUMBER PICTURE...
    ??????? 05 PART_COST PICTURE...
    ????? 03 PART_TYPE_B REDEFINES PART_TYPE_A.
    ??????? 05 UPC_CODE PICTURE...
    ????? 03 PART_TYPE_C REDEFINES PART_TYPE_A.
    ??????? 05 ISBN PICTURE...
    ??? 根據PART_TYPE決定用PART_TYPE_A還是PART_TYPE_B還是PART_TYPE_C。
    ??? 規則:
    ??????? PART_TYPE_B和PART_TYPE_C長度不能大于PART_TYPE_A。
    ??????? 數據項不能有VALUE。
    ??????? 01層不能用REDEFINES.
    ??????? PART_TYPE_B和PART_TYPE_C中不能有OCCURS.

    PICTURE
    ??? 定義基本項目的具體長度,格式,數據類型。可以簡寫成PIC.
    ??? 格式字符串最多30個字符,可以包含下列字符:
    ??? A? 字母A-Z,a-z,空格
    ??? B? 插入空格
    ??? P? 標量字符,代表字段中不顯示的小數點位置
    ??? S? 代數符號,實際顯示取決于項目的USAGE
    ??? V? 小數點位置
    ??? X? 任何字符
    ??? Z? 抑制前頭的0并轉換成空字符
    ??? 0? 插入0
    ??? 9? 數字0~9
    ??? /? 插入/
    ??? ,? 插入,(逗號不能作為字符串的最后一位,最后時逗號是分隔符)
    ??? 。 插入。
    ??? *? 抑制前頭的0并轉換成*
    ??? +? 正值插入+,負值插入-
    ??? -? 正值插入空格,負值插入-
    ??? $? 插入美元號
    ??? CR 正值插入兩個空格,負值插入CR
    ??? DB 正值插入兩個空格,負值插入DB
    例子:
    ??? 03 VAR PIC AAAAA.??? STATE變量長度為5個字符,不能有數字,等價于03 STATE PIC A(5)。
    ???輸入ASDFG ,顯示ASDFG
    ??? 03 VAR PIC XXXXX.?? FILLER變量長度為5個任意字符。等價于03 FILLER PIC X(5)。
    ???輸入123AS , 顯示123AS
    ??? 03 VAR PIC 99/XXX/9999 長度11,輸入05may2004,顯示05/may/2004
    ??? 03 VAR PIC 0ABXXX/9999 長度11,輸入05may2004,顯示05 may/2004
    ??? 03 VAR PIC 9(3) 長度3,0~999之間。
    ??? 03 VAR PIC 9(4)V99 長度6,0.00~9999.99之間。
    ??? 03 VAR PIC S9(5)V99 長度7,-99999.99~99999.99之間。
    ??? 03 VAR PIC 9(6)PPP 長度6,可以是1000,2000,...,999999000。輸入1234,顯示1000。
    ??? 03 VAR PIC PPP999 長度3,0.000001~0.000999之間。輸入123,顯示0.000123。
    ??? 03 VAR PIC ZZZ.99,輸入100.50,顯示100.50;輸入-51.50,顯示51.50;
    ??????????? 輸入0,顯示.00.
    ??? 03 VAR PIC $ZZZ.ZZ-,輸入100.50,顯示$100.50;輸入-51.50,顯示$51.50-;
    ??????????? 輸入0,顯示
    ??? 03 VAR PIC $***,***.99CR,輸入1000,顯示$**1000.00;輸入-1000,顯示$**1000.00CR;
    ??????????? 輸入0,顯示$***,***.00;輸入51.5,顯示$***,*51.50
    ??? 03 VAR PIC $$$,$$$.99,輸入100.50,顯示$100.50;輸入-100.50,顯示$100.50;
    ??????????? 輸入0.777,顯示$.77;輸入0,顯示$.00
    ??? 03 VAR PIC $.$$$,輸入1.00,顯示$.00;輸入0.65,顯示$.65;
    ??????????? 輸入0,顯示$.00;
    ??? 03 VAR PIC $--,輸入17.7,顯示$17;輸入-17.7,顯示$-17;
    ??????????? 輸入-5,顯示$-5
    ??? 03 VAR PIC $999.99+,輸入100.50,顯示$100.50+;輸入-100.50,顯示$100.50-;
    ??? 03 VAR PIC 9(3)B9(3),輸入55,顯示000 055;輸入1000.78,顯示001 000;

    USAGE 表示基本或組數據的類型。有BINARY,COMPUTATIONAL(COMP),DISPLAY,INDEX,PACKED-DECIMAL.

    JUSTIFIED
    ??? 03 VAR1 PIC X(5) JUSTIFIED RIGHT.
    ??? 03 VAR2 PIC X(5).
    ??? 輸入XYZ,VAR1顯示的是"? XYZ",VAR2顯示的是"XYZ? "。

    BLANK WHEN ZERO
    ??? 03 VAR PIC $999,999.99 BLANK WHEN ZERO .
    ??? 當字段值為0,這個項目設置為全部空格。

    VALUE
    ??? 定義的時候就賦值。
    ??? 03 VAR PIC X(5) VALUE "ABCDE".
    ??? 01 VAR VALUE ALL SPACES.
    ????? 03 VAR1 PIC XXX.
    ????? 03 VAR2 PIC XX.

    算術語句
    ??? COBOL中操作符執行順序為:取正(+)、取負(-)最高級,指數操作(**)其次,乘(*)、除(/)再其次,加(+)、減(-)最后。
    ROUNDED?? 舍入操作。
    ??? 77 A PIC 9V9 VALUE 9.1.
    ??? 77 B PIC 9.
    ????? ADD 0.5 TO A GIVING B ON SIZE ERROR GO TO PROC1.
    ????? ADD 0.5 TO A GIVING B ROUNDED ON SIZE ERROR GO TO PROC2.
    ????? END-ADD.
    ON SIZE ERROR 是當語句出現錯誤時執行的。本例中第一句話執行沒有錯誤,所以ON SIZE ERROR
    不執行PROC1.第二句話,當0.5加上9.1得到9.6,因為有ROUNDED,所以執行舍入操作,得到10。而B只有1位數字,所以發生錯誤,執行ON SIZE ERROR操作,跳轉執行PROC2。?
    CORRESPONDING(CORR)??? 數據項同名時編寫多條語句。ADD和SUBSTRACT有此選項。
    ??? 01 A .
    ????? 03 B.
    ??????? 05 B1 PIC 999V99.
    ??????? 05 B1 PIC 999V99.
    ??????? 05 B1 PIC 999V99.
    ????? 03 C.
    ??????? 05 B1 PIC 999V99.
    ??????? 05 B1 PIC 999V99.
    ??????? 05 B1 PIC 999V99.
    則語句ADD CORR B TO C.相當于執行了下面3條語句。
    ??? ADD B1 OF B TO B1 OF C.
    ??? ADD B2 OF B TO B2 OF C.
    ??? ADD B3 OF B TO B3 OF C.
    組項目不一定要格式相同。一個組項目中的內容在另一個組項目中可以沒有,數據項順序也無關緊要。只是嚴格按照數據項名稱對應。
    ??? ADD A,B GIVING C. END-ADD.????????????? 將A,B相加放入C。
    ??? SUBTRACT A,B FROM C。END-SUBTRACT.????? 從C中減去A,B.
    ??? MULTIPLY A BY B GIVING C. END-MULTIPLY. 將A,B相乘放入C。
    ??? DIVIDE A INTO B GIVING C. END-DIVIDE.?? 將B除于A的結果放入C.
    ??? DIVIDE A BY B GIVING C. END-DIVIDE.???? 將A除于B的結果放入C.
    ??? DIVIDE A BY B GIVING C REMAINDER D.???? 將A除于B的商放入C,余數放入D.
    ??? D=A-B*C.
    ??? 77 C PIC S99V9.
    ??? 77 D PIC S99V9.
    ??? DIVIDE 3 INTO 7 GIVING C REMAINDER D.
    ??? C的值為2.3,D為0.1。(D=7-3*2.3)

    COMPUTE
    ??? 除了取余操作要用DIVIDE外,其他操作都可以用此語句。本語句求值一個算術表達式,并將結果存放在一個或幾個變量中。
    COMPUTE? A ROUNDED,B? = X*Y/(N+M)+Z. 將X*Y/(N+M)+Z的結果存放在B中,然后舍入后放入A中。

    MOVE
    ??? MOVE A TO B.
    ??? 也可以用CORR選項。
    ??? MOVE CORR A TO B.

    posted on 2005-10-31 11:01 小辭猬 閱讀(1004) 評論(0)  編輯  收藏 所屬分類: COBOL


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲黄色免费网站| 久久综合亚洲色一区二区三区| 亚洲综合一区国产精品| 亚洲网站免费观看| 亚洲精品白色在线发布| 91精品导航在线网址免费| 久久久亚洲欧洲日产国码aⅴ| 日韩在线不卡免费视频一区| 亚洲国产国产综合一区首页| 欧洲人成在线免费| 亚洲一区综合在线播放| 100部毛片免费全部播放完整| 亚洲国产美女视频| 永久免费视频v片www| 国产精品久久久久久亚洲小说| 免费萌白酱国产一区二区| eeuss影院ss奇兵免费com| 超清首页国产亚洲丝袜| 国产一区二区免费视频| 亚洲毛片无码专区亚洲乱| AA免费观看的1000部电影| 亚洲国产精品ⅴa在线观看| 亚洲国产小视频精品久久久三级| 久久久WWW免费人成精品| 亚洲VA中文字幕不卡无码| 18未年禁止免费观看| 亚洲日本在线电影| 亚洲人成网7777777国产| 99热精品在线免费观看| 亚洲人成色777777老人头| 亚洲精品一级无码鲁丝片| 日韩内射激情视频在线播放免费 | 日韩插啊免费视频在线观看 | 亚洲第一视频网站| 18禁成人网站免费观看| 国产精品亚洲专区在线播放| 国产亚洲美女精品久久久| 可以免费看黄视频的网站| 一本一道dvd在线观看免费视频| 内射少妇36P亚洲区| 人人狠狠综合久久亚洲高清|