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

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

Lecture 7 ฟังก์ชัน. บทนำ โปรแกรมที่สร้างขึ้นส่วนใหญ่ มักจะมีขนาดใหญ่ ดังนั้นในการ จัดการโปรแกรมที่มีขนาดใหญ่ จะใช้วิธีการ แบ่งส่วนของ โปรแกรมออกเป็นส่วนย่อยๆ.

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


งานนำเสนอเรื่อง: "Lecture 7 ฟังก์ชัน. บทนำ โปรแกรมที่สร้างขึ้นส่วนใหญ่ มักจะมีขนาดใหญ่ ดังนั้นในการ จัดการโปรแกรมที่มีขนาดใหญ่ จะใช้วิธีการ แบ่งส่วนของ โปรแกรมออกเป็นส่วนย่อยๆ."— ใบสำเนางานนำเสนอ:

1 Lecture 7 ฟังก์ชัน

2 บทนำ โปรแกรมที่สร้างขึ้นส่วนใหญ่ มักจะมีขนาดใหญ่ ดังนั้นในการ จัดการโปรแกรมที่มีขนาดใหญ่ จะใช้วิธีการ แบ่งส่วนของ โปรแกรมออกเป็นส่วนย่อยๆ ซึ่ง โปรแกรมย่อยเหล่านี้เรียกว่า ฟังก์ชัน(Function) ประโยชน์ของฟังก์ชัน 1. สามารถหาจุดผิดของโปรแกรมได้ง่าย 2. โปรแกรมมีขนาดเล็ก 3. สามารถนำไปใช้ ณ. ส่วนอื่นๆ ของโปรแกรมก็ได้ 4. ช่วยกันพัฒนาได้ โมดูล(Module)หรือฟังก์ชัน(Function) เป็นคำที่มีความหมาย เหมือนกัน

3 OBJECTIVE 1. ฟังก์ชันมาตรฐาน(Standard Functions) 2. ฟังก์ชันที่ผู้ใช้กำหนด(User-defined Functions) - การ Test Driver - การส่งผ่านค่าให้ฟังก์ชัน 3. ฟังก์ชันโอเวอร์โหลด(Overloading Function)

4 ฟังก์ชันมี 2 ชนิด 1. ฟังก์ชันมาตรฐาน(Standard Functions) เป็นฟังก์ชันที่มีการนิยามไว้แล้วในComplier เราเพียงแต่ทำ ความเข้าใจการทำงานของฟังก์ชันและนำมาใช้ให้ถูกต้อง โดย จะต้องค้นหาว่า ฟังก์ชันนิยามอยู่ใน module หรือ header file ใด เมื่อทราบแล้วก็ทำการ include เข้ามาใช้ในการแปลร่วม 2. ฟังก์ชันที่ผู้ใช้สร้างขึ้น(User-define Functions) เป็นฟังก์ชันที่ผู้เขียนโปรแกรมนิยามขึ้นใหม่ โดยอาจจะเขียน รวมไว้ในไฟล์เดียวหรืออาจจะแยกไวในไฟล์อื่น ซึ่งถ้าจะ นำมาใช้งานร่วมกันก็ต้องประกาศ include ไว้ตอนต้นโปรแกรม เช่นเดียวกับฟังก์ชันมาตรฐาน

5 7.1 ฟังก์ชันมาตรฐานในภาษาซี ฟังก์ชันมาตรฐานในภาษาซี++ได้มีการจัดทำไว้แล้วและผู้ใช้สามารถที่จะเรียกมา ใช้งานได้ เพียงแต่กำหนดตรงส่วนหัวว่าจะนำเอาฟังก์ชันมาตรฐานของ library ใด มาใช้ในโปรแกรม #include int main() { for (int i = 0; i < 6; i++) cout << i << "\t" << sqrt(i) << endl; return 0; } ฟังก์ชัน sqrt() เป็นฟังก์ชันหารากที่สอง ซึ่งเป็นฟังก์ชันมาตรฐานหนึ่งใน C และ C++ การเรียกฟังก์ชันนี้มาใช้งานจะต้องประกาศส่วนหัว #include หรือ #include “ math.h ” ก่อนจึงจะใช้งานได้

6 ฟังก์ชันใน math.h บางตัว absabs Return absolute value of int acosacos Calculate arccosine asinasinCalculate arcsine atan, atan2atan, atan2Calculate arctangent atofatof Convert character string to double-precision floating-point value coscosCalculate cosine coshcoshCalculate hyperbolic cosine sinsinCalculate sine sinhsinhCalculate hyperbolic sine expexpCalculate exponential function fabsfabsFind absolute value loglogCalculate natural logarithm log10log10Calculate base-10 logarithm powpowCalculate value raised to a power

