More Related Content Similar to 3.6 ฟังก์ชัน (20) More from รัสนา สิงหปรีชา More from รัสนา สิงหปรีชา (20) 3.6 ฟังก์ชัน2. ฟังก์ชัน (Function)คือ ชุดคาสั่งที่รวมกันเป็นโปรแกรม ย่อย ๆ ภายในเครื่องหมาย {} ถูกสร้างขึ้นมาเพื่อทางานอย่างใด อย่างหนึ่ง และมีการตั้งชื่อของฟังก์ชันเพื่อให้สะดวกต่อการเรียกใช้ งาน ตามกฎการตั้งชื่อ โดยมีรูปแบบการใช้งานแตกต่างกันคือ จะ มีการรับหรือไม่รับข้อมูลจากโปรแกรมที่เรียกใช้งาน และจะมีการ ส่งหรือไม่ส่งค่าข้อมูลออกจากฟังก์ชัน ซึ่งรูปแบบการใช้งานต่าง ๆ ของฟังก์ชันจะขึ้นอยู่กับหน้าที่และเป้าหมายการทางานของฟังก์ชัน นั้น ๆ 4. ในการเขียนโปรแกรมภาษา C มีโครงสร้างประกอบด้วยฟังก์ชัน การทางาน โดยเริ่มต้นการทางานที่ฟังก์ชัน main() นั้นสามารถเรียกใช้ ฟังก์ชันย่อยอื่น ๆ ได้ ไม่ว่าจะเป็นฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเอง (User - Define Function)หรือฟังก์ชันมาตรฐานที่ภาษา C ได้สร้างมาให้แล้ว (Standard Library Function)นอกจากนี้ในฟังก์ชันย่อยก็ยังสามารถที่ จะเรียกใช้ฟังก์ชันย่อยอื่น ๆ ได้เช่นกัน เช่น ฟังก์ชัน main() เรียกใช้งาน ฟังก์ชัน A และฟังก์ชัน B, ฟังก์ชัน A เรียกใช้งานฟังก์ชัน C ฟังก์ชัน C ฟังก์ชัน D และฟังก์ชัน F ส่วนฟังก์ชัน B เรียกใช้งานฟังก์ชัน E และ ฟังก์ชัน F เป็นต้น 5. ฟังก์ชันที่สร้างขึ้นเอง(User -Define Function)
1
ฟังก์ชันที่ไม่มีการคืนค่ากลับ และไม่มีการรับค่าพารามิเตอร์
2
ฟังก์ชันที่ไม่มีการคืนค่ากลับ และมีการรับค่าพารามิเตอร์
3
ฟังก์ชันที่มีการคืนค่ากลับ แต่ไม่มีการรับค่าพารามิเตอร์
4
ฟังก์ชันที่มีการคืนค่ากลับ และมีการรับค่าพารามิเตอร์
ฟังก์ชันที่สร้างขึ้นเอง(User -Define Function) เป็น ฟังก์ชันที่เราเขียนโค้ดฟังก์ชันขึ้นมาใช้งานเองตามรูปแบบ การสร้างฟังก์ชันของภาษา C เพื่อให้ทางานอย่างใดอย่าง หนึ่ง ซึ่งแบ่งรูปแบบการสร้างฟังก์ชันได้ 4 รูปแบบ ดังนี้ 6. ฟังก์ชันที่มีการคืนค่ากลับ และไม่มีการรับค่าพารามิเตอร์ (Void Functions with No Parameters)เป็นฟังก์ชันที่สร้างขึ้นโดยไม่มีการรับ ค่าข้อมูล (พารามิเตอร์) ใด ๆ จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชัน ทางานเสร็จจะไม่มีการคืนค่าข้อมูลใด ๆ กลับไปให้ฟังก์ชันที่เรียกใช้งาน ซึ่งมีรูปแบบการสร้างฟังก์ชัน ดังนี้
1
ฟังก์ชันที่ไม่มีการคืนค่ากลับ และไม่มีการรับค่าพารามิเตอร์ (Void Functions with No Parameters)
void functionName(void)
{
statements;
}
โดยที่functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง
statements เป็นชุดคาสั่งภายในฟังก์ชัน 7. ฟังก์ชันที่ไม่มีการคืนค่ากลับ แต่มีการรับค่าพารามิเตอร์ (Void FunctionswithParameters)เป็นฟังก์ชันที่สร้างขึ้นโดยมีการรับ ค่าข้อมูล (พารามิเตอร์) จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชัน ทางานเสร็จจะไม่มีการคืนค่าข้อมูลใด ๆ กลับไปให้ฟังก์ชันที่เรียกใช้ งาน ซึ่งมีรูปแบบการสร้างฟังก์ชันดังนี้
2
ฟังก์ชันที่ไม่มีการคืนค่ากลับ แต่มีการรับค่าพารามิเตอร์ (Void Functions with Parameters)
void functionName(typeParameter_1 varName_1, …, typeParameter_nvarName_n)
{
statements;
} 9. 3
ฟังก์ชันที่ไม่มีการคืนค่ากลับ แต่ไม่มีการรับค่าพารามิเตอร์ (Function Return Value with No Parameters)
ฟังก์ชันที่มีการคืนค่ากลับ แต่ไม่มีการรับค่าพารามิเตอร์ (Function Return Value with No Parameters)เป็นฟังก์ชันที่สร้างขึ้น โดยไม่มีการรับค่าข้อมูล (พารามิเตอร์) ใด ๆ จากฟังก์ชันที่เรียกใช้งาน และเมื่อฟังก์ชันทางานเสร็จจะมีการคืนค่าข้อมูลกลับไปให้ฟังก์ชันที่ เรียกใช้งาน ซึ่งมีรูปแบบการสร้างฟังก์ชัน ดังนี้
typeReturnfunctionName(void)
{
statements;
return varNameReturn;
} 10. โดยที่ functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง typeReturn เป็นชนิดข้อมูลที่ต้องการคืนค่ากลับให้ฟังก์ชันที่เรียกใช้ varNameReturn เป็นชื่อตัวแปรที่คืนค่ากลับให้ฟังก์ชันที่เรียกใช้งาน ซึ่งมี ชนิดข้อมูลเดียวกันกับ typeReturn statements เป็นชุดคาสั่งภายในฟังก์ชัน 11. 3
ฟังก์ชันที่มีการคืนค่ากลับ และมีการรับค่าพารามิเตอร์ (Function Return Value with Parameters)
ฟังก์ชันที่มีการคืนค่ากลับ และมีการรับค่าพารามิเตอร์ (Function Return Value with Parameters)เป็นฟังก์ชันที่สร้างขึ้นโดย มีการรับค่าข้อมูล (พารามิเตอร์) จากฟังก์ชันที่เรียกใช้งาน และเมื่อ ฟังก์ชันทางานเสร็จจะมีการคืนค่าข้อมูลกลับไปให้ฟังก์ชันที่เรียกใช้งาน ซึ่งมีรูปแบบการสร้างฟังก์ชัน ดังนี้
typeReturnfunctionName(typeParameter_1 varName_1, …, typeParameter_nvarName_n)
{
statements;
return varNameReturn;
} 12. โดยที่ functionName เป็นชื่อฟังก์ชันที่ต้องการสร้าง typeParameter_n เป็นชนิดข้อมูลที่ต้องการรับจากฟังก์ชันที่เรียกใช้varName-n เป็นชื่อตัวแปรที่ใช้รับข้อมูลจากฟังก์ชันที่เรียกใช้งาน typeReturnเป็นชนิดข้อมูลที่ต้องการคืนค่ากลับให้ฟังก์ชันที่เรียกใช้งาน statements เป็นชุดคาสั่งภายในฟังก์ชัน varNameReturn เป็นชื่อตัวแปรที่คืนค่ากลับมาให้ฟังก์ชันที่เรียกใช้งาน ซึ่งมีชนิดข้อมูลเดียวกันกับ 13. การส่งค่าผ่านพารามิเตอร์
การส่งข้อมูลแบบส่งผ่านค่า (Call by Value)คือ เมื่อมีการ เรียกใช้งานฟังก์ชันและมีการ ส่งข้อมูลให้ฟังก์ชัน โดย ฟังก์ชันที่ถูกเรียกใช้งานจะมี ตัวแปรมารับค่าข้อมูล ซึ่งการ กระทาใด ๆ กับตัวแปรที่รับค่า ข้อมูลในฟังก์ชัน จะไม่มีผลกับ ค่าของตัวแปรที่ส่งให้ฟังก์ชัน นั้น ๆ
สามารถทาได้ 2 รูปแบบคือ การส่งข้อมูลแบบส่งผ่านค่า และการส่งข้อมูล แบบส่งผ่านตัวอ้างอิง
การทางานของการส่งข้อมูลแบบ ส่งผ่านตัวอ้างอิง (Call by Reference) คือ เมื่อมีการเรียกใช้งานฟังก์ชันและมี การส่งข้อมูลให้ฟังก์ชัน โดยที่ฟังก์ชันที่ ถูกเรียกใช้งานจะมีตัวแปรมารับ ตาแหน่งที่อยู่ของข้อมูล หรือก็คือใช้ตัว แปรพอยน์เตอร์มารับตาแหน่งที่อยู่ของ ข้อมูลนั่นเอง ซึ่งการกระทาใด ๆ กับ ตัวแปรที่รับค่าข้อมูลในฟังก์ชันจะมีผล กับค่าของตัวแปรที่ส่งให้ฟังก์ชันนั้น ๆ ดัวย 15. ฟังก์ชันแบบเรียกตัวเอง (recursive function)
ฟังก์ชันที่มีการเรียกตัวเองโดยให้พารามิเตอร์ที่แตกต่างกันออกไปเช่น การหา
Factorial หรือการหา Fibonacci
5!
5 * 4!
4 * 3!
3 * 2! 2 * 1!
1
n! = n * (n-1)! factorial(n) = n * factorial(n-1) 16. #include<stdio.h>
int factorial(int x);
int main()
{
int y = factorial(3);
printf("3! = %d“, y);
return 0;
}
int factorial(int x)
{
if(x <= 1)
return 1;
else
return x* factorial(x-1);
} 17. ฟังก์ชันแบบเรียกตัวเอง (recursive function)
#include<stdio.h>
int factorial(int x);
int main()
{
int y = factorial(3);
printf("3! = %d“, y);
return 0;
}
int factorial(int x)
{
if(x <= 1)
return 1;
else
return x* factorial(x-1);
} 19. ฟังก์ชันมาตรฐานที่ภาษา C ได้สร้างมาให้แล้ว (Standard Library Function)
ฟังก์ชันมาตรฐาน เป็นฟังก์ชันที่ผู้ผลิตคอมไพล์เลอร์ เขียนขึ้นเพื่อผู้ใช้นาไปใช้ในการเขียนโปรแกรม เพื่อให้เขียนโปรแกรมได้สะดวกและง่ายขึ้น บางครั้ง อาจเรียกว่า library functions ปกติฟังก์ชันเหล่านี้ จะจัดเก็บไว้ใน header files ดังนั้นผู้ใช้จะต้องรู้ว่า ฟังก์ชันนั้นอยู่ใน header file ใด จึงจะนาไปเรียกใช้ ในส่วนต้นของโปรแกรม ด้วย #include <header file.h> ได้ เช่น #include<stdio.h> 20. จะอยู่ในไลบราลี math.h
ไลบราลีฟังก์ชันการคานวณทางคณิตศาสตร์
ไลบราลีฟังก์ชัน
คาอธิบาย
sin(x)
เป็นฟังก์ชันหาค่า sin ของมุม โดยที่ x เป็นมุมที่ต้องการหา มีหน่วยเป็นเรเดียน
cos(x)
เป็นฟังก์ชันหาค่า cos ของมุม โดยที่ x เป็นมุมที่ต้องการหา มีหน่วยเป็นเรเดียน
tan(x)
เป็นฟังก์ชันหาค่า sin ของมุม โดยที่ x เป็นมุมที่ต้องการหา มีหน่วยเป็นเรเดียน
sqrt(x)
เป็นฟังก์ชันหาค่ารากที่สอง โดยที่ x เป็นตัวแปรหรือค่าคงที่ ซึ่งเป็นจานวนเต็มบวก หรือ จานวนเต็มศูนย์
pow(x, y)
เป็นฟังก์ชันหาค่ายกกาลัง โดยที่ x เป็นตัวแปรหรือค่าคงที่ ซึ่งเป็นเลขฐาน และเป็นจานวนเต็ม บวก หรือจานวนเต็มศูนย์
log(x)
เป็นฟังก์ชันหาค่า log ฐาน n โดยที่ x เป็นตัวแปรหรือค่าคงที่ ซึ่งเป็นจานวนเต็มบวก หรือ จานวนเต็มศูนย์
log10(x)
เป็นฟังก์ชันหาค่า log ฐาน10 โดยที่ x เป็นตัวแปรหรือค่าคงที่ ซึ่งเป็นจานวนเต็มบวก หรือ จานวนเต็มศูนย์
fabs(x)
เป็นฟังก์ชันหาค่าสมบูรณ์โดยที่ x เป็นตัวแปรหรือค่าคงที่ 21. จะอยู่ในไลบราลี string.h
ไลบราลีฟังก์ชันสาหรับข้อความ (String Library)
ไลบราลีฟังก์ชัน
คาอธิบาย
strcpy(str1, str2)
เป็นฟังก์ชันสาหรับคัดลอกข้อความจากตัวแปร str2 มาเก็บที่ตัวแปร str1
strcat(str1, str2)
เป็นฟังก์ชันสาหรับเชื่อมต่อข้อความ โดยนาค่าตัวแปร str2 มาต่อท้ายตัวแปร str1 และเก็บค่าไว้ที่ตัวแปร str1
strcmp(str1, str2)
เป็นฟังก์ชันสาหรับเปรียบเทียบความยาวข้อความ ถ้าความยาวข้อความในตัวแปร str1 ยาวกว่าตัวแปร str2 จะได้ผลลัพธ์เป็นจริง
strcmpi(str1, str2)
เป็นฟังก์ชันสาหรับเปรียบเทียบข้อความ
•ถ้าข้อความในตัวแปร str1 เหมือนตัวแปร str2 จะได้ผลลัพธ์เป็นศูนย์
•ถ้าข้อความในตัวแปร str1 น้อยกว่าตัวแปร str2 เมื่อเรียงลาดับตัวอักษรจะได้ ผลลัพธ์เป็นค่าลบ
•ถ้าข้อความในตัวแปร str1 มากกว่าตัวแปร str2 เมื่อเรียงลาดับตัวอักษรจะได้ ผลลัพธ์เป็นค่าบวก
strlen(str)
เป็นฟังก์ชันสาหรับหาความยาวข้อความ โดยที่ str เป็นตัวแปรชนิดข้อความหรือ ค่าคงที่ 22. ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา สานักพิมพ์ IDC PREMIER