Function
แบ่งโปรแกรมออกเป็นส่วนย่อยๆ
·
เรียกส่วนย่อยว่า
subroutine, subprogram,
function, method
·
แต่ละ
function มีหน้าที่ในตัวเองอย่างเด่นชัด
·
โปรแกรมอ่านง่าย
·
function
เรียกใช้ได้หลายครั้ง
โปรแกรมเริ่มต้น
โปรแกรม เมื่อมี function
องค์ประกอบของฟังก์ชัน
ต้องเยื้องคำสั่งทั้งหลายในฟังก์ชันให้ตรงกัน
ส่วนหัว : ชื่อฟังก์ชัน
·
ใช้กฎตั่งชื่อเหมือนกับตัวแปร
·
มักตั้งชื่อฟังก์ชันขึ้นต้นด้วยอักษรตัวเล็ก
·
มักตั้งชื่อฟังก์ชันให้เป็นกริยา
ส่วนหัว : รายการของพารามิเตอร์
·
parameter
คือตัวแปรสำหรับข้อมูลจากผู้เรียก
·
รายการของ parameter อยู่ภายในวงเล็บ(ถ้าไม่รับ parameter
ใดๆ ก็ไม้ต้องใส่อะไรในวงเล็บ)
ส่วนตัวของฟังก์ชัน
·
คำสั่งต่างๆที่ทำงานตามข้อกำหนด
·
ถ้าต้องการคืนผลการทำงานให้ผู้เรียกใช้คำสั่ง
return คามด้วยค่าที่ต้องการคืนผลลัพธ์
·
ถ้าต้องการคืนหลายค่า
ก็คืนเป็น tuple หรือ list
ส่วนตัว : Local Variables
·
พารามิเตอร์และตัวแปรในฟังก์ชันก์ใด
เป็นตัวแปรที่ใช้ได้ในฟังก์ชันนั้น
ชื่อซ้ำกันได้
ถ้าอยู่คนละฟังก์ชัน
เรียกใช้ตัวแปร ที่อยู่คนละฟังก์ชันไม่ได้
ตัวแปรของผู้เรียกกับของฟังก์ชันเป็นคนละตัว
ตัวแปรเก็บ int, float, bool ของฟังก์ชันเปลี่ยนแค่ของผู้เรียกไม่เปลี่ยน เพราะคนละตัว
กรณีเป็นตัวแปรแบบ
list, tuple, set, dict ตัวแปรของผู้เรียกกับพารามอเตร์ของฟังก์ชันเป็นคนละตัว
แต่อ้างอิงที่เก็บข้อมูลเดียวกัน
เมื่อใดควรเขียนฟังก์ชันใหม่
·
เมื่อฟังกืชันที่เขียนอยู่ยาวเกินไปหรือเข้าใจได้ยาก
·
เมื่อมีกลุ่มคำสั่งที่เขียนซ้ำกัน
หรือทำงานเหมือนกัน แต่ทำกับข้อมูลต่างกัน
ข้อแนะนำการเชียนฟังก์ชัน
·
ควรตั้งชื่อสือความหมาย
·
ควรมีภาวะที่ต้องทำหนึ่งอย่างตามชื่อ
·
ควรสั้นกระทัดรัด
อ่านเข้าใจง่าย
·
ควรพารามิเตอร์จำนวนไม่มาก
Recursive Function : ฟังก์ชันแบบเวียนเกิด
ความสำพัน์เวียนเกิด (Recurrences)
·
การเขียนคสามสัมพัน์ของจำนวนเต็มในลำดับ
ข้อดี-ข้อด้อย
การเขียนแบบ recursive
มีทั่งข้อดีและข้อด้อย
ข้อดี
·
ในบางกรณี มุมมองแบบ recursive จะทำให้เห็น วิธีแก้ปัณหาได้ง่ายขึ้น
·
ถ้าจำนวนชั้นของ loop
ไม่ คงที่ การใช้ recursive จะง่ายกว่ามาก
ข้อด้อย
·
บางครั้งการทำงายช้ากว่าแบบ loop
·
ใช้หน่วยความจำมากกว่า
การคำนวณ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น