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

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

ฟังก์ชัน (Function). จุดประสงค์ เพื่อเข้าใจวิธีการแบ่งโปรแกรม ออกเป็นส่วนย่อย โดยใช้หลักการ ของฟังก์ชัน เข้าใจกระบวนการในการส่งข้อมูล ระหว่างฟังก์ชัน.

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


งานนำเสนอเรื่อง: "ฟังก์ชัน (Function). จุดประสงค์ เพื่อเข้าใจวิธีการแบ่งโปรแกรม ออกเป็นส่วนย่อย โดยใช้หลักการ ของฟังก์ชัน เข้าใจกระบวนการในการส่งข้อมูล ระหว่างฟังก์ชัน."— ใบสำเนางานนำเสนอ:

1 ฟังก์ชัน (Function)

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

3 บทนำ โปรแกรมคอมพิวเตอร์ส่วนใหญ่ที่ใช้งาน จริง มักจะเป็นโปรแกรมขนาดใหญ่ เกิน กว่าที่จะเขียนรวมๆ กันในฟังก์ชันหลัก (main) เทคนิคที่เรียกว่า Divide and Conquer แบ่งปัญหาออกเป็นส่วนเล็กๆ หรือโมดูล (Module) เมื่อสร้างและทดสอบโปรแกรมย่อยๆนั้น แล้ว ก็ประกอบขึ้นมาเป็นโปรแกรมใหญ่ ที่สมบูรณ์ในขั้นตอนสุดท้าย

4 Program Module ในภาษา C FUNCTIONS IN C C STANDARD LIBRARY C STANDARD LIBRARY PROGRAMM ER DEFINED FUNCTION

5 Function Algorithm BOSS (calling func) WORKER (called func) 1. สั่งให้ ทำงาน 3. รายงาน ผล 2. ทำงาน main worker1worker3worker2 worker4worker5 Complex Function

6 การนิยามฟังก์ชัน /* 1 st sample program: calling standard library function */ #include main() { int x; for (x = 1; x <= 10; x++) printf(“%d “, x * x); printf(“\n”); return 0; }

7 /* 2 nd s ample program: A programmer-defined square function */ #include int square(int);/* function prototype*/ main() { int x; for (x = 1; x <= 10; x++) printf(“%d “, square(x)); printf(“\n”); return 0; } /* Function definition */ int square(int y) { return y*y; }

8 การนิยามฟังก์ชัน return-value-type function-name (parameter- list) { declarations statements }

9 return-type-value คือ ชนิดของ ข้อมูลที่ต้องการจะส่งค่ากลับ เช่น int หรือ float หากไม่มีการส่งค่ากลับให้ใช้ void function-name คือ ชื่อของฟังก์ชัน ที่จะถูกสร้างขึ้น parameter-list คือรายการตัวแปร พารามิเตอร์ ทั้งหมดที่ต้องการส่งผ่าน ไปยังฟังก์ชันเมื่อมีการเรียกใช้ ตามลำดับ declarations คือ ส่วนของการ ประกาศตัวแปรภายในฟังก์ชัน statements คือ ส่วนของคำสั่งที่ กระทำในฟังก์ชันนั้น

10 ตัวอย่าง ตัวอย่างเช่น หากต้องการเขียนฟังก์ชันชื่อ foo ไม่มีการส่งผ่านค่ากลับ รับพารามิเตอร์ เป็น จำนวนเต็ม 2 ตัว โดยฟังก์ชันจะ คำนวณหาผลบวกของจำนวนทั้งสอง แล้ว แสดงผลออกมาทางจอภาพ void foo(int x, int y) { int ans; ans = x + y; printf(“%d”, ans); }

11 หรือถ้าต้องการเขียนฟังก์ชันชื่อ subtract ที่ ส่งค่ากลับเป็นจำนวนเต็ม ซึ่งเป็นผลลบของ พารามิเตอร์ ที่เป็นจำนวนเต็มตัวแรกลบด้วย จำนวนเต็มตัวที่สอง จะนิยามฟังก์ชันได้ว่า int subtract (int x, int y) { int ans; ans = x - y; return ans; }

12 Function แบบต่าง ๆ รูปแบบตัวอย่างที่ 1: ฟังก์ชันที่ไม่รับผ่านค่า และไม่ส่งผ่านค่ากลับ void main() { my_print(); } void my_print() { printf(“Hello world”); }

13 รูปแบบตัวอย่างที่ 2: ฟังก์ชันที่มีการรับผ่าน ค่า แต่ไม่ส่งผ่านค่ากลับ /* 2.1 */ void main() { my_print(2); } void my_print(int x) { printf(“%d”, x); } mainmy_print 1. ทำงานด้วย 2 ! 2. พิมพ์ 3. เสร็จแล้วครับ

