MyBanner

โฆษณา

วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2557

บทที่ 4 ซับรูทีน, ฟังก์ชัน และ การควบคุมทิศทางของโปรแกรม



เนื้อหาในบทนี้ ถือเป็นจุดเริ่มต้นสำหรับการเขียนโปรแกรมด้วยภาษา OpenOffice / LibreOffice Basic ที่สามารถใช้งานได้จริง โดยการนำสิ่งที่ได้เรียนรู้ในบทก่อนหน้านี้มาประกอบเป็นโปรแกรมใช้งาน

4.1 โปรแกรมหลัก (Main Program)

ภาษา OpenOffice / LibreOffice Basic จะมีลักษณะเหมือนภาษา Basic ทั่วไป คือ ไม่มีส่วนโปรแกรมหลักที่ชัดเจนเหมือนภาษา Pascal หรือ C/C++ ซึ่งโดยทั่วไปในการเรียกโปรแกรมหรือแมโครภาษา Basic โดยไม่ระบุซับรูทีน หรือฟังก์ชันใดๆ ซับรูทีนแรกสุดที่อยู่ในแฟ้มต้นฉบับโปรแกรมหรือมอดูล จะเป็นซับรูทีนที่ถูกเรียกขึ้นมาทำงาน และทำหน้าที่เป็นส่วนโปรแกรมหลักในขณะนั้น
ในภาษา Basic รู่นเก่า ชุดคำสั่งใดๆ ที่อยู่นอกซับรูทีนหรือฟังก์ชันใดๆ จะถือว่าเป็นส่วนของโปรแกรมหลัก แต่สำหรับกรณีของการเขียนแมโคร หรือการใช้ภาษา OpenOffice / LibreOffice Basic จะไม่อนุญาตให้วางชุดคำสั่งไว้นอกซับรูทีน หรือฟังก์ชัน นอกจากชุดคำสั่งที่ต้องวางไว้ที่ตอนต้นของมอดูล หรือคำสั่งที่เกี่ยวกับการตั้งตัวแปร อย่างคำสั่ง Option Explicit เป็นต้น

รูปที่ 4-1 ซับรูทีน main ที่ OpenOffice / LibreOffice สร้างขึ้น
ในการเขียนแมโครด้วยภาษา OpenOffice / LibreOffice Basic เมื่อตั้ง “มอดูล” ขึ้นใหม่ OpenOffice / LibreOffice จะสร้างเคล้าโครงของซับรูทีนชื่อ main ขึ้น ซึ่งเหมือนกับส่วนโปรแกรมหลัก แต่ในทางปฏิบัติไม่จำเป็นต้องมีซับรูทีนชื่อ main เนื่องจากซับรูทีน และฟังก์ชันต่างๆ จะถูกเชื่อมโยงไว้กับปุ่มคำสั่ง หรือชิ้นส่วนโปรแกรมอื่นๆ ซึ่งไม่จำเป็นต้องเป็นซับรูทีนชื่อ main เสมอไป

4.2 ซับรูทีน และฟังก์ชัน

ในการสร้างโปรแกรมใช้งานขนาดใหญ่ หรือสร้างแมโครด้วยภาษา Basic อย่าง OpenOffice / LibreOffice Basic ควรจะแยกงานออกเป็นงานย่อยๆ (Procedure) หลายๆ งาน โดยแยกเป็น ซับรูทีน (Subroutine) หรือ ฟังก์ชัน (Function) ตามลักษณะของงาน ทั้งนี้เพื่อความสะดวกในการหาจุดผิดพลาดภายในโปรแกรม

4.2.1 ซับรูทีน (Subroutine)

ซับรูทีน (Subroutine) เป็นกลุ่มชุดคำสั่งภาษา OpenOffice / LibreOffice Basic ที่จัดทำขึ้นเพื่อทำกิจกรรมย่อยๆ กิจกรรมใดกิจกรรมหนึ่งภายในมอดูล ในการเขียนซับรูทีน จะต้องเขียนอยู่ภายในกรอบชุดคำสั่ง SUB ... END SUB โดยมีรูปแบบชุดคำสั่ง ดังนี้

รูปแบบชุดคำสั่ง
SUB subName [(varName1 [As Type][, varName2 [As Type][,...]])]
         statement block
END SUB
โดยที่
          -subName          หมายถึง ชื่อซับรูทีน
          -varNameN         หมายถึง รายชื่อพารามิเตอร์ที่จะส่งค่าเข้าไปในซับรูทีน
          -Type                หมายถึง ชนิดของข้อมูล
          -statement block หมายถึง ชุดคำสั่งต่างๆ ภายในซับรูทีน

