COBOL

เขียนโปรแกรม COBOL การแสดงผลข้อมูลตาม DataType

บทเรียนนี้จะเป็นรูปแบบการเขียนโปรแกรมภาษา COBOL การแสดงผลข้อมูลจากตัวแปร โดยแบ่งการรับค่าแสดงผลตาม DataType ต่างๆ

จากตัวอย่างบทเรียนก่อนจะเป็นการทำงานเบื้องต้น และการ Compile โปรแกรม

การติดตั้ง GNU COBOL หรือ Open COBOL

การแสดงผลรับค่าข้อมูลนั้น ภาษา COBOL จะใช้รูปแบบการรับค่าดังนี้ ใต้การประกาศ PROGRAM-ID

        DATA DIVISION.
           WORKING-STORAGE SECTION.
           01 SW-NAME PIC A(30).
           01 SW-ID PIC 9(5) VALUE '600368'.

COBOL มีการประกาศแบบใช้ Picture Clause (PIC) เป็นการ Define ตัวแปรเป็นหลัก โดย PIC จะเป็นเหมือน regularExpression พิเศษที่รู้ว่าอะไรคือ DataType, Length, Sign และ Decimal and Position

โดยรูปแบบการใช้ Data Type นั้นจะเห็นว่า PIC A(30) คืออะไร ซึ่งจริงๆ A มาจากคำว่า Alphabetic หรือตัวอักษรที่มีความยาว 30 ตัวเก็บในตัวแปรชื่อ SW-NAME ส่วน ตัวแปร SW-ID นั้นคือการเก็บค่าตัวเลข 600368 ซึ่งน่าจะเป็นรหัสไว้ในรูปแบบ PIC 9(5) ใน Syntax ของ COBOL นั้น 9 ไม่ใช่ตัวเลขครับแต่เป็น Numeric หรือเลขจำนวนเต็ม

รูปแบบตามตารางปรากฏดังนี้

Symbol Description
9 Numeric เลขจำนวนเต็ม
A Alphabetic ตัวอักษร
X Alphanumeric อักขระอักษรเลข อักขระที่รวมทั้งตัวอักษรภาษาอังกฤษ A-Z ตัวเลข 0-9
V Implicit Decimal จุดทศนิยมคั่นภายใน
S Sign เครื่องหมายต่างๆ เช่น +,- และอาจจะเป็น .
P Assumed Decimal เลขทศนิยม

ดังนั้นพิจารณาส่วนของ Code นี้

        DATA DIVISION.
           WORKING-STORAGE SECTION.
           01 SW-NAME PIC A(30).
           01 SW-ID PIC 9(5) VALUE '600368'.

เราจะเห็นว่า SW-NAME อาจจะเป็น String อะไรก็ได้ที่มีความยาว 30 ตัวอักษร และ SW-ID คือ ตัวเลขจำนวนเต็มจำนวน 5 ตัว (ในตัวอย่างใส่ไป 6 หลัก) ทีนี้ให้เราแสดงผล ค่าต่างๆ เมื่อเปิดโปรแกรม

        PROCEDURE DIVISION.
           A000-FIRST-PARA.
           MOVE 'Banyapon Poolsawas' TO SW-NAME.
           DISPLAY "My Name : "SW-NAME.
           DISPLAY "My Identity : "SW-ID.

ส่วนการแสดงผลนั้นเริ่มที่ สร้าง String ชือผมขึ้นมา Banyapon Poolsawas ไปเก็บไว้นตัวแปล SW-NAME

A000-FIRST-PARA.
           MOVE 'Banyapon Poolsawas' TO SW-NAME.

ส่วน SW-ID นั้นมีการประกาศแต่แรกแล้วใน DATA DIVISION  ดังนั้นค่าตัวแปรจะตามมาประมวลผลได้ทันทีในส่วนของ PROCEDURE DIVISION มาลอง Compile กันดู

Code ตัวเต็มๆคือเราต้องประกาศ 3 ส่วน ได้แก่ IDENTIFICATION DIVISION เพื่อบอกว่าโปรแกรมของเราคือโปรแกรมอะไร

        IDENTIFICATION DIVISION.
        PROGRAM-ID. TUTORIAL2.

ตั้งชื่อว่า TUTORIAL2

