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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Introduction to C Introduction to C.
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างภาษาซี เบื้องต้น
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
Introduction to C Programming
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
Data Structures and Algorithms
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
Structure.
Computer Programming 1 LAB # 6 Function.
LAB # 4.
Function.
องค์ประกอบของโปรแกรม
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
โดย อาจารย์ณัฐพงศ์ พยัฆคิน
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
ฟังก์ชัน (Function).
ครั้งที่ 7 Composition.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
บทที่ 12 Structure and union Kairoek choeychuen
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 6: Function.
PROCEDURE <<โปรแกรมย่อย>>
ข้อมูลพื้นฐานและตัวดำเนินการ
หน่วยที่ 14 การเขียนโปรแกรมย่อย
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
Lecture 7 ฟังก์ชัน To do: Hand back assignments
การเขียนโปรแกรมภาษาซี
ตัวแปรกับชนิดของข้อมูล
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
คำสั่งแสดงผลในภาษา PHP
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
C language W.lilakiatsakun.
ประวัติความเป็นมาภาษาซี
การประมวลผลสายอักขระ
โปรแกรมประยุกต์อื่นๆ
1 Special Operators Special Operators ตัวดำเนินการพิเศษ Increment and decrement operators Conditional Operator.
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
Recursion การเรียกซ้ำ
ฟังก์ชัน.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
คำสั่งเกี่ยวกับการรับ และแสดงผล
หลักการสร้างสรรค์ชุดคำสั่ง ๓
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 2 แนวคิดในการเขียนโปรแกรม. ขั้นตอนการ พัฒนาโปรแกรม ในการพัฒนาโปรแกรมมีขั้นตอนหลัก 5 ขั้นตอน ซึ่งไม่ว่าจะทำการพัฒนาโปรแกรม ครั้งใดจะต้องปฏิบัติตามขั้นตอนเหล่านี้
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
บทที่ 9 การสร้างและใช้ งานฟังก์ชั่น C Programming C-Programming.
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
บทที่ 2 โครงสร้างของภาษา C.
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
บทที่ 10 การจัดการไฟล์ อาจารย์ศศลักษณ์ ทองขาว สงวนลิขสิทธิ์ © 2547 มหาวิทยาลัยราช ภัฏสงขลา C Programming C-Programming.
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
ใบสำเนางานนำเสนอ:

Function

วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน  ว่ามีกี่แบบ  แตกต่างกันอย่างไร  มีรูปแบบของการประกาศฟังก์ชันอย่างไร  และมีวิธีการเรียกใช้ฟังก์ชันในแต่ละประเภทอย่างไร ให้รู้จักจุดประสงค์ หรือประโยชน์ในการส่งผ่านค่า อาร์กูเมนต์ให้กับฟังก์ชัน ให้รู้จักวิธีการส่งผ่านค่าอาร์กูเมนต์ให้กับฟังก์ชัน  ว่ามีกี่แบบ  แต่ละแบบเป็นอย่างไร แตกต่างกันอย่างไร

ฟังก์ชันคืออะไร ในการเขียนโปรแกรม เราทำการแยกส่วนของการ ทำงานที่มีหน้าที่ชัดเจนออกเป็นส่วนย่อยที่เรา เรียกว่า subroutine หรือ function

ประโยชน์ที่ได้จากการสร้างฟังก์ชัน เพื่อให้โปรแกรมมีโครงสร้างที่ดูเข้าใจได้ง่ายขึ้น มี ความเป็น abstract สูงขึ้น เพื่อให้เราสามารถเรียกใช้ชุดคำสั่งที่มีหน้าที่การ ทำงานอย่างหนึ่ง ที่เรานิยามไว้ ให้มาทำงานเมื่อใด ก็ได้ โดยไม่ต้องเขียนชุดคำสั่งเหล่านั้นใหม่ให้ เสียเวลา

ประเภทของฟังก์ชัน ฟังก์ชันมี 2 แบบ คือ  ฟังก์ชันที่ไม่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Void Function) คือฟังก์ชันที่มีการนิยาม return type ด้วยคีย์เวิร์ด void  ฟังก์ชันที่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Function with Return Value) คือฟังก์ชันที่มีการนิยาม return type ด้วย data type ใดๆ ที่ไม่ใช่ void

ฟังก์ชันที่ไม่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Void Function) รูปแบบการประกาศ void ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]); รูปแบบการนิยาม void ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]) { คำสั่ง ;... } รูปแบบการเรียกใช้ ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]);

ฟังก์ชันที่มีการส่งค่ากลับที่ชื่อฟังก์ชัน (Function with Return Value) รูปแบบการประกาศ ชนิดข้อมูล ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]); รูปแบบการนิยาม ชนิดข้อมูล ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]) { คำสั่ง ;... return นิพจน์ที่มีค่าผลลัพธ์ตรงกับชนิดข้อมูล ของฟังก์ชัน ; } รูปแบบการเรียกใช้ ตัวแปรที่มีชนิดข้อมูลเดียวกับชนิดข้อมูลของฟังก์ชัน = ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]); หรือ printf("...", ชื่อฟังก์ชัน ([ อาร์กูเมนต์ ]));

ตัวอย่าง Void Function #include void greeting(); int main() { greeting(); printf("Bye Bye."); reutrn 0; } void greeting() { printf("Hello!!!"); }

ตัวอย่าง 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?"); }

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

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

ตัวอย่าง 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; }

#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; }

#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; }

ตัวอย่าง 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; }

จุดประสงค์ หรือประโยชน์ในการส่งผ่าน ค่าอาร์กูเมนต์ให้กับฟังก์ชัน เนื่องจากฟังก์ชันที่ดีควรมีลักษณะดังนี้ 1. มีหน้าที่ชัดเจนเพียงหนึ่งอย่าง (Functional Cohesion) 2. เป็นอิสระ (Coupling) ไม่ขึ้นต่อฟังก์ชันอื่น หรือ ข้อมูลจากฟังก์ชันอื่น หรือไม่อ้างอิงข้อมูลที่เป็น global เช่นตัวแปร global - หากจำเป็นต้องอ้างอิงควรมีลักษณะการอ้างอิงใน รูปแบบที่เรียกว่า Data coupling นั่นคือ ให้มีการ เรียกใช้ฟังก์ชันนี้ทำงานโดยทำการส่งข้อมูลเท่าที่ จำเป็นเพื่อใช้ในการประมวลผลเพื่อให้ฟังก์ชันนั้น สามารถทำงานได้บรรลุตามวัตถุประสงค์หรือหน้าที่ ของฟังก์ชันนั้น - นั่นจึงเป็นที่มาของการศึกษาเรื่องการส่งผ่านอาร์กู เมนต์ให้กับฟังก์ชัน

การส่งผ่านค่าอาร์กูเมนต์ให้กับฟังก์ชัน มีอยู่ 2 แบบคือ 1. การส่งผ่านเฉพาะค่าข้อมูล (Passing By Value) วิธีการส่งผ่านค่าวิธีนี้จะทำการส่งผ่านเฉพาะข้อมูล ให้กับฟังก์ชันเพื่อใช้ในการประมวลผล และเมื่อ ทำงานในฟังก์ชันนั้นเสร็จแล้วจะไม่มีผลกระทบ ใดๆเกิดขึ้นกับตัวแปรที่ส่งเป็นอาร์กูเมนต์เลย 2. การส่งผ่านทั้งแอดเดรสที่เก็บข้อมูล (Passing By Reference) วิธีการส่งผ่านค่าวิธีนี้จะทำการส่งผ่านแอดเดรสที่ เก็บข้อมูลให้กับฟังก์ชันเพื่อใช้ในการประมวลผล ซึ่งเมื่อทำงานในฟังก์ชันนั้นเสร็จแล้วจะมี ผลกระทบกับตัวแปรที่ส่งเป็นอาร์กูเมนต์

ตัวอย่างการส่งผ่านเฉพาะค่าข้อมูลให้กับฟังก์ชัน (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

ตัวอย่างการส่งผ่านแอดเดรสที่เก็บข้อมูลให้กับ ฟังก์ชัน (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

ตัวอย่างการเขียนโปรแกรมที่มีการ สร้างเป็นฟังก์ชัน // 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; }

ตัวอย่างการเขียนโปรแกรมที่มีการ สร้างเป็นฟังก์ชัน // 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; }

ตัวอย่างการแยกฟังก์ชันไว้ในไลบรารี่ papaya.c #include #include "banner.h" int main() { P(); A(); P(); A(); Y(); A(); return 0; }

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