4.2.2 ฟังก์ชัน (Function)

ฟังก์ชัน (Function) หมายถึงส่วนของโปรแกรมย่อยๆ หรืองานย่อยๆ เช่นเดียวซับรูทีน แต่จะต่างจากซับรูทีนตรงที่ ฟังก์ชันจะเป็นส่วนโปรแกรมย่อยที่มีการส่งค่ากลับโดยผ่านทางชื่อของฟังก์ชัน
ในการเขียนฟังก์ชัน จะต้องเขียนอยู่ในกรอบ FUNC ... END FUNC โดยมีรูปแบบชุดคำสั่ง ดังนี้

รูปแบบชุดคำสั่ง
FUNCTION funcName[(varName1 [As Type][, varName2 [As Type][,...]]]) [As Type]
         statement block
         [Exit Function]
         statement block
END FUNCTION
โดยที่
           -funcName        หมายถึง ชื่อฟังก์ชัน
           -varNameN        หมายถึง รายชื่อพารามิเตอร์ที่จะส่งค่าเข้าไปในซับรูทีน
           -Type               หมายถึง ชนิดของข้อมูล
           -statement block หมายถึง ชุดคำสั่งต่างๆ ภายในซับรูทีน
           -[Exit Function]  หมายถึง ชุดคำสั่งในการบังคับให้ออกจากฟังก์ชัน
รูปที่ 4-2 ตัวอย่างการสร้างซับรูทีนและฟังก์ชันบน OpenOffice / LibreOffice

เทรด forex กับ exness.com

บันทึกประจำวันที่ 17 มิถุนายน พ.. 2557 (2014)
เวลา
เหตุการณ์
05:00 . ตื่นนอน ดื่มกาแฟ
05:30 . งานของกิจกรรมอาชีพ กสิกรรมธรรมชาติ บ้านแม่ทำ สีทา (3/2557):จับไก่เตรียมนำไปส่งผู้ซื้อ
06:15 . อาบน้ำ
06:30 .
0.กินข้าวเช้า 1.กับข้าว:ปลาบึกทอด, แกงส้มขมิ้นปลาบึก, ผัดผักบุ้ง, ผักแตงกวาใส่ไข่
07:00 .
งานของกิจกรรมอาชีพ กสิกรรมธรรมชาติ บ้านแม่ทำ สีทา (3/2557) : นำไก่ไปส่งที่สำนักงานเกษตรอำเภอด่านช้าง, แวะเติมน้ำมันปั้มหยอดเหรียญหน้าโรงเรียนนิคมฯ 2, แวะเอาใก่ให้แม่เสี่ยว, ถึงสำนักงานเกษตร
08:30 .
งานของกิจกรรมอาชีพ งานวิทยากร/อาสาสมัคร (14/2557) : เข้าร่วมประชุม อกม. ที่ศูนย์ฝึกอบรม วิทยาลัยเกษตรและเทคโนโลยี สุพรรณบุรี
12:00 . รับประทานอาหารกลางวันที่ศูนย์ฝึกอบรม
13:00 .
ไปส่งประเทืองที่โรงพยาบาล, กลับมาร้านหนังสือ, แวะซื้อยาบำรุงร้านหมอกิจจา, แวะรับของที่ไปรษณีย์, กลับไปรอที่โรงพยาบาล, เข้าซื้อของในตลาดด่าน ช้าง, เดินทางกลับ, แวะเติมน้ำมันที่นาตาปิ้น, แวะเยี่ยมทีมงานที่ทับกระดาษ, แวะเสนอสินค้าหน้าวัดพระธาตุ, กลับถึงบ้าน
16:45 . พักผ่อน
17:15 . ทำบันทึกประจำวันของวันก่อน ทำบัญชีครัวเรือน
17:45 .
งานของกิจกรรมอาชีพ งานอินเตอร์เน็ต (18/2557) : ทำต้นฉบับบทความเรื่องใหม่ และแก้ไข Zolara Affiliete
19:30 .
0.กินข้าว 1.กับข้าว:ผัดสายบัว, ผัดแตง
19:45 . งานของกิจกรรมอาชีพ งานอินเตอร์เน็ต (18/2557):แก้ไข Zolara Affiliete
21:00 . อาบน้ำ เข้านอน


Adz2you.