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

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

ฟังก์ชั่น 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 = 2.000000 5 power 3 = 125.000000 #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 3.14159 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; } 1 28 327 464 5125 6216 7343 8512 9729 101000

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 คู่มือการเขียนโปรแกรมภาษาซี โดย รศ. ธีรวัฒน์ ประกอบผล เอกสารประกอบการสอนวิชา โครงสร้างข้อมูล และอัลกอริทึม โดย อ. วิญญู นิรนาทล้ำพงศ์ http://www.kmitl.ac.th/~kpteeraw/c_pro.htmhttp://www.kmitl.ac.th/~kpteeraw/c_pro.htm


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

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


Ads by Google