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

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

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

    superwei

    導航

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿(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 小辭猬 閱讀(1020) 評論(0)  編輯  收藏 所屬分類: COBOL


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


    網站導航:
     
    主站蜘蛛池模板: 久久成人免费大片| 亚洲精品中文字幕乱码三区| 亚洲va在线va天堂va四虎| 怡红院免费的全部视频| 亚洲精品成人在线| 一道本在线免费视频| 亚洲中文字幕无码不卡电影| 日本免费A级毛一片| 久久久久无码精品亚洲日韩| 无码国产精品一区二区免费模式| 亚洲高清在线视频| 91久久精品国产免费直播| 亚洲宅男天堂a在线| 18禁超污无遮挡无码免费网站国产 | 四虎影视久久久免费观看| 亚洲成a人片在线观看久| 久久99久久成人免费播放| 国产AV无码专区亚洲AV男同| 91香蕉在线观看免费高清| 色偷偷女男人的天堂亚洲网| 在线jyzzjyzz免费视频| 一区二区3区免费视频| 亚洲国产精品无码久久久不卡| 最近2019年免费中文字幕高清| 亚洲最新中文字幕| 国产成人免费A在线视频| 国产v亚洲v天堂a无| 免费又黄又爽又猛大片午夜| 亚洲成a人片在线观看无码 | 高清国语自产拍免费视频国产| 免费人成又黄又爽的视频在线电影| 亚洲线精品一区二区三区| 在线观看www日本免费网站| 亚洲国产精品嫩草影院| 亚洲综合色在线观看亚洲| 亚洲人成免费电影| 永久免费无码网站在线观看个 | 一本色道久久88—综合亚洲精品 | 中文字幕在线观看免费视频| 亚洲av永久无码精品秋霞电影秋| 久久亚洲欧洲国产综合|