การเขียนโปรแกรมด้วยวิธีการแบบ recursive เป็นทักษะสำคัญที่จำเป็นต่อนักพัฒนาซอฟต์แวร์ หนึ่งในภาษาโปรแกรมมิ่งที่เก่าแก่แต่ยังคงได้รับการใช้งานคือ COBOL (Common Business Oriented Language) ซึ่งถูกพัฒนาขึ้นตั้งแต่ปี 1959 และยังคงถูกใช้อยู่ในหลายบริษัทและองค์กรใหญ่ โดยเฉพาะภาคธุรกิจและภาคการเงิน ซึ่งต้องการความเสถียรและความน่าเชื่อถือสูง
การใช้ฟังก์ชันแบบ recursive ใน COBOL สามารถดำเนินการได้ไม่ยากนัก ถึงแม้ภาษานี้จะไม่ได้ออกแบบมาสำหรับการสนับสนุนการเขียนโค้ดแบบ recursive ไปตามสาย แต่ก็ไม่ได้หมายความว่าไม่สามารถทำได้ ในขอบเขตของ COBOL แล้ว การเรียกฟังก์ชันหรือซับโปรแกรมภายในตัวมันเองจำเป็นต้องพิจารณาถึงโครงสร้างกองทุนว่าสามารถรองรับการทำงานแบบนี้ได้หรือไม่
ลองมาดูตัวอย่างของการใช้งานฟังก์ชัน recursive ใน COBOL พร้อมการอธิบายการทำงาน:
IDENTIFICATION DIVISION.
PROGRAM-ID. GCD-RECURSIVE.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 Num1 PIC 9(4).
77 Num2 PIC 9(4).
PROCEDURE DIVISION.
DISPLAY "Enter two numbers: " WITH NO ADVANCING.
ACCEPT Num1.
ACCEPT Num2.
PERFORM Compute-GCD USING Num1 Num2.
STOP RUN.
Compute-GCD SECTION.
USE AFTER STANDARD-ERROR PROCEDURE ON Compute-GCD.
01 Res PIC 9(4).
COMPUTE-GCD-LINKAGE SECTION.
LINKAGE-ITEM 01 A PIC 9(4).
02 B PIC 9(4).
COMPUTE-GCD.
IF A = 0
DISPLAY "GCD is: " B
ELSE IF B = 0
DISPLAY "GCD is: " A
ELSE IF A > B THEN
CALL 'Compute-GCD' USING A - B, B
ELSE
CALL 'Compute-GCD' USING A, B - A
END-IF.
ในตัวอย่างนี้ เรากำหนดซับโปรแกรม `Compute-GCD` เพื่อคำนวณหาปัจจัยร่วมมากสุด (GCD) ได้.
IDENTIFICATION DIVISION.
PROGRAM-ID. FIBONACCI-RECURSIVE.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 Num PIC 9(4) VALUE ZEROES.
77 Result PIC 9(9) VALUE ZEROES.
PROCEDURE DIVISION.
DISPLAY "Enter the fibonacci sequence number: " WITH NO ADVANCING.
ACCEPT Num.
PERFORM Calculate-Fibonacci USING Num.
DISPLAY "The fibonacci number is: " Result.
STOP RUN.
Calculate-Fibonacci SECTION.
USE AFTER STANDARD-ERROR PROCEDURE ON Calculate-Fibonacci.
Calculate-Fibonacci-LINKAGE SECTION.
LINKAGE-ITEM 01 N PIC 9(4).
Calculate-Fibonacci.
IF N <= 1
MOVE N TO Result
ELSE
PERFORM Calculate-Fibonacci USING N - 1
MOVE Result TO Num
PERFORM Calculate-Fibonacci USING N - 2
COMPUTE Result = Result + Num
END-IF.
โค้ดนี้เป็นการใช้งานฟังก์ชัน recursive ในการคำนวณเลขฟิโบนัชชี.
IDENTIFICATION DIVISION.
PROGRAM-ID. BINARY-TREE-RECURSIVE.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 TreeNode PIC A(10).
PROCEDURE DIVISION.
DISPLAY "Binary Tree Traversal".
PERFORM Traverse-Tree USING Tree-Root.
STOP RUN.
Traverse-Tree SECTION.
USE AFTER STANDARD-ERROR PROCEDURE ON Traverse-Tree.
Traverse-Tree-LINKAGE SECTION.
LINKAGE-ITEM 01 Node PIC A(10).
Traverse-Tree.
IF Node IS NOT NULL
PERFORM Traverse-Tree USING Left-Child-Of(Node)
DISPLAY Node
PERFORM Traverse-Tree USING Right-Child-Of(Node)
END-IF.
ตัวอย่างนี้ไม่ใช่จะแสดงการทำงานจริง แต่แสดงถึงวิธีการที่เราจะใช้ `PERFORM` ในการเรียกซับพร็อดิวเจอร์แบบ recursive ในการทะยอยปริ้นข้อมูลต้นไม้แบบไบนารี.
การใช้ recursive function ใน COBOL ต้องขึ้นอยู่กับความสามารถของคอมไพเลอร์ ถ้าหากใช้งานไม่ได้หรือมีปัญหา อาจารย์ที่ EPT จะทำการสอนเทคนิคการเขียนโปรแกรมแบบอื่นๆ ที่ไม่จำเป็นต้องใช้ recursion
Usecase ตัวอย่างในโลกจริงที่ภาษา COBOL พร้อมกับการใช้งาน recursive function ได้ถูกใช้หลากหลาย เช่น การคำนวณสถิติทางการเงิน, การจัดการฐานข้อมูลขนาดใหญ่หรือแม้กระทั่งการทำงานกับขั้นตอนทางธุรกรรมที่ซับซ้อนในระบบของธนาคารหรือบริษัทประกัน การเข้าใจหลักการใช้งาน recursive function ใน COBOL สามารถช่วยให้การประมวลผลดังกล่าวแม่นยำ รวดเร็วและมีประสิทธิภาพมากขึ้น
ในการศึกษาภาษา COBOL และเทคนิคการเขียนโปรแกรมต่างๆที่ EPT นอกเหนือจากการศึกษาตามหลักสูตรเรายังมีการทำ Workshop และเคสสตัดีเพื่อให้ผู้เรียนได้ลงมือปฏิบัติจริง เพื่อเตรียมพร้อมสำหรับการทำงานในอนาคต เน้นการสร้างความเข้าใจในหลักการต่างๆ และการนำไปปรับใช้ในโลกธุรกิจจริงได้อย่างมืออาชีพ.
คุณสนใจที่จะเรียนรู้ภาษาโปรแกรมมิ่งโดยไม่จำกัดว่าจะเป็น COBOL หรือภาษาใหม่ๆอย่าง JavaScript หรือ Python หรือไม่? ที่ EPT เรามีหลักสูตรที่จะช่วยให้คุณเข้าใจหลักการเขียนโปรแกรมอย่างลึกซึ้งพร้อมทั้งเครื่องมือและวิธีการใหม่ๆ ที่จะทำให้คุณสามารถเอาชนะความท้าทายในโลกไอทีได้อย่างมั่นใจ.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: cobol recursive_function programming_language gcd fibonacci_sequence binary_tree software_development business_programming cobol_code_example cobol_tutorial programming_skill financial_statistics database_management banking_system it_industry
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM