COBOL - โครงสร้างโปรแกรม

โครงสร้างโปรแกรม COBOL ประกอบด้วยหน่วยงานดังแสดงในภาพต่อไปนี้ -

คำแนะนำสั้น ๆ ของหน่วยงานเหล่านี้มีอยู่ด้านล่าง -

  • Sectionsเป็นการแบ่งส่วนย่อยเชิงตรรกะของตรรกะโปรแกรม ส่วนคือชุดของย่อหน้า

  • Paragraphsคือการแบ่งส่วนย่อยของส่วนหรือส่วน เป็นชื่อที่ผู้ใช้กำหนดเองหรือชื่อที่กำหนดไว้ล่วงหน้าตามด้วยจุดและประกอบด้วยประโยค / รายการที่เป็นศูนย์หรือมากกว่า

  • Sentencesคือการรวมกันของหนึ่งคำสั่งขึ้นไป ประโยคจะปรากฏเฉพาะในการแบ่งขั้นตอน ประโยคต้องลงท้ายด้วยจุด

  • Statements เป็นคำสั่งภาษาโคบอลที่มีความหมายซึ่งดำเนินการประมวลผลบางอย่าง

  • Characters มีค่าต่ำสุดในลำดับชั้นและไม่สามารถหารได้

คุณสามารถเชื่อมโยงคำที่กล่าวถึงข้างต้นกับโปรแกรม COBOL ได้ในตัวอย่างต่อไปนี้ -

PROCEDURE DIVISION.
A0000-FIRST-PARA SECTION.
FIRST-PARAGRAPH.
ACCEPT WS-ID            - Statement-1  -----|
MOVE '10' TO WS-ID      - Statement-2       |-- Sentence - 1
DISPLAY WS-ID           - Statement-3  -----|
.

หน่วยงาน

โปรแกรม COBOL ประกอบด้วยสี่แผนก

กองพิสูจน์หลักฐาน

เป็นแผนกแรกและแผนกเดียวของทุกโปรแกรม COBOL โปรแกรมเมอร์และคอมไพเลอร์ใช้ส่วนนี้เพื่อระบุโปรแกรม ในส่วนนี้ PROGRAM-ID เป็นย่อหน้าบังคับเท่านั้น PROGRAM-ID ระบุชื่อโปรแกรมที่ประกอบด้วยอักขระ 1 ถึง 30 ตัว

ลองใช้ตัวอย่างต่อไปนี้โดยใช้ไฟล์ Live Demo ตัวเลือกออนไลน์

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.

ด้านล่างคือไฟล์ JCL เพื่อดำเนินการโปรแกรม COBOL ข้างต้น

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -

Welcome to Tutorialspoint

กองสิ่งแวดล้อม

การแบ่งสภาพแวดล้อมใช้เพื่อระบุไฟล์อินพุตและเอาต์พุตไปยังโปรแกรม ประกอบด้วยสองส่วน -

  • Configuration sectionให้ข้อมูลเกี่ยวกับระบบที่โปรแกรมถูกเขียนและดำเนินการ ประกอบด้วยสองย่อหน้า -

    • คอมพิวเตอร์ต้นทาง - ระบบที่ใช้ในการคอมไพล์โปรแกรม

    • คอมพิวเตอร์วัตถุ - ระบบที่ใช้ในการรันโปรแกรม

  • Input-Output sectionให้ข้อมูลเกี่ยวกับไฟล์ที่จะใช้ในโปรแกรม ประกอบด้วยสองย่อหน้า -

    • การควบคุมไฟล์ - ให้ข้อมูลของชุดข้อมูลภายนอกที่ใช้ในโปรแกรม

    • การควบคุม IO - ให้ข้อมูลของไฟล์ที่ใช้ในโปรแกรม

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
   SOURCE-COMPUTER. XXX-ZOS.
   OBJECT-COMPUTER. XXX-ZOS.

INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT FILEN ASSIGN TO DDNAME
   ORGANIZATION IS SEQUENTIAL.

กองข้อมูล

การแบ่งข้อมูลใช้เพื่อกำหนดตัวแปรที่ใช้ในโปรแกรม ประกอบด้วยสี่ส่วน -

  • File section ใช้เพื่อกำหนดโครงสร้างเร็กคอร์ดของไฟล์

  • Working-Storage section ใช้เพื่อประกาศตัวแปรชั่วคราวและโครงสร้างไฟล์ที่ใช้ในโปรแกรม

  • Local-Storage sectionคล้ายกับส่วน Working-Storage ข้อแตกต่างเพียงอย่างเดียวคือตัวแปรจะถูกจัดสรรและเริ่มต้นทุกครั้งที่โปรแกรมเริ่มดำเนินการ

  • Linkage section ใช้เพื่ออธิบายชื่อข้อมูลที่ได้รับจากโปรแกรมภายนอก

COBOL Program

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
   SELECT FILEN ASSIGN TO INPUT.
      ORGANIZATION IS SEQUENTIAL.
      ACCESS IS SEQUENTIAL.

DATA DIVISION.
   FILE SECTION.
   FD FILEN
   01 NAME PIC A(25).
   
   WORKING-STORAGE SECTION.
   01 WS-STUDENT PIC A(30).
   01 WS-ID PIC 9(5).

   LOCAL-STORAGE SECTION.
   01 LS-CLASS PIC 9(3).
   
   LINKAGE SECTION.
   01 LS-ID PIC 9(5).
   
PROCEDURE DIVISION.
   DISPLAY 'Executing COBOL program using JCL'.
STOP RUN.

JCL เพื่อดำเนินการโปรแกรม COBOL ข้างต้นมีดังนี้ -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
//INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -

Executing COBOL program using JCL

กองกระบวนงาน

การแบ่งขั้นตอนใช้เพื่อรวมตรรกะของโปรแกรม ประกอบด้วยคำสั่งปฏิบัติการโดยใช้ตัวแปรที่กำหนดในการแบ่งข้อมูล ในส่วนนี้ชื่อย่อหน้าและส่วนเป็นผู้กำหนดเอง

ต้องมีอย่างน้อยหนึ่งคำสั่งในการแบ่งขั้นตอน คำสั่งสุดท้ายที่จะยุติการดำเนินการในส่วนนี้คือSTOP RUN ซึ่งใช้ในโปรแกรมการโทรหรือ EXIT PROGRAM ซึ่งใช้ในโปรแกรมที่เรียกว่า

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-NAME PIC A(30).
   01 WS-ID PIC 9(5) VALUE 12345.

PROCEDURE DIVISION.
   A000-FIRST-PARA.
   DISPLAY 'Hello World'.
   MOVE 'TutorialsPoint' TO WS-NAME.
   DISPLAY "My name is : "WS-NAME.
   DISPLAY "My ID is : "WS-ID.
STOP RUN.

JCL เพื่อดำเนินการโปรแกรม COBOL ข้างต้น -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้นโปรแกรมจะให้ผลลัพธ์ดังนี้ -

Hello World
My name is : TutorialsPoint
My ID is : 12345