คราวที่แล้วพูดถึงโปรแกรมย่อยไปแล้ว คราวนี้จะมาต่อที่ฟังก์ชันอีกแบบนึงนะครับ
 
2. ฟังก์ชันแบบฟังก์ชัน(??)
 
อย่าเพิ่งสับสนกับเรื่องคำเรียกนะครับ เพราะเอาเข้าจริงๆ อีกหน่อยเราก็จะใช้ปนๆกันไปเอง 
 
ฟังก์ชันต่างกับโปรแกรมย่อยตรงที่มีการคืนค่าครับ
 
อย่างที่เราเปรียบเทียบไปคราวก่อน โปรแกรมย่อยเป็นเหมือนเครื่องจักรสำหรับ "ทำงาน" ครับ คือสร้างไป พอจะใช้ ก็เหมือนเรียกให้มันทำนู่นทำนี่ มีข้อดีคือสร้างครั้งเดียว ใช้งานได้หลายครั้ง
 
ฟังก์ชันต่างกันครับ มันเป็นเหมือนเครื่องจักรสำหรับ "ผลิต" หรือ "คำนวณ" มากกว่า หน้าที่ของมันคือรับ input เข้าไป ประมวณผล แล้วตอบ output ออกมา เหมือนกับเครื่องจักรหรือโรงงานผลิต ที่เราโยนวัตถุดิบเข้าไป มันจะให้ผลิตภัณฑ์ออกมาครับ
 
แยกระหว่างฟังก์ชันกับโปรแกรมย่อยไม่ออกก็ไม่เป็นไรนะครับ
 
ถ้าในภาษาซี ก็คือเปรียบเหมือนการสร้างโปรแกรมย่อย มีการส่งค่าบางอย่างให้ (เรียกค่าที่ส่งให้พารามิเตอร์ ในโปรแกรมแฟคทอเรียล พารามิเตอร์ก็คือค่า n นั่นเ