ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.

Slides:



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

โปรแกรมทดสอบที่1 ทดสอบการแสดงผลข้อความ
Computer Language.
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
Computer Programming 1 LAB Test 3
LAB # 1.
Introduction to C Programming
ครั้งที่ 8 Function.
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
LAB # 4.
คำสั่งเพื่อการกำหนดเงื่อนไข
การแสดงผล และการรับข้อมูล
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
คำสั่งควบคุมการทำงาน
ฟังก์ชัน (Function).
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 6: Function.
บทที่ ไลบรารีฟังก์ชัน
หน่วยที่ 1 พื้นฐานภาษา C
หน่วยที่ 14 การเขียนโปรแกรมย่อย
ตัวอย่างโปรแกรมคำนวณหาพื้นที่สี่เหลี่ยม
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
การเขียนโปรแกรมภาษาซี
ตัวแปรกับชนิดของข้อมูล
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
C language W.lilakiatsakun.
#include #define N 5 void main() { inti, X[N]; for (i=0; i < N; i++) { /* รับข้อมูล */ printf(“Enter number : ”); scanf(“%d”, &X[i] ); } for (i=0; i
คำสั่งเกี่ยวกับการรับ และแสดงผล
Output of C.
ตัวแปรและชนิดของข้อมูล (Variables & Data Types)
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
การทำซ้ำ Pisit Nakjai.
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
โครงสร้างภาษาซี C ++ structure
การเขียนโปรแกรมภาษาเบื้องต้น (ภาษาซี)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming I โดย อ.วิมลศรี เกตุโสภณ สาขาวิชาระบบสารสนเทศ
โครงสร้างโปรแกรมภาษา C
โปรแกรม ภาษา C ภาษาซี (C Language) เป็นภาษาหนึ่งสำหรับเขียนโปรแกรมคอมพิวเตอร์   พัฒนาขึ้นโดยนายเดนนิส  ริทชี่ (Dennis Ritche)  ในปี ค.ศ. 1972  เพื่อสร้างระบบปฏิบัติการยูนิกซ์
Object and classes.
การเขียนโปรแกรมด้วยภาษา C
บทที่ 4 การรับและแสดงผลข้อมูล
C Programming By Mr. Sanae Sukprung.
Chapter 9 ตัวชี้ pointer.
ภาษา C เบื้องต้น.
การควบคุมการทำงานด้วยภาษา C
โครงสร้างโปรแกรมภาษา C
บทที่ 4 ตัวแปร (Variables)
หลักการเขียนโปรแกรมภาษาซี
introduction to Computer Programming
Chapter 7 ฟังก์ชัน Function.
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Introduction to Computer Programming
Chapter 5: Function.
ใบสำเนางานนำเสนอ:

ฟังก์ชันในภาษา C

ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ ( หรือ โมดูล ) แต่ละงานย่อยจะทำงานอย่าง ใดอย่างหนึ่งเท่านั้น และไม่ควรจะมี ขนาดใหญ่จนเกินไป งานย่อยเหล่านี้ เมื่อนำไปเขียนโปรแกรมในภาษาซีจะ เป็นการเขียนในลักษณะของฟังก์ชัน

3 รับข้อมูล 2 จำนวน จากผู้ใช้ บวกเลข 2 จำนวนแล้ว เก็บผลลัพธ์ แสดงผลลัพธ์ของการ ทำงาน โปรแกรมเพื่อบวกเลขสอง จำนวนที่รับจากผู้ใช้ และ แสดงผลการคำนวณ ตัวอ ย่าง สามารถแบ่งการทำงานเป็นงานย่อยได้ดังนี้

4 ฟังก์ชันการรับ ข้อมูล ฟังก์ชันในการบวกเลข ฟังก์ชันแสดงผลลัพธ์ จะได้ว่าโปรแกรมประกอบด้วย ฟังก์ชัน 4 ฟังก์ชันคือ ฟังก์ชันหลัก ตัวอย่าง ( ต่อ )

5 Source file function Source file function Object file Library file Execute file compile link ขั้นตอนการสร้างโปรแกรม ด้วยภาษา C

