ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยRuang rit Vilailuck ได้เปลี่ยน 9 ปีที่แล้ว
1
Function
2
วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน ว่ามีกี่แบบ แตกต่างกันอย่างไร มีรูปแบบของการประกาศฟังก์ชันอย่างไร และมีวิธีการเรียกใช้ฟังก์ชันในแต่ละประเภทอย่างไร ให้รู้จักจุดประสงค์ หรือประโยชน์ในการส่งผ่านค่า อาร์กูเมนต์ให้กับฟังก์ชัน ให้รู้จักวิธีการส่งผ่านค่าอาร์กูเมนต์ให้กับฟังก์ชัน ว่ามีกี่แบบ แต่ละแบบเป็นอย่างไร แตกต่างกันอย่างไร
3
ฟังก์ชันคืออะไร ในการเขียนโปรแกรม เราทำการแยกส่วนของการ ทำงานที่มีหน้าที่ชัดเจนออกเป็นส่วนย่อยที่เรา เรียกว่า subroutine หรือ function
4
ประโยชน์ที่ได้จากการสร้างฟังก์ชัน เพื่อให้โปรแกรมมีโครงสร้างที่ดูเข้าใจได้ง่ายขึ้น มี ความเป็น abstract สูงขึ้น เพื่อให้เราสามารถเรียกใช้ชุดคำสั่งที่มีหน้าที่การ ทำงานอย่างหนึ่ง ที่เรานิยามไว้ ให้มาทำงานเมื่อใด ก็ได้ โดยไม่ต้องเขียนชุดคำสั่งเหล่านั้นใหม่ให้ เสียเวลา
5
ประเภทของฟังก์ชัน ฟังก์ชันมี 2 แบบ คือ ฟังก์ชันที่ไม่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Void Function) คือฟังก์ชันที่มีการนิยาม return type ด้วยคีย์เวิร์ด void ฟังก์ชันที่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Function with Return Value) คือฟังก์ชันที่มีการนิยาม return type ด้วย data type ใดๆ ที่ไม่ใช่ void
6
ฟังก์ชันที่ไม่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Void Function) รูปแบบการประกาศ void ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]); รูปแบบการนิยาม void ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]) { คำสั่ง ;... } รูปแบบการเรียกใช้ ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]);
7
ฟังก์ชันที่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Function with Return Value) รูปแบบการประกาศ ชนิดข้อมูล ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]); รูปแบบการนิยาม ชนิดข้อมูล ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]) { คำสั่ง ;... return นิพจน์ที่มีค่าผลลัพธ์ตรงกับชนิดข้อมูล ของฟังก์ชัน ; } รูปแบบการเรียกใช้ ตัวแปรที่มีชนิดข้อมูลเดียวกับชนิดข้อมูลของฟังก์ชัน = ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]); หรือ printf("...", ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]));
8
ตัวอย่าง Void Function #include void greeting(); int main() { greeting(); printf("Bye Bye."); reutrn 0; } void greeting() { printf("Hello!!!"); }
9
ตัวอย่าง Void Function #include void greeting(); void askName(); int main() { greeting(); printf("Bye Bye."); return 0; } void greeting() { printf("Hello!!!"); } void askName() { printf("What's your name?"); }
10
Void Function Example #include void greeting(); void askName(); int main() { greeting(); printf("Bye Bye."); reutrn 0; } void greeting() { printf("Hello!!!"); askName(); } void askName() { printf("What's your name?"); }
11
#include void A(); void P(); void Y(); int main() { P(); A(); P(); A(); Y(); A(); return 0; } void A() { printf("AAAAA\n"); printf("A A\n"); printf("AAAAA\n"); printf("A A\n"); printf("\n"); } void P() { printf("PPPPP\n"); printf("P P\n"); printf("PPPPP\n"); printf("P \n"); printf("\n"); } void Y() { printf("Y Y\n"); printf("YYYYY\n"); printf(" Y \n"); printf("\n"); }
12
ตัวอย่าง Function with Return Value #include int one(); int nine(); int ten(); int main() { int x; x = one() + ten() * nine(); printf("x = %d\n",x); return 0; } int one() { return 1; } int nine() { return 9; } int ten() { return 10; }
13
#include int main() { long result; int i; long res23 = 1; for (i=0;i<3;i++) res23 = res23 * 2; long res24 = 1; for (i=0;i<4;i++) res24 = res24 * 2; long res26 = 1; for (i=0;i<6;i++) res26 = res26 * 2; result = res23 + res24 * res26; printf("2^3 + 2^4 * 2^6 = %ld\n",result); return 0; }
14
#include long twoPower(int exponent); int main() { long result; long res23 = twoPower(3); long res24 = twoPower(4); long res26 = twoPower(6); result = res23 + res24 * res26; printf("2^3 + 2^4 * 2^6 = %ld\n",result); return 0; } long twoPower(int exponent) { int i; long res = 1; for (i=0;i<exponent;i++) res = res * 2; return res; }
15
ตัวอย่าง Function with Return Value #include long twoPower(int exponent); int main() { long result; result = twoPower(3) + twoPower(4) * twoPower(6); printf("2^3 + 2^4 * 2^6 = %ld\n",result); return 0; } long twoPower(int exponent) { int i; long res = 1; for (i=0;i<exponent;i++) res = res * 2; return res; }
16
จุดประสงค์ หรือประโยชน์ในการส่งผ่าน ค่าอาร์กูเมนต์ให้กับฟังก์ชัน เนื่องจากฟังก์ชันที่ดีควรมีลักษณะดังนี้ 1. มีหน้าที่ชัดเจนเพียงหนึ่งอย่าง (Functional Cohesion) 2. เป็นอิสระ (Coupling) ไม่ขึ้นต่อฟังก์ชันอื่น หรือ ข้อมูลจากฟังก์ชันอื่น หรือไม่อ้างอิงข้อมูลที่เป็น global เช่นตัวแปร global - หากจำเป็นต้องอ้างอิงควรมีลักษณะการอ้างอิงใน รูปแบบที่เรียกว่า Data coupling นั่นคือ ให้มีการ เรียกใช้ฟังก์ชันนี้ทำงานโดยทำการส่งข้อมูลเท่าที่ จำเป็นเพื่อใช้ในการประมวลผลเพื่อให้ฟังก์ชันนั้น สามารถทำงานได้บรรลุตามวัตถุประสงค์หรือหน้าที่ ของฟังก์ชันนั้น - นั่นจึงเป็นที่มาของการศึกษาเรื่องการส่งผ่านอาร์กู เมนต์ให้กับฟังก์ชัน
17
การส่งผ่านค่าอาร์กูเมนต์ให้กับฟังก์ชัน มีอยู่ 2 แบบคือ 1. การส่งผ่านเฉพาะค่าข้อมูล (Passing By Value) วิธีการส่งผ่านค่าวิธีนี้จะทำการส่งผ่านเฉพาะข้อมูล ให้กับฟังก์ชันเพื่อใช้ในการประมวลผล และเมื่อ ทำงานในฟังก์ชันนั้นเสร็จแล้วจะไม่มีผลกระทบ ใดๆเกิดขึ้นกับตัวแปรที่ส่งเป็นอาร์กูเมนต์เลย 2. การส่งผ่านทั้งแอดเดรสที่เก็บข้อมูล (Passing By Reference) วิธีการส่งผ่านค่าวิธีนี้จะทำการส่งผ่านแอดเดรสที่ เก็บข้อมูลให้กับฟังก์ชันเพื่อใช้ในการประมวลผล ซึ่งเมื่อทำงานในฟังก์ชันนั้นเสร็จแล้วจะมี ผลกระทบกับตัวแปรที่ส่งเป็นอาร์กูเมนต์
18
ตัวอย่างการส่งผ่านเฉพาะค่าข้อมูลให้กับฟังก์ชัน (Passing By Value) #include void aaa(int x); void aaa(int x) { x = x + 1; printf("value of x in aaa is %d.\n",x); } int main() { int a = 5; aaa(a); printf("value of a in main is %d.\n",a); return 0; } Output: value of x in aaa is 6 value of a in main is 5
19
ตัวอย่างการส่งผ่านแอดเดรสที่เก็บข้อมูลให้กับ ฟังก์ชัน (Passing By Reference) #include void aaa(int *x); void aaa(int *x) { *x = *x + 1; printf("value of *x in aaa is %d.\n",*x); } int main() { int a = 5; aaa(&a); printf("value of a in main is %d.\n",a); return 0; } Output: value of *x in aaa is 6 value of a in main is 6
20
ตัวอย่างการเขียนโปรแกรมที่มีการ สร้างเป็นฟังก์ชัน // Example of function with return value and passing argument by value #include long power(int a, int b); long power(int a,int b) { int i; long res=1; for (i=0;i<b;i++) res = res * a; return res; } int main() { long result; result = power(5,3) * power(2,7) + power(3,4) * power(4,6); printf("result = %ld\n",result); return 0; }
21
ตัวอย่างการเขียนโปรแกรมที่มีการ สร้างเป็นฟังก์ชัน // Example of function with no return value and passing argument by reference #include void swap(int* x, int* y); void swap(int* x, int* y) { int tmp; tmp = *x; *x = *y; *y = tmp; } int main() { int a,b; a = 3; b = 5; swap(&a,&b); printf("a = %d b = %d \n",a,b); return 0; }
22
ตัวอย่างการแยกฟังก์ชันไว้ในไลบรารี่ papaya.c #include #include "banner.h" int main() { P(); A(); P(); A(); Y(); A(); return 0; }
23
banner.h void A() { printf("AAAAA\n"); printf("A A\n"); printf("AAAAA\n"); printf("A A\n"); printf("\n"); } void P() { printf("PPPPP\n"); printf("P P\n"); printf("PPPPP\n"); printf("P \n"); printf("\n"); } void Y() { printf("Y Y\n"); printf("YYYYY\n"); printf(" Y \n"); printf("\n"); }
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.