การเขียนโปรแกรมทางด้านวิชาการเป็นสิ่งที่ต้องการความชำนาญและความเข้าใจที่ลึกซึ้งในหลักการเขียนโค้ด ซึ่งหากคุณกำลังศึกษาหรือทำงานด้านการเขียนโปรแกรม คุณจะพบว่า COBOL (Common Business-Oriented Language) คือหนึ่งในภาษาโปรแกรมที่มีความสำคัญในโลกของการเขียนโปรแกรมสำหรับธุรกิจ แม้ว่าตามเทรนด์ปัจจุบันจะมีการใช้งานภาษาโปรแกรมใหม่ๆ อย่าง Java, Python หรือ JavaScript แต่ COBOL ยังเป็นหัวใจสำคัญของระบบคอมพิวเตอร์หลายๆ แห่ง โดยเฉพาะในธนาคาร หน่วยงานภาครัฐ และองค์กรที่มีระบบที่ทำงานมาเป็นเวลานาน
หนึ่งในลูกเล่นที่น่าสนใจใน COBOL คือการใช้ "การส่งฟังก์ชันเป็นตัวแปร" (sending function as variable) ซึ่งเป็นแนวคิดที่ท้าทายทางด้านความคิดวิเคราะห์และการออกแบบโปรแกรม ในบทความนี้ เราจะมาดูเรื่องนี้กันแบบง่ายๆ พร้อมตัวอย่างโค้ดที่ช่วยให้คุณเข้าใจคอนเซ็ปต์ได้ดียิ่งขึ้น พวกเราที่ EPT (Expert-Programming-Tutor) เชื่อว่าการเรียนรู้ผ่านตัวอย่างจะทำให้คุณซึมซับและเข้าใจหลักการได้ดี
ก่อนที่เราจะไปรับชมตัวอย่างโค้ด สิ่งที่เราต้องทำคือการทำความเข้าใจถึงความหมายของ "การส่งฟังก์ชันเป็นตัวแปร" ใน COBOL โดยภายในภาษานี้อาจไม่มีความสามารถนี้แบบชัดเจนเหมือนในภาษาโปรแกรมอื่นๆ แต่เราสามารถทำผ่านการส่ง PARAMETERS หรือ ARGUMENTS ไปยังโปรแกรมที่ถูกเรียก บางทีอาจจะเป็นโค้ดที่ทำหน้าที่เหมือนฟังก์ชันในส่วนของห้องครัว (subroutine) ได้
ตัวอย่างที่ 1: ส่งค่าเป็นตัวแปรเพื่อคำนวณ
IDENTIFICATION DIVISION.
PROGRAM-ID. CalculateSquare.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM PIC 99 VALUE ZEROS.
01 RESULT PIC 99 VALUE ZEROS.
PROCEDURE DIVISION.
ACCEPT NUM.
CALL "SQUARE" USING NUM RESULT.
DISPLAY "The square of " NUM " is " RESULT.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. SQUARE.
DATA DIVISION.
LINKAGE SECTION.
01 IN-NUM PIC 99.
01 OUT-RES PIC 99.
PROCEDURE DIVISION USING IN-NUM OUT-RES.
MULTIPLY IN-NUM BY IN-NUM GIVING OUT-RES.
EXIT PROGRAM.
ในตัวอย่างนี้ เรามีโปรแกรมหลักซึ่งรับค่าตัวเลขจากผู้ใช้แล้วส่งไปยังโปรแกรมที่จะคำนวณกำลังสองของตัวเลขดังกล่าว โดยที่ค่าที่ได้จะถูกส่งกลับมายังโปรแกรมหลักและแสดงผล
ตัวอย่างที่ 2: ส่งชื่อฟังก์ชันเป็นตัวแปร
ใน COBOL อาจไม่ได้มีการส่งชื่อฟังก์ชันเป็นตัวแปร แต่เราสามารถใช้การทำงานของ CALL ที่เป็นการเรียกโปรแกรมย่อยโดยตรง เช่น CALL 'CALCULATE' หรือ CALL 'DISPLAY_RESULT' ซึ่งถือเป็นการใช้งานโดยอ้อมที่ใกล้เคียง
ตัวอย่างที่ 3: การคำนวณเงินเดือนพนักงาน
IDENTIFICATION DIVISION.
PROGRAM-ID. PAYROLLCALC.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMPLOYEE-NAME PIC A(30).
01 HOURS-WORKED PIC 99.
01 HOURLY-RATE PIC 9(3).
01 GROSS-PAY PIC 9(5).
PROCEDURE DIVISION.
ACCEPT EMPLOYEE-NAME.
ACCEPT HOURS-WORKED.
ACCEPT HOURLY-RATE.
CALL "CALCGROSSPAY" USING HOURS-WORKED HOURLY-RATE GROSS-PAY.
DISPLAY "Employee: " EMPLOYEE-NAME ", Gross Pay: $" GROSS-PAY.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. CALCGROSSPAY.
DATA DIVISION.
LINKAGE SECTION.
01 HOURS PIC 99.
01 RATE PIC 9(3).
01 PAY PIC 9(5).
PROCEDURE DIVISION USING HOURS RATE PAY.
MULTIPLY HOURS BY RATE GIVING PAY.
EXIT PROGRAM.
ในตัวอย่างสุดท้ายนี้ โปรแกรมเงินเดือนจะส่งพารามิเตอร์หรือตัวแปรที่เกี่ยวข้องกับการคำนวณเงินเดือนไปยังโปรแกรมย่อยที่ทำการคำนวณเงินเดือนเป็นจำนวนเงินรวม
Usecase ในโลกจริงของการส่งฟังก์ชันใน COBOL นั้นมักเจอในการทำโปรแกรมที่ต้องการการแยกส่วนการทำงาน เช่น การทำระบบ Payroll ระบบการจองตั๋ว หรือระบบการจัดการลูกค้าในธนาคาร ซึ่งล้วนต้องการส่วนประกอบที่สามารถทำงานได้อย่างอิสระและเป็นโมดูลาร์ การส่งฟังก์ชันหรือโปรขั้นย่อยเป็นวิธีที่ดีที่จะรักษาความสะอาดและมีโครงสร้างของโปรแกรม
สำหรับคุณที่สนใจการทำงานด้วยภาษา COBOL หรืออยากรู้เพิ่มเติมเกี่ยวกับหัวข้อนี้ ที่ EPT เรารับสอนและให้ความรู้เกี่ยวกับแนวคิดวิชาการโปรแกรมมิ่งและหลักการออกแบบโปรแกรมอย่างเข้าใจง่ายและลึกซึ้ง เพราะเราเชื่อว่านักพัฒนาที่ดีจะต้องมีพื้นฐานที่แข็งแรงและความสามารถในการวิเคราะห์โปรแกรมได้ดี เพียงแค่ติดต่อเรา คุณก็จะก้าวหน้าไปอีกขั้นในโลกแห่งการเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ได้อย่างแน่นอน!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: cobol การส่งฟังก์ชันเป็นตัวแปร sending_function_as_variable โปรแกรม_cobol คำนวณเงินเดือน การทำงานโปรแกรม โมดูลาร์_cobol แนวคิด_cobol โค้ด_cobol การทำงานด้วย_cobol subroutine_cobol ระบบ_payroll_cobol การส่งพารามิเตอร์_cobol การส่ง_arguments_cobol
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM