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

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

ฟังก์ชั่น function. ฟังก์ชั่น เปรียบเสมือนการคำนวณทาง คณิตศาสตร์ คำสั่งชุดหนึ่งที่ทำงานเหมือน โปรแกรมหนึ่ง มีชื่อเรียก ส่วนอื่นๆ ของโปรแกรม สามารถ เรียกใช้คำสั่งชุดนี้ได้

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


งานนำเสนอเรื่อง: "ฟังก์ชั่น function. ฟังก์ชั่น เปรียบเสมือนการคำนวณทาง คณิตศาสตร์ คำสั่งชุดหนึ่งที่ทำงานเหมือน โปรแกรมหนึ่ง มีชื่อเรียก ส่วนอื่นๆ ของโปรแกรม สามารถ เรียกใช้คำสั่งชุดนี้ได้"— ใบสำเนางานนำเสนอ:

1 ฟังก์ชั่น function

2 ฟังก์ชั่น เปรียบเสมือนการคำนวณทาง คณิตศาสตร์ คำสั่งชุดหนึ่งที่ทำงานเหมือน โปรแกรมหนึ่ง มีชื่อเรียก ส่วนอื่นๆ ของโปรแกรม สามารถ เรียกใช้คำสั่งชุดนี้ได้

3 ฟังก์ชั่นในภาษาซี ภาษาซีเป็นการเขียนโปรแกรมแบบ ฟังชั่น แบ่งการทำงานของโปรแกรมเป็น ส่วนๆ ประกอบด้วยฟังก์ชั่นหลัก คือ main () ซึ่งฟังก์ชั่นแรกที่เริ่มทำงาน Main program Function 1 Function 2 Function n...

4 ประเภทของฟังก์ชั่น ภาษาซีแบ่งฟังก์ชั่นเป็น 2 ประเภท ฟังก์ชั่นมาตรฐาน (Standard Libraries Function) ฟังก์ชันที่มีอยู่แล้วในภาษาซี โดยกำหนด ไว้ในไลบรารี ฟังก์ชั่นที่ผู้ใช้กำหนด (User-Define Function) ฟังก์ชันที่ผู้ใช้เขียนขึ้นเองใหม่เหมือนกับ สร้างฟังก์ชั่นเพิ่มเติมจากที่มีอยู่แล้ว

5 ฟังก์ชั่นมาตรฐาน เรียกใช้โดยการ include ไฟล์นามสกุล.h ที่เก็บฟังก์ชั่น นั้นไว้ เช่น ถ้าต้องการใช้ฟังก์ชั่น printf หรือ scanf จะต้อง include ไฟล์ชื่อ stdio.h มาก่อน ถ้าเราต้องการใช้ฟังก์ชันทางคณิตศาสตร์ เช่น sqrt หรือ pow ต้อง include ไฟล์ชื่อ math.h คำแนะนำ : ลองเปิดไฟล์.h ใน c:\tc\include

6 ฟังก์ชั่นมาตรฐาน Square root 4 = power 3 = #include void main() { printf(“square root 4 =”); printf(“%f\n”, sqrt(4)); printf(“5 power 3 =”); printf(“%f”, pow(5,3)); }

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

8 ฟังก์ชั่นที่ผู้ใช้กำหนด Begin ==== MENU ==== a) Say Hello b) Say Good Bye Select a or b : END #include void showmenu() { printf(“==== MENU ====\n\n”); printf(“a) Say Hello\n”); printf(“b) Say Good Bye\n”); printf(“Select a or b : \n”); } void main() { printf(“Begin\n”); showmenu(); printf(“END\n”); }

9 รูปแบบของฟังก์ชั่นกำหนดเอง ประกอบด้วย 2 ส่วน ส่วนหัว (Function header) type function_name (type arg1,type arg2,…) ส่วนตัว (Function body) { variable declaration; statements; [ return ] }

10 รูปแบบของฟังก์ชั่นกำหนดเอง type function_name (type arg1,type arg2,…) { [ variable declaration; ] statements; [ return value; ] } Parameters = รับค่าเข้า Return = ส่งค่ากลับ ส่งค่ากลับ

