บทที่ 9 โปรแกรมเรียกตัวเอง

Get Started. It's Free
or sign up with your email address
Rocket clouds
บทที่ 9 โปรแกรมเรียกตัวเอง by Mind Map: บทที่ 9 โปรแกรมเรียกตัวเอง

1. 9.1 ความนำ

1.1. ใช้ความรู้พื้นฐานจากการเขียนโปรแกรมย่อยและนำมาเพิ่มเติม

1.2. ภายในโปรแกรมย่อยนั้น จะเรียกชื่อโปรแกรมย่อยตัวเองขึ้นมาทำงาน

1.3. โปรแกรมย่อยคือกระดาษที่มีคำสั่งโปรแกรมย่อย 1 แผ่น

1.3.1. โปรแกรมย่อย

1.3.1.1. โปรแกรมย่อย

1.3.2. โปรแกรมย่อย

1.3.3. โปรแกรมย่อย

1.3.3.1. โปรแกรมย่อย

2. 9.2 ข้อควรคำนึงในการเขียนโปรแกรมเรียกตัวเอง

2.1. 1. มีจุดหยุด โดยไม่เรียกตัวเองอีก

2.2. 2. มีการเรียกตัวเองโดยลดค่าหรือเพิ่มค่าเข้าหาจุดหยุด

2.3. ตัวอย่าง

2.3.1. การหาผลรวมตั้งแต่ 1 จนถึงค่าที่กำหนด

2.3.1.1. กำหนดให้ s() เป็นการหาผลรวม

2.3.1.2. s(10) = 10 + s(9) s(9) = 9+ s(8) s(8) = 8+ s(7) : s(3) = 3+ s(2) s(2) = 2+ s(1) s(1) = 1

2.3.1.3. เขียนเป็นสูตรได้ดังนี้ s(n) = 1 ; เมื่อ n = 1 = n + s(n-1) ; อื่นๆ

2.3.1.4. เขียนเป็นฟังก์ชั่นได้ดังนี้ function s($n) { if ($n == 1) retrun 1; retrun $n+s($n-1); }

3. 9.3 โปรแกรมเรียกตัวเองกับการวนรอบ

3.1. 9.3.1 ตัวอย่างการแสดงเลขจำนวนถึงค่าที่กำหนด

3.1.1. function disp1($n) { for($i = 1; $i <= $n; $i+ +) echo “$i <br>”; }

3.1.2. function disp_r ($n) { if ($n == 0) return; disp_r($n-1); echo “$n <br>”; }

3.2. 9.3.2 แฟคทอเรียล

3.2.1. คณิตศาสตร์

3.2.1.1. n! = n x (n-1)!

3.2.1.2. 5! = 5 x 4! 4! = 4 x 3! 3! = 3 x 2! 2! = 2 x 1! 1! = 1 x 0! 0! = 1

3.2.1.3. 5! = 5 x 4 x 3 x 2 x 1

3.2.2. แบบ for

3.2.2.1. function fact1($n) { $f = 1; for ($i = $n; $i > 1; $i--) $f *= $i; return $f; }

3.3. 9.3.3 การหาค่ายกกำลัง

3.4. 9.3.4 ตัวเลขอนุกรม Fibonacci

4. 9.4 โปรแกรมเรียกตัวเองแก้ปัญหาที่ซับซ้อน

4.1. 9.4.1 หอคอยแห่งฮานอย

4.2. 9.4.2 การหาค่าหารรวมมาก