<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


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


    網站導航:
     
    主站蜘蛛池模板: 免费国产人做人视频在线观看| 麻豆成人精品国产免费| 亚洲最大中文字幕| 日韩在线免费播放| 亚洲精品黄色视频在线观看免费资源| 国产性爱在线观看亚洲黄色一级片| a级片免费在线播放| 亚洲一区中文字幕在线观看| 免费乱理伦在线播放| 久久国产乱子伦精品免费看| 亚洲国产乱码最新视频| 亚洲日韩在线第一页| 久久99国产乱子伦精品免费| 亚洲男人的天堂在线va拉文| 无码日韩精品一区二区三区免费| 亚洲欧美国产欧美色欲| 亚洲人成网7777777国产| 日韩视频在线免费| 久久成人a毛片免费观看网站| 亚洲AV无码专区亚洲AV桃| 久久精品国产亚洲夜色AV网站| 香蕉视频在线观看免费国产婷婷| 青青操免费在线观看| 男女猛烈激情xx00免费视频| 亚洲av产在线精品亚洲第一站| 又黄又爽无遮挡免费视频| 57pao国产成视频免费播放| 亚洲精品国产av成拍色拍| 亚洲精品自在在线观看| 国产成人精品免费视频软件| 成人a毛片视频免费看| 亚洲毛片在线观看| 又爽又高潮的BB视频免费看| 四虎在线成人免费网站| 国产日韩精品无码区免费专区国产| 99热亚洲色精品国产88| 亚洲国产一区二区三区青草影视 | 午夜亚洲av永久无码精品| 最近2022中文字幕免费视频| baoyu777永久免费视频 | 亚洲精品综合久久|