11 ประเภทของฟังก์ชั่นกำหนดเอง แบบที่ 1 ไม่มีการรับค่าเข้า ไม่มีการส่ง ค่ากลับ แบบที่ 2 ไม่มีการรับค่าเข้า มีการส่งค่า กลับ แบบที่ 3 มีการรับค่าเข้า ไม่มีการส่ง ค่ากลับ แบบที่ 4 มีการรับค่าเข้า มีการส่งค่า กลับ

12 แบบที่ 1: ไม่มีการรับค่าเข้า ไม่มีการส่งค่า กลับ void function_name (void) { statements; }

13 แบบที่ 2: ไม่มีการรับค่าเข้า มีการส่งค่า กลับ type function_name (void) { statements; return value; }

14 แบบที่ 3: มีการรับค่าเข้า ไม่มีการส่งค่า กลับ void function_name (type arg1, type arg2,… ) { statements; }

15 แบบที่ 4: มีการรับค่าเข้า มีการส่งค่ากลับ type function_name (type arg1, type arg2,… ) { statements; return value; }

16 การประกาศฟังก์ชั่น (function prototype) ฟังก์ชั่นที่กำหนดเอง ต้องมีการ ประกาศฟังก์ชั่นให้รู้จัก ก่อน จึง สามารถเรียกใช้งานได้ ทำได้โดย การ copy บรรทัดหัว ฟังก์ชัน ขึ้นมาเขียนเอาไว้เหนือ main ( อย่าลืมใส่เครื่องหมาย ; ด้วย ) * ถ้าสร้างฟังก์ชั่นก่อน main ไม่จำเป็นต้อง ประกาศ

17 การประกาศฟังก์ชั่น (function prototype) สำหรับฟังก์ชั่นที่มีการรับค่าเข้า ไม่ จำเป็นต้องระบุชื่อ argument ก็ได้ เช่น int test_function(int y); หรือ int test_function(int); void test_function(int y); หรือ void test_function(int);

18 ขอบเขตตัวแปร ตัวแปรในภาษาซีแบ่งเป็น 2 ชนิดตาม ขอบเขตการมองเห็น Global variable นำไปใช้ได้ในทุกๆ ฟังก์ชันของโปรแกรม นั้น โดยต้องประกาศตัวแปรไว้เหนือ ฟังก์ชัน main() Local variable ใช้ได้เฉพาะในฟังก์ชันที่ประกาศตัวแปรนี้ เท่านั้น โดยการประกาศจะอยู่ภายในของ แต่ละฟังก์ชัน

19 Global variable

20 Local variable

21 #include int function_add (int x, int y) { printf("x = %d, y = %d \n",x,y); return x+y; } main () { int value1 =1, value2 = 2; printf("result : x + y = %d\n“, function_add(value1,value2) ); }

