COBOL Programming COBOL ย่ อมาจาก COmmon Business Oriented Language โครงสร้ างโปรแกรมภาษาโคบอล โครงสร้ างของโปรแกรมภาษาโคบอลจะประกอบด้ วยส่ วนใหญ่ ๆ 4 ส่ วน แต่ ละส่ วนเรียกว่ า DIVISION.

Download Report

Transcript COBOL Programming COBOL ย่ อมาจาก COmmon Business Oriented Language โครงสร้ างโปรแกรมภาษาโคบอล โครงสร้ างของโปรแกรมภาษาโคบอลจะประกอบด้ วยส่ วนใหญ่ ๆ 4 ส่ วน แต่ ละส่ วนเรียกว่ า DIVISION.

COBOL Programming
COBOL ย่ อมาจาก COmmon Business Oriented Language
โครงสร้ างโปรแกรมภาษาโคบอล
โครงสร้ างของโปรแกรมภาษาโคบอลจะประกอบด้ วยส่ วนใหญ่ ๆ
4 ส่ วน แต่ ละส่ วนเรียกว่ า DIVISION และมีกฎเกณฑ์ ของการเรียง
ลาดับคาสั่ งแต่ ละส่ วนของโปรแกรม ดังนีค้ ือ
ส่ วนที่ 1 เรียกว่ า IDENTIFICATION DIVISION ซึ่งเป็ นส่ วนที่
จะบอกงานที่ทาว่ า โปรแกรมนีใ้ ครเป็ นผู้เขียน โปรแกรมชื่ออะไร เขียน
ขึน้ เมือ่ ไร ตลอดจนหมายเหตุต่าง ๆ ของโปรแกรมเท่ าที่จาเป็ น
ส่ วนที่ 2 เรียกว่ า ENVIRONMENT DIVISION ซึ่งเป็ นส่ วนที่
จะบอกงานที่ทาว่ า จะใช้ เครื่องทางหน่ วยรับงานและหน่ วยแสดงผล
จากเครื่องใด ตลอดจนเครื่องคอมพิวเตอร์ ที่ใช้ มลี กั ษณะอย่ างไร
ส่ วนที่ 3 เรียกว่า DATA DIVISION ซึ่งเป็ นส่ วนทีจ่ ะบอกงานที่
ทาว่า ข้อมูลทุกชนิดทีใ่ ช้ ในโปรแกรมนั้นจะจัดเรียงกันอยู่อย่างไรใน
หน่ วยความจาและผลทีแ่ สดงออกมาอยู่ในลักษณะใด การทางานต้ องใช้
ส่ วนความจาพิเศษเพิม่ เติมหรือไม่ จะต้ องกาหนดไว้ในส่ วนนี้
ส่ วนที่ 4 เรียกว่า PROCEDURE DIVISION ซึ่งเป็ นส่ วนทีจ่ ะ
บอกว่างานทีท่ ามีลาดับของคาสั่งทีต่ ้ องการให้ เครื่องทาการวิเคราะห์ ข้อ
มูลตามความต้ องการอย่างไร
แต่ ละ DIVISION อาจประกอบด้ วย SECTION
แต่ ละ SECTION อาจประกอบด้ วย Paragraph
แต่ ละ Paragraph อาจประกอบด้ วย Sentence
แต่ ละ Sentence อาจประกอบด้ วย Statement , clause ,
expression
แต่ ละคาสั่ งหรือวลีหรือนิพจน์ ประกอบด้ วย คา (Word)
แต่ ละคาประกอบด้ วยอักขระ (Character)
ตัวอักขระ (Characters) ที่ใช้ ในภาษา COBOL แบ่ งเป็ น 3 พวก คือ
1. ตัวเลข (Numeric characters) ได้แก่ 0 - 9
2. ตัวอักษร (Alphabetic character) ได้แก่ A - Z
3. ตัวสัญลักษณ์พเิ ศษ (Special character) ได้แก่ + - * / = < > $ , .
; “ ( ) ...
การใช้ ตัวอักขระเหล่านีท้ าหน้ าที่ต่าง ๆ กันได้ 5 พวก คือ
1. ใช้ เป็ นเครื่องหมายคานวณได้แก่ + - * / ** (ยกกาลัง)
2. ใช้ เป็ นเครื่องหมายเปรียบเทียบได้แก่ < > =
3. ใช้ เป็ นเครื่องหมายวรรคตอน ได้แก่ blank(ช่ องว่าง) , ; . ( )
“(Quotation)