6 4.1 รูปแบบของ ฟังก์ชัน ชนิดข้อมูลที่คืนค่า ชื่อฟังก์ชัน ( การ ประกาศตัวแปร ) { การประกาศตัวแปรภายใน ฟังก์ชัน ; คำสั่ง ; return ( ค่าข้อมูลที่ต้องการ ส่งค่ากลับ ); } int, char, float, double ฯลฯ แบบที่ 1

7 รูปแบบของ ฟังก์ชัน ( ต่อ ) void ชื่อฟังก์ชัน ( การประกาศตัว แปร ) { การประกาศตัวแปรภายใน ฟังก์ชัน ; คำสั่ง ; } แบบที่ 2

8 ตัวอย่าง 4.1 แสดงการทำงานของ โปรแกรมการบวกเลข จำนวนจริง 2 จำนวนที่รับ จากผู้ใช้ #include double InputDouble ( ) { double x; printf ( “\nInput real value : “ ); scanf ( “%.2f ”, &x ); return ( x ); }

9 ตัวอย่าง 4.1 ( ต่อ ) double SumDouble ( double x, double y ) { return ( x + y ); } void PrintOut ( double x ) { printf ( “\n Result of sum is : %.2f”, x ); }

10 ตัวอย่าง 4.1 ( ต่อ ) void main ( ) { double a1, a2, sumVal; a1 = InputDouble( ); a2 = InputDouble( ); sumVal = SumDouble ( a1, a2 ); PrintOut ( sumVal ); }

การประกาศโพรโทไทป์ ของฟังก์ชัน การประกาศโปรโตไทป์เป็น สิ่งจำเป็นในภาษาซีเนื่องจาก ภาษาซีเป็นภาษาในลักษณะที่ต้อง มีการประกาศฟังก์ชันก่อนจะ เรียกใช้ฟังก์ชันนั้น (Predefined Function)

12 จากตัวอย่างที่ 4.1 จะเห็นว่าฟังก์ชัน main ( ) จะอยู่ใต้ฟังก์ชันอื่น ๆ ที่มีการ เรียกใช้ เป็นลักษณะที่ต้องประกาศ ฟังก์ชันที่ต้องการเรียกใช้ก่อนจาก เรียกใช้ฟังก์ชันนั้น แต่หากต้องการ ย้ายฟังก์ชัน main ( ) ขึ้นไปไว้ด้านบน จะต้องมีการประกาศโปรโตไทป์ของ ฟังก์ชันที่ต้องการเรียกใช้ก่อนเสมอ

13 #include double InputDouble ( ); double SumDouble ( double, double ); void PrintOut ( double ); ตัวอย่าง 4.2 แสดงการทำงานของ โปรแกรมการบวกเลข จำนวนจริง 2 จำนวนที่รับ จากผู้ใช้ ในลักษณะที่มี การประกาศโปรโตไทป์

14 void main ( ) { double a1, a2, sumVal; a1 = InputDouble( ); a2 = InputDouble( ); sumVal = SumDouble ( a1, a2 ); PrintOut ( sumVal ); } ตัวอย่าง 4.2 ( ต่อ )

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

การเรียกใช้ ฟังก์ชัน การเรียกใช้ฟังก์ชันที่มีการคืน ค่า จะใช้รูปแบบดังต่อไปนี้ ค่าที่รับ = ฟังก์ชัน ( อาร์กิวเมนต์ )

17 a1 = InputDouble ( ); ใช้คู่กับโปรโตไทป์ double InputDouble ( ); ตัวอย่ าง a1 ต้องมีชนิดเป็น double เนื่องจากค่าที่จะส่ง คืนกลับมาจากฟังก์ชันมีชนิดเป็น double

18 sumVal = SumDouble (a1,a2 ); ใช้คู่กับโปรโตไทป์ double InputDouble ( ); ตัวอย่ าง a1 และ a2 ต้องมีชนิดเป็น double เพื่อให้ตรงกับชนิดตัวแปรของอาร์กิวเมนท์ ที่ประกาศในโปรโตไทป์