หลังจากนั้นก็ส่วนของ DATA DIVISION และ PROCEDURE DIVISION พร้อม STOP RUN ตัวชุดคำสั่ง จะได้ไฟล์ตามนี้

        IDENTIFICATION DIVISION.
        PROGRAM-ID. TUTORIAL2.

        DATA DIVISION.
           WORKING-STORAGE SECTION.
           01 SW-NAME PIC A(30).
           01 SW-ID PIC 9(5) VALUE '600368'.

        PROCEDURE DIVISION.
           A000-FIRST-PARA.
           DISPLAY 'DAYDEV CO.,LTD.'.
           MOVE 'Banyapon Poolsawas' TO SW-NAME.
           DISPLAY "My Name : "SW-NAME.
           DISPLAY "My Identity : "SW-ID.
        STOP RUN.

เปิด Terminal มา Compile ตัวโปรแกรม COBOL ของเรา

cobc -x tutorial2.cob

จะได้ไฟล์มาแล้ว เปิดเลย

Screen Shot 2016-08-07 at 9.57.53 AM

จะเห็นว่าการทำงานของมัน ถูกต้อง โดยเฉพาะส่วนของ SW-ID ที่ปรากฏมาแค่ 5 หลักทั้งที่ข้อมูลมี 6 หลัก

Screen Shot 2016-08-07 at 9.59.24 AM

เราสามารถทดสอบรูปแบบการแสดงผลของ PIC บน DataType ต่างๆ ได้เพิ่มเติม ลองสร้าง ไฟล์ .cob มาใหม่ตั้งชื่อว่า tutorial3.cob แล้วใช้รูปแบบการประกาศ PIC แบบนี้

        IDENTIFICATION DIVISION.
        PROGRAM-ID. TUTORIAL3.

        DATA DIVISION.
           WORKING-STORAGE SECTION.
           01 SW-NUM1 PIC S9(3)V9(2).
           01 SW-NUM2 PIC PPP999.
           01 SW-NUM3 PIC S9(3)V9(2) VALUE -123.45.
           01 SW-NUM4 PIC S9(3)V9(3) VALUE +123.456.
           01 SW-NAME PIC A(6) VALUE 'DAYDEV'.
           01 SW-ID PIC X(5) VALUE '$125M'.

        PROCEDURE DIVISION.
           DISPLAY "SW-NUM1 : "SW-NUM1.
           DISPLAY "SW-NUM2 : "SW-NUM2.
           DISPLAY "SW-NUM3 : "SW-NUM3.
           DISPLAY "SW-NUM4 : "SW-NUM4.
           DISPLAY "SW-NAME : "SW-NAME.
           DISPLAY "SW-ID : "SW-ID.
        STOP RUN.

สังเกตหลังจาก Compile ให้ดีครับ

01 SW-NUM1 PIC S9(3)V9(2).

ตัวแปร SW-NUM1 จะเป็นค่า S คือเครื่องหมาย +,- ส่วนมากเป็น + จำนวน 3 หลัก คั่นด้วยทศนิยม (v) ที่เป็น เลขจำนวนเต็ม (9) เลยประกาศ V9 โดยมีจำนวน 2 หลัก ประกาศว่า V9(2)

ส่วน SW-NUM3 และ SW-NUM4 จะเป็น S9(3)V9(2) สามารถกำหนดค่าเริ่มต้น S เป็น – ได้เลยใน DATA DIVISION และตามด้วย V9 จำนวนทศนิยมเป็นตัวเลข 2 ตำแหน่ง ส่วน SW-NUM4 นั้น S เป็น + และมีทศนิยท V9(3) เป็นเลขจำนวนเต็ม 3 หลัก

ตัวแปร SW-ID เป็น X(5) คือเป็นอักขระ ตัวอักษร ตัวเลข และ เครื่องหมาย ใดๆ ที่มีความยาว 5 ตัว ก็ใส่ X(5)

ทำการ Compile โปรแกรม

cobc -x tutorial3.cob

ผลที่ได้คือ

Screen Shot 2016-08-07 at 10.12.44 AM

จะเห็นว่า COBOL นั้นจะต้องใส่ใจเรื่องของการ DEFINE เป็นหลักก่อนจะทำการประมวลผลครับ

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)
Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน