งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน."— ใบสำเนางานนำเสนอ:

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"); }


ดาวน์โหลด ppt Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.

งานนำเสนอที่คล้ายกัน


Ads by Google