22 void oddeven (void) { if (num % 2 ) printf("Number is odd\n"); else printf("Number is even\n"); } void negpos( void) { if (num < 0) printf("number is negative\n"); else printf("number is positiven\"); } #include void oddeven (void); void negpos(void); int num; void main (void) { printf("enter number :"); scanf("%d",&num); oddeven(); negpos(); getchar(); }

23 #include #define PI float area (float); void main (void) { float radius; printf("Enter radius of sphere:"); scanf("%f",&radius); printf("area of sphere is %.2f",area(radius)); } float area (float rad) { return 4*PI*rad*rad; }

24 #include float power3(float); void main (void) { int i; for (i=1; i <=10; i++) printf(“ % d\t%.0f\n", i, power3(i) ); } float power3(float x) { return x* x *x; }

25 สร้างฟังก์ชั่นทำไม ? #include main() { int i; int scores[ARRAYMAX]; float percents[ARRAYMAX]; int g_driver, g_mode; int i, left, top, wide, bottom, deep; for (i = 0; i < ARRAYMAX; i++) { printf("\nEnter score between 0 and %d: ", MAX); scanf("%d", &scores[i]); } for (i = 0; i < ARRAYMAX; i++) percents[i] = ((float) scores[i]) / MAX; printf("\n\n\n\tSCORE\tPERCENT"); for (i = 0; i < ARRAYMAX; i++) printf("\n%d. \t%d\t%3.0f", i + 1, scores[i], (percents[i] * 100)); getch(); detectgraph(&g_driver, &g_mode); initgraph(&g_driver, &g_mode, "..\\bgi"); wide = (int)((getmaxx()) / ((ARRAYMAX * 2 ) + 1)); bottom = getmaxy() - 20; deep = (int) (wide / 4); left = wide; for (i = 0; i < ARRAYMAX; i++) { top = (bottom) - ((int)(p[i] * 300)); bar3d(left, top, (left + wide), bottom, deep, 1); left += (wide * 2); } Input and prepare data Display data in graph Draw graph

26 สร้างฟังก์ชั่นทำไม ? แบ่งโค้ดออกเป็น 3 ฟังก์ชั่น ฟังก์ชั่น input_data() ฟังก์ชั่น display_data() ฟังก์ชั่น draw_graph() Main program Input dataDisplay dataDraw graph

27 สร้างฟังก์ชั่นทำไม ? #include void input_data(float); void display_data(float); void make_graph(float); main() { Int I, scores[ARRAYMAX]; float percents[ARRAYMAX]; input_data ( percents ); display_data ( percents ); make_graph ( percents ); } void input_data(float p[]) { …. } void display_data(float p[]) { …. } void make_graph(float p[]) { …. } Input and prepare data Display data in graph Draw graph Main function

28 สร้างฟังก์ชั่นทำไม ? #include void input_data(float); void display_data(float); void make_graph(float); main() { Int I, scores[ARRAYMAX]; float percents[ARRAYMAX]; input_data ( percents ); display_data ( percents ); make_graph ( percents ); } void input_data(float p[]) { …. } void display_data(float p[]) { …. } void make_graph(float p[]) { …. } Input and prepare data Display data in graph Draw graph Main function

29 โจทย์ 1 เขียนโปรแกรมในการ คำนวณหาพื้นที่ สามเหลี่ยม สี่เหลี่ยมและ วงกลม โดยให้สร้างเป็นฟังก์ชั่น ดังนี้ showmenu(); tri_area(float, float); rec_area(float, float); cir_area(float); เขียนฟังก์ชั่นและเรียกใช้ ดังนี้ Min หาค่าต่ำสุด โดยรับ ค่าเข้า 3 ค่าเป็นจำนวน เต็ม และคืนค่าต่ำสุด Max หาค่าสุดสุด โดยรับ ค่าเข้า 3 ค่าเป็นจำนวน เต็ม และคืนค่าต่ำสุด ตัวอย่างการเรียกใช้ a = min(34,23,42); b = max(3,2,4); โจทย์ 2

30 เขียนฟังก์ชั่นในการ พิมพ์กราฟแนวนอน โดยสร้างฟังก์ชั่นดังนี้ ฟังก์ชั่นชื่อ star ไม่มีการส่งค่ากลับ มีการรับค่าเข้าเป็นเลข จำนวนเต็ม ทำการพิมพ์เครื่องหมาย * เท่ากับจำนวนเลขที่รับค่าเข้า มา แล้วขึ้นบรรทัดใหม่ กำหนดตัวแปรชนิด array ในการ เก็บอุณหภูมิ 5 วัน รับค่าอุณหภูมิเข้าจากผู้ใช้ พิมพ์อุณหภูมิทั้ง 5 วัน และ พิมพ์เครื่องหมาย * เท่ากับ ค่าอุณหภูมิแต่ละวัน ( โดย เรียกใช้ฟังก์ชั่น star) โจทย์ 1 โจทย์ 2 Enter temp day 1: 9 Enter temp day 2: 11 Enter temp day 3: 8 Enter temp day 4: 5 Enter temp day 5: 15 Day 1: 9 ********* Day 2: 11 *********** Day 3: 8 ******** Day 4: 5 ***** Day 5: 15 *************** main() { star(9); star(2); } ********* **

31 References คู่มือการเขียนโปรแกรมภาษาซี โดย รศ. ธีรวัฒน์ ประกอบผล เอกสารประกอบการสอนวิชา โครงสร้างข้อมูล และอัลกอริทึม โดย อ. วิญญู นิรนาทล้ำพงศ์


ดาวน์โหลด ppt ฟังก์ชั่น function. ฟังก์ชั่น เปรียบเสมือนการคำนวณทาง คณิตศาสตร์ คำสั่งชุดหนึ่งที่ทำงานเหมือน โปรแกรมหนึ่ง มีชื่อเรียก ส่วนอื่นๆ ของโปรแกรม สามารถ เรียกใช้คำสั่งชุดนี้ได้

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


Ads by Google