บทที่ 6การเขียนฟังก์ชันและมอดูล
ในการเขียนคำสั่งหรือการใช้คำสั่งคอมพิวเตอร์ โปรแกรมภาษาคอมพิวเตอร์ ต่าง ๆ มักจะมีฟังก์ชันให้ผู้ใช้เรียกใช้อยู่เป็นจำนวนมาก ฟังก์ชันเหล่านั้นจะเรียกใช้กันซ้ำ ๆ ดังนั้นโปรแกรมที่ดีจะต้องมีฟังก์ชันให้เลือกใช้ได้หลากหลาย ครอบคลุมในทุก ๆ ด้าน แต่อย่างไรก็ตาม โปรแกรมเมอร์มักจะมีความคิดต่อยอดจากฟังก์ชันที่มีมาให้ โดยการเขียนคำสั่งเป็นฟังก์ชันเพิ่มเติมของตนเอง เพื่อใช้กับการประมวลผลโปรแกรมที่ตนเองคิดไว้ ดังนั้นทุก ๆ ภาษาจึงยอมให้โปรแกรมเมอร์สร้างฟังก์ชันเองได้ เมื่อสร้างฟังก์ชันของตนเองไว้เป็นจำนวนมาก การเก็บรวบรวมโดยจัดเป็นหมวดหมู่ให้สอดคล้องกับหน้าที่ จึงนิยมเก็บเป็นมอดูล ในบทนี้จะกล่าวถึง การสร้างฟังก์ชัน การใช้ฟังก์ชัน และการสร้างมอดูล ดังมีรายละเอียดต่อไปนี้
ความหมายของฟังก์ชัน
คำว่าฟังก์ชัน
หลายคนคงคุ้นเคยกับคำนี้เมื่อได้ใช้อุปกรณ์ที่ทำงานด้วยระบบอิเล็กทรอนิกส์ เช่น
เครื่องคิดเลขที่ใช้คำนวณค่าทางวิทยาศาสตร์ คงเคยใช้ฟังก์ชันการหาผลลัพธ์ของเลขยกกำลัง
เช่น เมื่อต้องการหาค่า 28 โดยทั่วไป การใช้เครื่องคิดเลขต้องเอาเลข 2
คูณกันจำนวน 8 ครั้ง ถ้าหากจำนวนเลขยกกำลังมากขึ้นจะทำให้เสียเวลา ดังนั้นการใช้แป้น
“x^y” แทน ด้วยวิธีการกดปุ่มเลข 2 และกดปุ่ม “x^y” และตามด้วยเลข
8 จากนั้นกดปุ่ม “=” จะได้คำตอบเท่ากับ 256 จะเห็นว่าปุ่ม
“x^y” ได้สร้างขึ้นมาเพื่อทำหน้าที่คำนวณเลขยกกำลังโดยเฉพาะ
แทนการคูณแบบปกติ เป็นต้น ทำให้สะดวกรวดเร็วมากขึ้น
ฟังก์ชัน ตามความหมายของศาสตร์ด้านวิทยาการคอมพิวเตอร์ หมายถึง
โปรแกรมย่อย หรืองานย่อย ๆ ภายในโปรแกรมขนาดใหญ่
(หรือเรียกว่า กระบวนงาน เมท็อด หรือรูทีน) ภายในโปรแกรมขนาดใหญ่จะประกอบด้วยคำสั่งต่าง
ๆ มากมาย ดังนั้นเพื่อต้องการลดคำสั่งให้สั้นลง จึงได้มีการรวบรวมคำสั่งที่ทำหน้าที่เหมือนกันเข้าด้วยกัน
เป็นโปรแกรมย่อย
เมื่อต้องการให้ประมวลผลคำสั่งที่ซ้ำ ๆ เหล่านั้น ตรงตำแหน่งใด จึงเรียกใช้โปรแกรมย่อยนั้นให้ทำงาน
ฟังก์ชันเป็นเครื่องมือในการเขียนโปรแกรมที่มีประโยชน์มากสำหรับการนำคำสั่งมาใช้ซ้ำ
ๆ สำหรับการเรียกชื่อของฟังก์ชัน ถ้าเป็นกรณีการเขียนโปรแกรมเชิงโครงสร้างมักจะเรียกว่า
“ฟังก์ชัน”
แต่ในการเขียนโปรแกรมแบบเชิงวัตถุมักจะเรียกฟังก์ชันว่า “เมท็อด” มากกว่า วิธีการสร้างฟังก์ชันจะได้กล่าวในหัวข้อต่อไป
อาร์กิวเมนต์ของฟังก์ชัน
อาร์กิวเมนต์ (argument) หรือพารามิเตอร์ (parameter)
หมายถึง ค่าของข้อมูลหรือตัวแปรที่อ้างอิง
โดยการส่งผ่านมาจากโปรแกรมหลัก มายังชื่อฟังก์ชันที่กำหนด
เพื่อให้ฟังก์ชันนั้นนำค่าของข้อมูลหรือตัวแปรไปประมวลผลใด
ๆ รูปแบบการเขียนอาร์กิวเมนต์ของฟังก์ชัน
ประกอบด้วยชื่อฟังก์ชันและมีอาร์กิวเมนต์อยู่ภายในวงเล็บหลังชื่อฟังก์ชัน
จำนวนข้อมูลหรือตัวแปรมากกว่าหนึ่งให้ใช้เครื่องหมายจุลภาคคั่น
แต่บางฟังก์ชันอาจไม่มีอาร์กิวเมนต์ก็ได้ โดยใส่เครื่องหมาย () หลังชื่อฟังก์ชัน อาร์กิวเมนต์ของฟังก์ชันในภาษาไพธอนมีทั้งหมด 4 ชนิดด้วยกัน
ได้แก่ ฟังก์ชันที่จำเป็นต้องมีอาร์กิวเมนต์ อาร์กิวเมนต์ที่มีคีย์เวิร์ด อาร์กิวเมนต์ที่มีค่าเริ่มต้น
และอาร์กิวเมนต์ที่มีขนาดไม่แน่นอน ดังรายละเอียดต่อไปนี้
1. ฟังก์ชันชนิดที่จำเป็นต้องมีอาร์กิวเมนต์
ฟังก์ชันที่จำเป็นต้องมีอาร์กิวเมนต์ หมายถึง ฟังก์ชันที่ได้กำหนดให้มีอาร์กิวเมนต์ขณะที่ประกาศชื่อฟังก์ชัน เมื่อโปรแกรมหลักเรียกใช้ฟังก์ชันโดยไม่มีอาร์กิวเมนต์ส่งไปด้วย จะทำให้การทำงานของโปรแกรมมีปัญหา ภาษาไพธอนจะแจ้งเตือนความผิดพลาดให้ทราบทันที ให้พิจาณาจากฟังก์ชันในภาพที่ 6.1
ฟังก์ชันที่จำเป็นต้องมีอาร์กิวเมนต์ หมายถึง ฟังก์ชันที่ได้กำหนดให้มีอาร์กิวเมนต์ขณะที่ประกาศชื่อฟังก์ชัน เมื่อโปรแกรมหลักเรียกใช้ฟังก์ชันโดยไม่มีอาร์กิวเมนต์ส่งไปด้วย จะทำให้การทำงานของโปรแกรมมีปัญหา ภาษาไพธอนจะแจ้งเตือนความผิดพลาดให้ทราบทันที ให้พิจาณาจากฟังก์ชันในภาพที่ 6.1
จากโปรแกรมดังภาพที่ 6.1 เป็นการสร้างฟังก์ชันเพื่อหาค่าตามสูตรของพิธากอรัส
โดยกำหนดให้รับค่าตัวแปรจำนวน 2 ค่า ได้แก่ a และ b
ซึ่งเป็นด้าน 2 ด้านที่ประชิดมุมฉาก
และต้องการหาค่าด้านที่อยู่ตรงกันข้ามมุมฉาก ได้แก่ ตัวแปร c โดยที่ c = sqrt((a*a)+(b*b)) แล้วส่งค่า c ออกไป เมื่อนำมาประมวลผลคำสั่งในโปรแกรมหลัก หรือคำสั่ง print
Pythagoras() ผลลัพธ์ที่ได้จะแสดงผลการทำงานผิดพลาด ดังภาพที่ 6.2
ภาพที่ 6.2 แสดงผลการผิดพลาด
ผลการเรียกใช้ฟังก์ชันโดยไม่มีอาร์กิวเมนต์จะทำให้เกิดข้อผิดพลาดแสดงผลออกมา
เมื่อแก้ไขโดยการเรียกใช้ฟังก์ชันให้มีอาร์กิวเมนต์ดังภาพที่ 6.3 ให้พิจารณา อาร์กิวเมนต์ที่แก้ไขเพิ่มเติม
ดังภาพที่ 6.3
ภาพที่ 6.3 แสดงคำสั่งฟังก์ชันที่มีอาร์กิวเมนต์
จากภาพที่ 6.3 เมื่อเรียกใช้ฟังก์ชันโดยระบุอาร์กิวเมนต์จำนวน
2 ค่าตามรูปแบบที่ฟังก์ชันได้สร้างเอาไว้ ผลการทำงานจึงได้ดังภาพที่ 6.4
ภาพที่ 6.4 แสดงผลลัพธ์ของการใช้ฟังก์ชัน
จากภาพที่ 6.4
ผลลัพธ์การเรียกใช้ฟังก์ชัน จากการทำงานของฟังก์ชัน สามารถอธิบายการทำงานได้ดังนี้
เมื่อใช้คำสั่ง print
“ค่าความกว้างของ c :”, Pythagoras(3,4) เมื่อโปรแกรมประมวลผลที่คำสั่งบรรทัดสุดท้าย Pythagoras(3,4) โปรแกรมจะไปเรียกฟังก์ชันที่ประกาศเอาไว้
โดยนำเอาค่า 3 และ 4 ไปแทนค่าในตัวแปร a และ b เมื่อประมวลผลด้วย c จะส่งค่า c มาที่คำสั่งที่เรียกใช้ฟังก์ชันนั้น
ได้แก่ คำสั่งบรรทัดสุดท้าย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น