กฎเกณฑ์การใช้ เครื่องหมายวรรคตอน
3.1 (blank) หมายถึง ให้ เว้นว่าง คือ ไม่เขียนคาสั่งหรือเครื่อง
หมายใด ๆ ลงไปปกติไม่นิยมเขียน แต่ จะเว้นช่ องว่างตามทีต่ ้ องการ
ตัวอย่าง
MOVE INCOME TO INCOME-OUTPUT-AREA.
3.2 เมือ่ ใช้ วงเล็บเปิ ดหรือปิ ด จะมีช่องว่างตามหลังวงเล็บเปิ ด
หรือก่อนหน้ าวงเล็บปิ ดไม่ได้
ตัวอย่าง ( A B ) เขียนแบบนีไ้ ม่ได้
ADD INCOME (K DATE) TO ACC-INCOME.


3.3 ระหว่ างชื่อข้ อมูล คาสั่ ง เครื่องหมายในการคานวณ และเครื่อง
หมายทีใ่ ช้ ในการเปรียบเทียบ จะต้ องเว้ นช่ องว่ างอย่ างน้ อย 1 ช่ อง เพือ่ มิ
ให้ คาติดกัน เพราะถ้ าเขียนติดกันแล้ วจะทาให้ Compiler แยกไม่ ออกว่ าคา
สั่ งอะไรบ้ าง ซึ่งจะทาให้ โปรแกรมผิดพลาดในขั้นการ Compiler
ตัวอย่ าง
IF YEARLY-INCOME > 1500 PERFORM TAX-ROUTINE.
3.4 การใช้ เครื่องหมาย . , ; ในโปรแกรม จะมีช่องว่ างหรือเว้ นว่ าง
หน้ าเครื่องหมายไม่ ได้ แต่ ข้างหลังเครื่องหมายจะต้ องมีช่องว่ างเสมอ
ตัวอย่ าง
ADD 1 TO COUNT-PAGE. ADD 1 TO COUNT-LINE.
4. ใช้ เป็ นเครื่องหมายในการพิมพ์ ได้ แก่
0 B + - . , Z $ * / CR DB
5. ใช้ ในการสร้ างคา ได้ แก่
A - Z 0 - 9 และ เครื่องหมาย - (hyphen)
ชนิดของคา (Type of word) แบ่ งออกเป็ น 3 ชนิด คือ
1. คาสงวน (Reserved word) เป็ นกลุ่มของคาสั่ งทีม่ กี ฎเกณฑ์ การใช้
ตามรูปแบบทีก่ าหนด แบ่ งออกเป็ น
- คาหลัก (Key word)
- คาเลือก (Optional word)
- คาเชื่อม (Connective word)
2. คาชื่อ (Name) เป็ นคาทีส่ ร้ างขึน้ มาเพือ่ ใช้ อ้างอิงถึงข้ อมูลหรือชุ ด
คาสั่ ง แบ่ งออกเป็ น 3 ประเภท
- ชื่อข้ อมูล (Data-name)
- ชื่อตาแหน่ งของชุ ดคาสั่ ง (Procedure-name)
- ชื่อเงือ่ นไข (Condition-name)
3. ชื่อพิเศษ (Special name) เป็ นคาซึ่งใช้ เขียนโปรแกรมในพารา
กราฟ SPECIAL-NAME ภายใต้ ENVIRONMENT DIVISION ผู้
เขียนโปรแกรมจะต้ องเป็ นผู้ต้ งั ชื่อเหล่ านีข้ นึ้ เพือ่ ประโยชน์ ในการเขียน
โปรแกรมให้ ส้ ั นและรัดกุมยิง่ ขึน้
กฎในการสร้ างคาชื่อ (Name)
1. ประกอบด้ วยอักขระทีน่ ามาสร้ างคาเท่ านั้น คือ A-Z และ 0-9
2. ขึน้ ต้ นด้ วยตัวอักษรและมีความยาวได้ ต้ งั แต่ 1 ถึง 30 ตัว
3. ต้ องไม่ ขนึ้ ต้ นและลงท้ ายด้ วยเครื่องหมาย - (hyphen)
4. ห้ ามมีอกั ขระพิเศษ (Special character) อืน่ ๆ ปนอยู่ในชื่อคา
ตัวอย่ าง ชื่อทีถ่ ูกต้ อง
B SALARY ACCOUNT-NUMBER ID01
SALE-TOTAL CUSTOMER-NAME RATE
ตัวอย่ าง ชื่อทีไ่ ม่ ถูกต้ องเครื่องไม่ ยอมรับ
ACC-REC*A SALARY/1 NO.01 EMP NAME
ข้ อมูลในภาษาโคบอล
1. ชนิดของข้ อมูล (Type of data) แบ่ งออกเป็ น 2 ชนิด
1. ข้ อมูลที่มคี ่ าเปลีย่ นแปลงได้ (Variable data) เป็ นลักษณะข้ อ
มูลที่มกี ารเปลีย่ นแปลงได้ เมือ่ มีการประมวลผล ข้ อมูลเหล่ านีจ้ ะถูกเรียก
โดยชื่อข้ อมูล (Data name) นั้น ๆ เช่ น SALARY, RATE, INCOME
เป็ นต้ น
2. ข้ อมูลที่มคี ่ าคงที่ (Constant data) เป็ นลักษณะข้ อมูลที่มคี ่ าคง
ที่ ไม่ มกี ารเปลีย่ นแปลงค่ า แบ่ งออกเป็ น 2 แบบ คือ
2.1 ค่ าคงที่ที่ผ้ เู ขียนโปรแกรมกาหนดขึน้ (Literal) ซึ่งแบ่ ง
เป็ น 2 แบบ คือ
2.1.1 Numeric literal เป็ นค่ าคงที่ที่นาไปคานวณได้ ได้ แก่
123, 51.6, -7, 40.025
2.1.2 Nonnumeric literal เป็ นค่ าคงที่ที่นาไปใช้ คานวณ
ไม่ ได้ ค่ าคงที่เหล่ านีจ้ ะเขียนอยู่ภายใต้ เครื่องหมาย
คาพูด เช่ น “BANGMOD” “50.25” “*****”
ข. ค่ าคงทีซ่ ึ่งกาหนดขึน้ โดยคาสงวน (Figurative constant)
ได้ แก่
ZERO, ZEROS, ZEROES หมายถึง ค่ าศู นย์
SPACE, SPACES หมายถึง Blank หรือ ช่ องว่าง
HIGH-VALUE, HIGH-VALUES หมายถึง ค่ าสู งสุ ด
LOW-VALUE, LOW-VALUES หมายถึง ค่ าต่าสุ ด
QUOTE, QOUTES หมายถึง เครื่องหมายคาพูด “
ALL literal ทาหน้ าทีเ่ ปลีย่ นแปลงข้ อมูลในตัวแปรให้
เป็ น literal ทีเ่ ขียนตามหลัง ALL ทั้งหมด
เช่ น ALL “*”
2. ประเภทของข้ อมูล (Class of data) แบ่ งออกเป็ น 3 ประเภท คือ
1. Alphabetic class ได้ แก่ A-Z และ blank
2. Numeric class ได้ แก่ 0 - 9
3. ข้ อมูลประเภทผสม (Alphameric class) ได้ แก่ อักขระใด ๆ
วลีหรือนิพจน์ (Clause or Expression)
คือ ส่ วนของคาสั่ งเพือ่ ให้ เครื่องวิเคราะห์ ข้อมูลใด ๆ แบ่ งออกเป็ น
1. นิพจน์ ทแี่ สดงการคานวณ (Arithmetic expression)
ประกอบด้ วย ชื่อข้ อมูล และหรือค่ าคงที่ โดยมีเครื่องหมายการคานวณ
คือ
** การยกกาลัง
* การคูณ
/ การหาร
+ การบวก
- การลบ
กฎเกณฑ์การคานวณของเครื่องคอมพิวเตอร์
1. ถ้ ามีวงเล็บ จะคานวณในวงเล็บชั้นในสุ ดก่อน แล้วคานวณใน
วงเล็บชั้นถัดออกมาเรื่อย ๆ
2. ถ้ าไม่มวี งเล็บ การคานวณก่อนหลังจะเรียงอันดับดังนี้
อันดับแรก ทาการคานวณการยกกาลัง (**)
อันดับสอง ทาการคานวณ * หรือ / ขึน้ อยู่กบั ว่าพบเครื่อง
หมายใดมาก่อนจะทาก่อน
อันดับสาม ทาการคานวณ + หรือ - ขึน้ อยู่กบั ว่าพบเครื่อง
หมายใดมาก่อนจะทาก่อน
3. จากข้อ 2. การทางานในอันดับเดียวกัน จะทาการคานวณจาก
ซ้ ายไปทางขวาเสมอ
4. เครื่องหมายการคานวณห้ ามเขียนติดกัน ถ้ าจาเป็ นต้ องเขียน
ติดกันให้ ใช้ วงเล็บ
ตัวอย่าง
1.5 * (A ** 2 + B / C ** 2) + D ** 2 * F / A
2. นิพจน์ แสดงตรรก (Logical expression) ประกอบด้ วยเงื่อนไข
ทาให้ เกิดค่ าทางตรรก เงื่อนไขอย่ างง่ ายได้ แก่
1. เงื่อนไขเกีย่ วกับประเภทของข้ อมูล (Class condition)
รู ปแบบ