7 ไฟล์ส่วนหัวบางตัวใน library มาตรฐานภาษา C ประกาศฟังก์ชันคณิตศาสตร์ ประกาศฟังก์ชันสำหรับรับเข้าและส่งออกข้อมูลมาตรฐาน ประกาศฟังก์ชันสำหรับการประมวลผลสายอักขระ ประกาศฟังก์ชันเวลาและวันที่ ประกาศฟังก์ชันสำหรับทดสอบตัวอักขระ ประกาศฟังก์ชันสำหรับรับเข้าและส่งออกสายอักขระ

8 -- for enforcing assertions when functions execute -- for classifying characters -- for testing error codes reported by library functions -- for testing floating-point type properties -- for testing integer type properties -- for adapting to different cultural conventions -- for computing common mathematical functions -- for executing nonlocal goto statements -- for controlling various exceptional conditions -- for accessing a varying number of arguments -- for defining several useful types and macros -- for performing input and output -- for performing a variety of operations -- for manipulating several kinds of strings -- for converting between various time and date formats -- for manipulating wide streams and several kinds of strings -- for classifying wide characters wide streams

9 7.2 ฟังก์ชันที่ผู้ใช้กำหนดเอง ฟังก์ชันมาตรฐานในภาษาซี++ได้มีการจัดทำไว้แล้วก็จริง แต่ บางครั้งยังไม่เพียงพอ กับการใช้งานของนักพัฒนาโปรแกรม ดังนั้น ภาษาC++ ยอมให้มีการ สร้างฟังก์ชันขึ้นใช้งานเอง รูปแบบการกำหนด ชนิดข้อมูลส่งค่ากลับ ชื่อฟังก์ชั่น(ชนิดข้อมูลส่งค่าเข้า ตัวแปร) { ส่วนการกำหนดตัวแปรแบบ Local; statement; statement; … ; return ตัวแปรที่ส่งกลับ; }

10 ตัวอย่าง #include int cube(int x); //declare function int main(void) { int ans; ans=cube(5); cout<<"Result is "<

11 - การทดสอบโปรแกรมขับ(Test Driver) เมื่อผู้เขียนโปรแกรมสร้างฟังก์ชันขึ้นมาแล้ว ก่อนจะนำไปใช้งานควร ที่จะทดสอบการทำงานของฟังก์ชันที่เราสร้างขึ้น(Test driver) ฟังก์ชันก่อนที่จะนำไปใช้งาน การเขียนโปรแกรมในส่วนทดสอบไม่ต้องเขียนให้สวยงานนัก แต่จะ เน้นถึงการทำงานของฟังก์ชันที่เราสร้างขึ้นว่าถูกต้องหรือไม่

12 ตัวอย่างการ Test Driver #include int cube(int x); //declare function int main(void) { int ans; cin >>ans;//recive value to ans ans=cube(5); //test Driver function cube() by 5 cout<

13 - การส่งผ่านค่าพารามิเตอร์ให้ฟังก์ชัน การผ่านค่าพารามิเตอร์ให้ฟังก์ชันมี 2วิธี 1.วิธีผ่านโดยการอ้างค่า (pass by value) 2.วิธีผ่านโดยอ้างอิง(pass by reference) วิธีผ่านโดยการอ้างค่า จะเป็นการส่งผ่านค่าของพารามิเตอร์ให้ฟังก์ชัน วิธีผ่านโดยการอ้างอิง จะเป็นการส่งผ่านค่าของตำแหน่ง(address) ของพารามิเตอร์ให้ ฟังก์ชัน การส่งผ่านวิธีนี้จะต้องใช้เครื่องหมายให้ถูกต้อง เนื่องจาก ภาษา C สามารถส่งค่ากลับได้ 1 ค่า แต่การผ่านด้วยวิธีนี้สามารถที่ จะส่งค่ากลับได้มากว่า 1 ค่า

14 ตัวอย่างวิธีผ่านโดยการอ้างอิง ( แบบ 1) ใช้ได้ C และ C++ #include void divide(int *data1); //declare function void main(void){ //main function int a1; a1 = 20; divide(&a1); cout<

15 รูปตัวอย่างการพิจารณา #include void divide(int *data1); //declare function void main(void){ //main function int a1; a1 = 20; divide(&a1); cout<

16 ตัวอย่างวิธีผ่านโดยการอ้างอิง ( แบบ 2) ใช้ได้ เฉพาะ C++ #include void divide(int &data1); //declare function void main(void){ //main function int a1; a1 = 20; divide(a1); cout<