14 /* 2.2 */ void main() { my_print(‘a’, 5); } void my_print(char ch, int x) { while (x > 0) { printf(“%c”, ch); x--; } main my_print 1. ทำงานด้วย ‘a’ และ 5 ! 2. พิมพ์ 3. เสร็จแล้วครับ

15 รูปแบบตัวอย่างที่ 3: ฟังก์ชันที่มีการรับผ่าน ค่า และส่งผ่านค่ากลับ void main() { char ch; ch = my_print(5); printf(“%c\n”, ch); }

16 char my_print(int x) { char lch; printf(“Enter your character: ”); scanf(“%c”, &lch); while (x > 0) { printf(“%c”, lch); x--; } printf(“\n”); return lch; } mainmy_print 1. ทำงานด้วย 5 ! 2. รับค่าแล้วพิมพ์ 3. เสร็จแล้วครับ ผลคือ ch

17 รูปแบบตัวอย่างที่ 4: ฟังก์ชันที่ไม่รับผ่านค่า แต่มีการส่งผ่านค่ากลับ void main() { printf(“%d”,my_func()); } int my_func() { int a; scanf(“%d”,&a); return a*5; }

18 ต้นแบบของฟังก์ชัน (Function Prototype) ต้นแบบของฟังก์ชัน จะเป็นตัวระบุให้ตัว แปลภาษารู้ถึง – ชนิดของข้อมูลที่จะส่งผ่านค่ากลับ – จำนวนของพารามิเตอร์ ที่ฟังก์ชัน คาดหวังว่าจะได้รับ – ชนิดของพารามิเตอร์แต่ละตัว – และลำดับของพารามิเตอร์เหล่านั้น

19 /* 3 rd Sample program */ /* Finding the maximum of three integers */ #include int maximum(int, int, int); main() { int a, b, c; printf(“Enter three integers: “); scanf(“%d%d%d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c); return 0; } PROTOT YPE CALLIN G

20 /* Function maximum definition */ int maximum(int x, int y, int z) { int max = x; if(y > max) max = y; if(z > max) max = z; return max; } DEFINI TION

21 /* 4 th Sample Program */ #include int square(int); void main( ) { int x=3; printf(“Square of %d = %d\n”, x, square(x)); } int square(int y) { return y * y; } PROTOT YPE CALLI NG DEFINI TION

22 /* 5 th Sample Program */ #include int maximum(int, int, int); void main() { int a, b, c; printf(“Enter three integer: “); scanf(“%d%d%d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c)); } int maximum(int x, int y, int z) { int max = x; if(y > max) max = y; if(z > max) max = z; return max; } PROTOT YPE CALLI NG DEFINITI ON

23 /* 6 th Sample Program */ #include int maximum(int x, int y, int z) { int max = x; if(y > max) max = y; if(z > max) max = z; return max; } void main( ) { int a, b, c; printf(“Enter three integer: “); scanf(“%d%d%d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c)); } CALLIN G DEFINIT ION

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

25 /* 7 th Sample Program: Local vs Global Variable */ #include int ans = 0; int inc_one(int);/* function prototype */ void main() { int a = 3; ans = inc_one(a); printf(“Answer is %d\n”, ans); } /* function definition: return x+1 */ int inc_one(int x) { int ans; ans = x + 1; return ans; } Local Variable Global Variable Local Variable

26 /* 9 th Sample Program: Global Variables */ #include int x; void my_func(); void main() { x=3; printf(“Main: Before call function x=%d\n”, x); my_func();//call my_func printf(“Main: After call function x=%d\n”, x); } void my_func() { x=2; printf(“My_func: x=%d\n”, x); } Global Variable

27 /* 10 th Sample Program: Local vs. Global Variables */ #include int x; void my_func();//prototype of my_func void main() { x=3; printf(“Main: Before call function x=%d\n”, x); my_func();//call my_func printf(“Main: After call function x=%d\n”, x); } void my_func() { int x; x=2; printf(“My_func: x=%d\n”, x); } Global Variable Local Variable

28 ตัวอย่างการเรียกใช้ฟังก์ชันที่มีการส่งผ่านค่า กลับ void main() { int x, y; printf(“%d”,my_func()); x = my_func(); y = 45 * x + my_func(); } int my_func() { int a; scanf(“%d”,&a); return a*5; } มีตัวแปรมา รับค่า เป็น argument ของฟังก์ชัน อื่น L ป็นส่วน หนึ่งของ นิพจน์

29 ตัวอย่างโปรแกรมที่ไม่ใช้ฟังก์ชัน #include main() { int first, second, third; printf(“\n F(X) = 3X + 10 if X > 0\n”); printf(“\n F(X) = 10 if X = 0\n”); printf(“\n Enter 3 values\n”); scanf(“%d %d %d”, &first, &second, &third); if (first > 0) printf(“F(%d) is %d”,first,3*first+10); else printf(“F(%d) is 10”, first);

30 if (second > 0) printf(“F(%d) is %d”, second, 3*second + 10); else printf(“F(%d) is 10”, second); if (thrid > 0) printf(“F(%d) is %d”, third, 3*third + 10); else printf(“F(%d) is 10”, third); }

31 ตัวอย่างโปรแกรมที่ใช้ฟังก์ชัน #include void get_Fx(int x); main() { int first, second, third; printf(“\n F(X) = 3X + 10 if X > 0\n”); printf(“\n F(X) = 10 if X = 0\n”); printf(“\n Enter 3 values\n”); scanf(“%d %d %d”, &first, &second, &third);

32 get_Fx(first); get_Fx(second); get_Fx(third); } void get_Fx(int x) { if (x > 0) printf(“F(%d) is %d”, x, (3*x) + 10); else printf(“F(%d) is 10”, x); }

33 Math routines FunctionInclude File absstdlib.h acosmath.h asinmath.h atanmath.h atofstdlib.h atoistdlib.h cosmath.h coshmath.h

34 FunctionInclude File expmath.h itoastdlib.h logmath.h log10math.h sinmath.h sinhmath.h sqrtmath.h tanmath.h tanhmath.h


ดาวน์โหลด ppt ฟังก์ชัน (Function). จุดประสงค์ เพื่อเข้าใจวิธีการแบ่งโปรแกรม ออกเป็นส่วนย่อย โดยใช้หลักการ ของฟังก์ชัน เข้าใจกระบวนการในการส่งข้อมูล ระหว่างฟังก์ชัน.

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


Ads by Google