NUMERIC
identifier IS [ NOT ] ALPHABETIC

2. เงื่อนไขทางความสั มพันธ์ (Relational condition) เป็ นเงื่อน
ไขที่เกิดจากการเปรีบยเทียบข้ อมูล 2 ชุ ด การเปรียบเทียบใช้ เครื่อง
หมายเปรียบเทียบ (Relational operator) ต่ าง ๆ ได้ แก่
รู ปแบบ Relational operator มีดงั นี้

>
IS [ NOT ] GREATER THAN

IS [ NOT ]  =EQUAL TO
IS [ NOT ]
<
LESS THAN



3. เงือ่ นไขเกีย่ วกับค่ าทางคณิตศาสตร์ ของข้ อมูล (Sign
condition) เป็ นการทดสอบข้ อมูลว่ ามีค่าเป็ นลบ หรือมีค่าเป็ นศู นย์
หรือมีค่าเป็ นบวก
รูปแบบ

 identifier
 arithmetic  exp



 POSITIVE
 IS [NOT ] 
NEGATIVE

 ZERO




4. เงื่อนไขชื่อเงื่อนไข (Condition-name condition) มีรูปแบบ
คือ
IS [ NOT ] condition-name
5. เงื่อนไขรวม (Compound condition expression) คือ การนา
เงื่อนไขตั้งแต่ สองเงื่อนไข มาเชื่อมด้ วยเครื่องหมายตรรก คือ NOT
AND OR เพือ่ ให้ ได้ ค่าตรรก
ตัวอย่ าง
A IS EQUAL TO B AND C IS LESS THAN D
คาสั่ง (Statement)
คาสั่งในภาษาโคบอลจะประกอบด้วย คากริยา (Verb) และส่ วนที่
นามาวิเคราะห์ ข้อมูล (Operand) ซึ่งคาสั่งในภาษาโคบอลจะมี 3 แบบ
คือ
1. คาสั่งบอกเล่า (Imperative statement) ได้แก่คาสั่งที่เครื่อง
ปฏิบัติการ (Execute) โดยปราศจากเงื่อนไขใด ๆ เช่ น
ADD 1 TO B.
MOVE 0 TO A.
GO TO ROUTINE-1.
2. คาสั่ งแสดงเงื่อนไข (Conditional statement) ได้ แก่ คาสั่ งที่จะ
ให้ เครื่องวิเคราะห์ ข้อมูลโดยมีเงื่อนไข เช่ น
IF STOCK-LEVEL IS LESS THAN 50 GO TO ROUTINE-1.
READ MAST-FILE AT END GO TO END-ROUTINE.
3. คาสั่ งชี้แนะตัวแปลภาษา (Compiling Directing) ได้ แก่ คาสั่ งที่
ให้ ตัวแปลภาษาปฏิบัติการอย่ างใดอย่ างหนึ่งในขณะแปลโปรแกรม
ประโยค (Sentence)
ประโยคคาสั่ งของภาษาโคบอลนั้น จะประกอบด้ วยนิพจน์
(expression) หรือคาสั่ ง (Statement) ตั้งแต่ หนึ่งคาสั่ งขึน้ ไป และจะ
ต้ องจบลงด้ วยเครื่องหมาย (.) เท่ านั้น ต่ อจาก . จะต้ องเป็ น blank
พารากราฟและเซคชั น (Paragraph and Section)
ในพารากราฟหนึ่ง ๆ จะต้ องประกอบด้ วย ประโยคตั้งแต่ หนึ่ง
ประโยคขึน้ ไป ทุก ๆ พารากราฟจะต้ องมีชื่อ จะไม่ มพี ารากราฟใดที่
ปราศจากชื่อ แม้ ว่าพารากราฟนั้น ๆ จะมีเพียงประโยคเดียว
กฎเกณฑ์ ทั่วไปในการเขียนรู ปแบบคาสั่ งในโปรแกรม
ในการเขียนคาสั่ งในภาษาโคบอลนั้น มีกฎเกณฑ์ ที่น่าสั งเกตและทา
ความเข้ าใจดังต่ อไปนี้
1. คาทีป่ รากฎในรู ปแบบคาสั่ ง ถ้ าเป็ นตัวพิมพ์ ใหญ่ ท้ งั หมด เช่ น
ASSIGN เป็ นคาเฉพาะในภาษาโคบอล (Reserved word)
2. ถ้ าคาในข้ อ 1 มีขดี เส้ นใต้ ปรากฎอยู่ด้วย เช่ น ASSIGN กาหนดว่ า
เป็ นคาหลัก (Key word) ในรู ปแบบ ซึ่งผู้เขียนโปรแกรมจะต้ องเขียนคา
นั้น ๆ เมือ่ ต้ องการใช้ รูปแบบของคาสั่ งนั้น แต่ ถ้าไม่ มเี ส้ นใต้ ถือว่ าเป็ นคา
ให้ เลือก จะเขียนหรือไม่ กไ็ ด้ ซึ่งการเขียนก็เพือ่ ให้ อ่านคาสั่ งเข้ าใจได้ ง่าย
ขึน้
3. คาหรือข้ อความตัวพิมพ์ เล็กหรือตัวเขียนที่ปรากฎในรู ปแบบคาสั่ ง
เช่ น data-name, file-name, identifier, literal, ฯลฯ กาหนดให้ เป็ นชื่อ
ข้ อมูล ค่ าคงที่ คาสั่ งหรือข้ อความใด ๆ ที่ผ้ เู ขียนโปรแกรมต้ องเขียนเติม
ลงไปในรู ปแบบคาสั่ งให้ ตรงตามความหมายของคาหรือข้ อความนั้น ๆ
เพือ่ ให้ คาสั่ งมีความสมบูรณ์ เช่ น คาสั่ ง READ
READ file-name [INTO identifier] [AT END imperativestatement]
จะต้ องเขียนเป็ น
READ CUSTOMER-FILE AT END GO TO END-PROCESS.
4. เครื่องหมาย + - < > = จะไม่ ขดี เส้ นใต้ แต่ ให้ ถือว่ าเป็ นเครื่อง
หมายที่ต้องเขียนเมือ่ ต้ องการใช้ รูปแบบนั้น ๆ
5. เครื่องหมาย , และ ; ทีป่ รากฎในรู ปแบบแสดงถึงเครื่องหมาย
วรรคตอน จะใช้ หรือไม่ กไ็ ด้
6. คาหรือข้ อความต่ าง ๆ ที่อยู่ในเครื่องหมายวงเล็บปี กกา { } แสดง
ถึงส่ วนที่ต้องเลือกเขียนคาหรือข้ อความตามที่อยู่ในวงเล็บอย่ างใดอย่ าง
หนึ่ง
7. คาหรือข้ อความต่ าง ๆ ที่อยู่ในเครื่องหมายวงเล็บใหญ่ [ ] แสดง
ถึงส่ วนที่จะเลือกใช้ หรือไม่ เลือกใช้ กไ็ ด้
8. เครื่องหมายจุดไข่ปลา ... ทีป่ รากฎในรูปแบบคาสั่ง จะหมายถึง
คาหรือข้อความต่ อ ๆ ไป
9. ประโยคคาสั่งหนึ่งประโยคจะต้ องจบลงด้วยเครื่องหมาย .
ตัวอย่าง
MOVE 0 TO A. MOVE SPACES TO PRINT-LINE.
MOVE ZEROES TO A B C.
MOVE “YES” TO E-O-F, END-FLAG.
IF SALARY > 50000 PERFORM TAX-ROUTINE
ELSE MOVE 0 TO TAX.
COBOL Coding Format
• The Coding form – this is divided into four major fields :
Usage
Columns
Sequence numbers 1 – 6
Indicator area (*,-)
7
Area A (Headers)
8 – 11
Area B (statements) 12 – 72
Program identification 73 – 80