17 - ฟังก์ชันที่ไม่มีการส่งผ่านค่า ในกรณีที่ไม่มีการรับหรือส่งค่าเข้าไปเราจะใช้คำนิยาม void วางไว้ ตรงตำแหน่งที่ไม่มีการรับหรือส่งค่า 1.รูปแบบการกำหนดชนิดไม่มีการส่งค่ากลับ void ชื่อฟังก์ชั่น(ชนิดข้อมูลส่งค่าเข้า ตัวแปร) { } 2.รูปแบบการกำหนดชนิดไม่มีการส่งค่าเข้า ชนิดข้อมูลส่งค่าออก ชื่อฟังก์ชั่น(void) { }

18 3.รูปแบบการกำหนดชนิดไม่มีการส่งค่าเข้าและส่งค่ากลับ void ชื่อฟังก์ชั่น(void) { } ฟังก์ชันทั้ง 3 แบบที่ไม่มีการส่งผ่านค่านี้ ในการประมวลผลร่วมกับ ฟังก์ชันหลักนั้น มักจะใช้ตัวแปรแบบ Gobal ในการรับค่าเข้าไป ทำงานในฟังก์ชัน และส่งค่ากลับออกมาโดยใช้ตัวแปรแบบ Gobal

19 ตัวอย่างฟังก์ชันมีการส่งค่าเข้า แต่ไม่มีการส่งค่ากลับ #include void max(float dat1,float dat2); //declare function void main(void){ //main function float a1,b1; cout >a1; cout >b1; max(a1,b1); } void max(float dat1,float dat2){ //function if(dat1>dat2) cout<

20 ตัวอย่างฟังก์ชันมีการส่งค่ากลับ แต่ไม่มีการส่งค่าเข้า #include char Sex(void); //declare function void main(void){//main function char dat1; dat1=Sex(); //call function cout<<"Your sex is :"<sex; return sex; }

21 ตัวอย่างฟังก์ชันไม่มีการส่งค่าเข้า และไม่ส่งค่ากลับ #include void Name(void); //declare function char name[20];//gobal variable 20 character void main(void){//main function Name(); cout<< “ Your name is : “ << name << endl; } void Name(void){//sub function cout > name; } โปรแกรมอ่านค่าชื่อ โดยใช้ตัวแปรแบบ gobal

22 7.3 ฟังก์ชันโอเวอร์โหลดดิ้ง ภาษา C++ ยอมให้มีการใช้ชื่อฟังก์ชันที่เหมือนกันได้ถ้าฟังก์ชัน เหล่านั้นมีชนิดของตัวพารามิเตอร์ที่ต่างกัน หรืออย่างน้อยจะมี ตำแหน่งหนึ่งในรายการที่ทำให้ฟังก์ชันต่างกัน

23 ตัวอย่างฟังก์ชันโอเวอร์โหลดดิ้ง #include int max(int, int); double max(double, double); int main() { cout << max(99,77) << " " << max(3.4,7.2) << endl; return 0; } int max(int x, int y) { return (x + y); } double max(double x, double y) { return (x - y); }

24 Inclass Lab1 จงเขียนฟังก์ชันและทดสอบฟังก์ชัน min() ต่อไปนี้ โดยให้ ฟังก์ชัน min(int,int) เพื่อหาและคืนค่าที่เล็ดที่สุดของจำนวน เต็มที่กำหนดให้ 2 จำนวน int min(int x, int y) ก่อนทำการส่งให้ Test Driver ดูว่าถูกต้องหรือไม่

25 Inclass Lab2 จงเขียนฟังก์ชันและทดสอบฟังก์ชัน GetRadius() ต่อไปนี้ โดยให้ฟังก์ชัน GetRadius(void) รับค่าและคืนค่ารัศมีออก จากฟังก์ชันและนำมาคำนวณหาพื้นที่วงกลมร่วมกับฟังก์ชัน main() int GetRadius(void) ก่อนทำการส่งให้ Test Driver ดูว่าถูกต้องหรือไม่

26 Inclass Lab3 จงเขียนฟังก์ชันและทดสอบฟังก์ชัน ComputeCircle() ต่อไปนี้ โดยให้ฟังก์ชัน ComputeCircle() เพื่อหาเส้นรอบวงและพื้นที่ วงกลม โดยมีการรับค่ารัศมี และคืนค่าเส้นรอบวง และ พื้นที่ วงกลม ออกจากฟังก์ชัน void ComputeCircle(float r, float *Area, float *Circle) ก่อนทำการส่งให้ Test Driver ดูว่าถูกต้องหรือไม่


ดาวน์โหลด ppt Lecture 7 ฟังก์ชัน. บทนำ โปรแกรมที่สร้างขึ้นส่วนใหญ่ มักจะมีขนาดใหญ่ ดังนั้นในการ จัดการโปรแกรมที่มีขนาดใหญ่ จะใช้วิธีการ แบ่งส่วนของ โปรแกรมออกเป็นส่วนย่อยๆ.

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


Ads by Google