19 PrintOut( sumVal ); ใช้คู่กับโปรโตไทป์ void PrintOut ( double ); ตัวอย่ าง ประกาศให้รู้ว่าฟังก์ชันนี้ไม่มีการคืนค่า

ขอบเขต ( Scope) การทำงานของโปรแกรม ภาษาซีจะทำงานที่ฟังก์ชัน main ( ) ก่อนเสมอ เมื่อฟังก์ชัน main ( ) เรียกใช้งานฟังก์ชันอื่น ก็จะมีการ ส่งคอนโทรล (Control) ที่ควบคุม การทำงานไปยังฟังก์ชันนั้น ๆ จนกว่าจะจบฟังก์ชัน หรือพบ คำสั่ง return

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

22 a1 a2 sumVal main ( ) x InputDouble ( ) a1 = InputDouble( ); ตัวอย่ าง step1 จากตัวอย่าง 4.1 และ 4.2 สามารถแสดงขอบเขตการ ทำงานได้ดังนี้

23 a1 a2 sumVal main ( ) x InputDouble ( ) a2 = InputDouble( ); ตัวอย่าง ( ต่อ ) step2

24 a1 a2 sumVal main ( ) x sumDouble ( ) sumVal=SumDouble(a1,a2) ตัวอย่าง ( ต่อ ) Step3 y

25 a1 a2 sumVal main ( ) x PrintSum ( ) PrintSum(sumVal); ตัวอย่าง ( ต่อ ) step4

26 จะเห็นว่าตัวแปร x ที่ประกาศใน แต่ละขั้นตอนจะทำงานอยู่ภายใน ฟังก์ชันที่มีการประกาศค่าเท่านั้น และ ใช้พื้นที่ในการเก็บข้อมูลคนละส่วนกัน ตัวแปรโลคอล (Local Variable) ขอบเขตการทำงานของตัวแปร แต่ละตัวจะกำหนดอยู่ภายบล็อกของ คำสั่งภายในเครื่องหมายปีกกา ( { } ) หรือการประกาศในช่วงของการ ประกาศฟังก์ชัน เรียกตัวแปรเหล่านี้ ว่า ตัวแปรโลคอล (Local Variable)

27 ตัว แปรโกลบอล (Global Variable) นอกจากนี้สามารถประกาศตัวแปร ไว้ที่ภายนอกฟังก์ชันบริเวณส่วน เริ่มของโปรแกรมจะเรียกว่า ตัว แปรโกลบอล (Global Variable) ซึ่ง เป็นตัวแปรที่สามารถเรียกใช้ที่ ตำแหน่งใด ๆ ในโปรแกรมก็ได้ ยกเว้นในกรณีที่มีการประกาศตัว แปรที่มีชื่อเดียวกันตัวแปรโกลบอล ภายในบล็อกหรือฟังก์ชัน

28 #include int x; void func1 ( ) { x = x + 10; printf ( “func1 -> x : %d\n”, x ); } ตัวอย่าง 4.3 แสดงการทำงานของ โปรแกรมในลักษณะที่มี ตัวแปรโกลบอล แสดง ขอบเขตการใช้งานของ ตัวแปรภายในโปรแกรม

29 void func2 ( int x ) { x = x + 10; printf ( “func2 -> x : %d\n”, x ); } void func3 ( ) { int x=0; x = x + 10; printf ( “func3 -> x : %d\n”, x ); } ตัวอย่าง 4.3 ( ต่อ )

30 void main ( ) { x = 10; printf ( “main (start) -> x : %d\n”, x ); func1 ( ); printf ( “main (after func1) -> x : %d\n”, x ); func2 ( x ); printf ( “main (after func2) -> x : %d\n”, x); func3 ( ); printf ( “main (after func3) -> x : %d\n”, x); } ตัวอย่าง 4.3 ( ต่อ )

31 main (start) -> x : 10 func1 -> x : 20 main (after func1) -> x : 20 func2 -> x : 30 main (after func2) -> x : 20 func3 -> x : 10 main (after func3) -> x : 20 ตัวอย่าง 4.3 ( ต่อ ) ผลการทำงาน