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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

Computer Programming 1 LAB Test 3
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
เริ่มต้นเขียนโปรแกรมภาษา C++
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน
Lecture 6: ทางเลือกแบบมีโครงสร้างซ้อนใน
หลักการโปรแกรม 1 Lecture 1: ความรู้เบื้องต้นเกี่ยวกับ การโปรแกรม.
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
Computer Programming 1 LAB # 6 Function.
LAB # 4.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
หน่วยที่ 8 อาร์กิวเมนต์ของ main
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
Lecture 9 Class (คลาส) To do: Hand back assignments
โปรแกรมการคำนวณพื้นที่สามเหลี่ยมมุมฉาก
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
C language W.lilakiatsakun.
คำสั่งเกี่ยวกับการรับ และแสดงผล
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
Introduction to Flowchart
หลักการโปรแกรม 1 Lecture 12: อาร์เรย์หนึ่งมิติ
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
การเขียนโปรแกรมคอมพิวเตอร์ Computer programming
Operator of String Data Type
Chapter 5 Elementary C++ Programming Dept of Computer Engineering Khon Kaen University.
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
ตอนที่ 2 โครงสร้างภาษา C Arduino เบื้องต้น
โครงสร้างโปรแกรมภาษา C
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 5 อินพุตและเอาต์พุต
โปรแกรมย่อย อาจารย์สมเกียรติ ช่อเหมือน
แนวข้อสอบ Final (จดด่วน)
ครูวีรธรรม เทศประสิทธิ์ แผนกวิชาคอมพิวเตอร์ธุรกิจ
Chapter 9 ตัวชี้ pointer.
เขียนโปรแกรม Java เบื้องต้น
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 4 ฟังก์ชัน Function
โครงสร้างภาษา C Arduino
ตัวแปรกับชนิดของข้อมูล
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 1 หลักการเขียนโปรแกรมเบื้องต้น ภาษา C#
การเขียนภาษาจาวาเบื้องต้น
Week 5 C Programming.
โปรแกรมย่อย (Sub Program)
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
หน่วยที่ 6 อะเรย์ของอักขระ
Array: One Dimension Programming I 9.
ฟังก์ชันของโปรแกรม Computer Game Programming
Lecture 7: ทางเลือกแบบมีโครงสร้างซ้อนใน
พอยเตอร์ #include <stdio.h> void main() { int age; int *pointer;
Computer Game Programming
ใบสำเนางานนำเสนอ:

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

ชื่อฟังก์ชัน (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) /* ไม่มี พารามิเตอร์ */

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

ตัวอย่าง 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; }

ตัวอย่าง 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; }

ตัวอย่าง 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; }

ตัวอย่าง 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; }

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

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

แบบฝึกหัด 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; }

แบบฝึกหัด 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; }