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

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

886201 หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)

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


งานนำเสนอเรื่อง: "886201 หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)"— ใบสำเนางานนำเสนอ:

1 886201 หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)

2 ชื่อฟังก์ชัน (function name) และ พารามิเตอร์ (parameter list) ชื่อฟังก์ชัน (function name) ชื่อฟังก์ชันเป็นไปตามกฏการตั้งชื่อในภาษา C++ พารามิเตอร์ (parameter list) คือ ค่าที่ถูกส่งไปยังฟังก์ชันเมื่อฟังก์ชันถูก เรียกใช้ ตัวอย่าง : float cube (float x) /* พารามิเตอร์ 1 ตัวคือ x */ void func1 (int x, float y, char z) /* พารามิเตอร์ 3 ตัวคือ x, y, z */ void func2 (void) /* ไม่มี พารามิเตอร์ */

3 การส่งพารามิเตอร์ไปยังฟังก์ชัน Pass by value ทำการ copy ค่าส่งไปยังฟังก์ชัน ไม่มีการ เปลี่ยนแปลงค่าตัวแปรทางฝั่งของผู้เรียก Pass by reference ส่งตัวแทนของตัวแปรไปยังฟังก์ชัน (reference) ฟังก์ชันรับ " ตัวแทนของตัวแปร " ไปดำเนินการ เปลี่ยนแปลงตัวแปร ส่งผลต่อค่าของตัวแปรทาง ฝั่งของผู้เรียก

4 ตัวอย่าง pass by value #include using namespace std; // การประกาศรูปแบบการใช้งานของฟังก์ชัน double square ( double x ); // การประกาศฟังก์ชัน - การกำหนดรายละเอียดการทำงาน double square ( double x ) { return x * x; } int main ( ) // โปรแกรมหลัก { doublea; // การเรียกใช้งานฟังก์ชัน a = square(4); cout << "a = " << a << endl; return 0; }

5 ตัวอย่าง pass by value #include using namespace std; int larger_of(int a, int b); // การประกาศรูปแบบการ ใช้งานของฟังก์ชัน // การประกาศฟังก์ชัน - การกำหนดรายละเอียดการทำงาน int larger_of(int a, int b) { if ( a > b ) return a; return b; } int main ( ) // โปรแกรมหลัก { int x, y; cin >> x >> y; cout << larger_of(x, y) << endl; // การเรียกใช้ งานฟังก์ชัน return 0; }

6 ตัวอย่าง pass by value #include using namespace std; // function prototype void exchange ( int p, int q ); int main( ) { int x, y; cout > x; cout > y; exchange(x, y); cout << endl; cout << "After calling swap(x, y)" << endl; cout << "---------------------- --" << endl; cout << "x = " << x << endl; cout << "y = " << y << endl; return 0; } // exchange - ต้องการให้แลกเปลี่ยน " ค่า " ของตัวแปร 2 ตัว void exchange ( int p, int q ) { int t; // ตัวแปร ชั่วคราวสำหรับพักค่า t = p; p = q; q = t; }

7 ตัวอย่าง pass by reference #include using namespace std; // function prototype void exchange ( int& p, int& q ); int main( ) { int x, y; cout > x; cout > y; exchange(x, y); cout << endl; cout << "After calling swap(x, y)" << endl; cout << "---------------------- --" << endl; cout << "x = " << x << endl; cout << "y = " << y << endl; return 0; } // exchange - ต้องการให้แลกเปลี่ยน " ค่า " ของตัวแปร 2 ตัว void exchange ( int& p, int& q ) { int t; // ตัวแปร ชั่วคราวสำหรับพักค่า t = p; p = q; q = t; }

8 การส่ง array เป็นพารามิเตอร์ไปยัง ฟังก์ชัน การส่ง array เป็นพารามิเตอร์ไปยังฟังก์ชันเป็นการส่งแบบ pass by reference ถ้าการทำงานในฟังก์ชันมีการเปลี่ยนแปลงค่าใน array จะเป็นการ เปลี่ยนค่าแบบถาวร

9 การส่ง array 2 มิติเป็นพารามิเตอร์ ไปยังฟังก์ชัน การส่ง array 2 มิติ เป็นพารามิเตอร์ไปยังฟังก์ชันเป็นการส่งแบบ pass by reference ตอนรับพารามิเตอร์ ต้องระบุจำนวน column ใน header ของ ฟังก์ชัน

10 แบบฝึกหัด void prevnext(int a, int& prv, int nxt) { prv = a - 1; nxt = a + 1; } int main() { int a = 100; int b = 0; int c = 0; prevnext(a, b, c); cout << "Previous = ” << b << “Next = ” << c << endl; return 0; }

11 แบบฝึกหัด int x; void func1(int& a) { a = 3; } void func2(int b) { b = 4; } void func3() { int x; x = 5; } void func4() { x = 7; } int main() { x = 15; func1(x); cout << x << endl; x = 16; func2(x); cout << x << endl; x = 17; func3(); cout << x << endl; x = 18; func4(); cout << x << endl; return 0; }


ดาวน์โหลด ppt 886201 หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)

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


Ads by Google