Recursion การเรียกซ้ำ

Slides:



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

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
โปรแกรมทดสอบที่1 ทดสอบการแสดงผลข้อความ
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
อัลกอริทึ่มทำงานวนซ้ำ
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
Computer Programming 1 LAB Test 3
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
Introduction to C Programming
คำสั่ง while และ คำสั่ง do..while
Control Statement for while do-while.
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
Functional programming part II
Data Structures and Algorithms
Lecture 13: ฟังก์ชันเรียกตัวเอง
ฟังก์ชัน (Function).
ลักษณะการทำงานของ Stack
LAB # 4.
Week 15 C Programming.
คำสั่งเพื่อการกำหนดเงื่อนไข
CE 112 บทที่ 5 การทำซ้ำในภาษา C
รับและแสดงผลข้อมูล.
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
คำสั่งควบคุมการทำงาน
ฟังก์ชัน (Function).
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
คำสั่งควบคุมการทำงาน
Flow Control.
การเขียนโปรแกรมภาษาซี
Chapter 5 คำสั่งควบคุมการทำซ้ำ
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
C language W.lilakiatsakun.
การเขียนโปรแกรมแสดงผลข้อมูล
Week 10 การเขียนโปรแกรมเบื้องต้น #2
การประมวลผลสายอักขระ
โปรแกรมประยุกต์อื่นๆ
Week 7 การเขียนโปรแกรมเบื้องต้น
Call by reference.
การจัดการเกี่ยวกับรูปภาพตอนที่ ๑ การจัดการเกี่ยวกับภาพเพื่อนำภาพมาใช้ ประกอบงาน การจัดการเกี่ยวกับภาพเพื่อนำภาพมาใช้ประกอบ งาน มีอยู่หลายวิธีขึ้นอยู่ กับ.
กองซ้อน ยอดกองซ้อน (stack).
อัลกอริทึ่มทำงานวนซ้ำ
บทที่ 2 แนวคิดในการเขียนโปรแกรม. ขั้นตอนการ พัฒนาโปรแกรม ในการพัฒนาโปรแกรมมีขั้นตอนหลัก 5 ขั้นตอน ซึ่งไม่ว่าจะทำการพัฒนาโปรแกรม ครั้งใดจะต้องปฏิบัติตามขั้นตอนเหล่านี้
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
Recursive Method.
บทที่ 9 การสร้างและใช้ งานฟังก์ชั่น C Programming C-Programming.
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
การเขียนโปรแกรม (ภาษาซี)
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
บทที่ 10 การจัดการไฟล์ อาจารย์ศศลักษณ์ ทองขาว สงวนลิขสิทธิ์ © 2547 มหาวิทยาลัยราช ภัฏสงขลา C Programming C-Programming.
การทำซ้ำ Pisit Nakjai.
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
ลิมิตและความต่อเนื่องของฟังก์ชัน
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
รูปแบบของการใช้คำสั่ง for for( ตัวแปร = ค่าเริ่มต้น ; นิพจน์ตรรกะ ; ค่าเพิ่มหรือค่าลด ) { statement(s); } ตัวอย่าง กรณีกำหนดการวนซ้ำเป็นค่าคงที่ For(n=1;n
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
ใบสำเนางานนำเสนอ:

Recursion การเรียกซ้ำ

การเรียกซ้ำ (Recursion) วิธีการที่ฟังก์ชันใดๆ สามารถเรียกตัวเองได้ แต่ละครั้งที่ฟังก์ชันถูกเรียก จะเกิดตัวแปรอัตโนมัติชุดใหม่ที่ไม่เกี่ยวกับชุดเดิม จึงเรียกวิธีนี้อีกชื่อหนึ่งว่า การเวียนเกิด จึงใช้เนื้อที่ในหน่วยความจำมาก และทำงานช้า วิธีการเรียกซ้ำแบบนี้ ทำให้มีรหัสคำสั่งขนาดกะทัดรัด เขียนและเข้าใจง่าย

ตัวอย่าง ๑ #include <stdio.h> /* Recursion not used */ void count_down (int n) { if (n) { printf(“%d ! ”, n); /* The recursive call */ count_down(n-1); } else printf(“\nBLAST OFF\n”); void main() { /* The initial call */ count_down(10); /* Recursion not used */ #include <stdio.h> void main () { int n; for (n=10; n; n--) printf(“%d ! ”, n); printf(“\n BLAST OFF\n”); } 10 ! 9 ! 8 ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 ! BLAST OFF

ตัวอย่าง หาผลบวกแบบเรียกซ้ำ /* Compute sums recursively*/ int sum (int n) { if (n <= 1) return n; else return n + sum(n-1); } Function call Value returned sum(1) 1 sum(2) 2 + sum(1) หรือ 2 + 1 sum(3) 3 + sum(2) หรือ 3 + 2 + 1 sum(4) 4 + sum(3) หรือ 4 + 3 + 2 + 1

ตัวอย่าง ฟังก์ชันแบบเรียกซ้ำที่ผิดพลาด /* Forgetting the base case*/ long factorial (long n) { return n * factorial(n-1); } /* Incomplete base case test */ long factorial (long n) { if (n == 1) return 1; else return n * factorial(n-1); } factorial (0); /* Ambiguous use of decrement operator */ long factorial (long n) { if (n <= 1) return 1; else return n * factorial (- -n); }