Lecture 13: ฟังก์ชันเรียกตัวเอง

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คำสั่งควบคุมในโปรแกรม Interactive C
Advertisements

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
Lecture 5: ทางเลือกแบบหลายทาง
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
Introduction to C Programming
ครั้งที่ 8 Function.
Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์
ข้อตกลงการใช้ Stack และ Recursion
Type Judgments และ Type Rules. คำศัพท์ที่จะใช้ Type judgment: การตัดสินความถูกต้องของ type สำหรับ expression หรือ statement ใน โปรแกรม – เป็นบทสรุป (conclusion)
Functional Programming
Functional programming part II
Data Structures and Algorithms
Data Structures and Algorithms
Lecture no. 5 Control Statements
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน
หลักการโปรแกรม 1 Lecture 1: ความรู้เบื้องต้นเกี่ยวกับ การโปรแกรม.
ฟังก์ชัน (Function).
Structure Programming
Structure Programming
Computer Programming 1 LAB # 6 Function.
LAB # 5 Computer Programming 1 1.
ลักษณะการทำงานของ Stack
Function.
ฟังก์ชันตรวจสอบเงื่อนไข
คำสั่งเพื่อการกำหนดเงื่อนไข
ฟังก์ชั่น function.
ภาษาโปรแกรมเชิงหน้าที่
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
ฟังก์ชัน (Function).
อนุพันธ์อันดับหนึ่ง ( First Derivative )
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
C Programming Lecture no. 6: Function.
Tower of Hanoi.
การเขียนผังงานแบบโครงสร้าง
Asst.Prof. Dr.Surasak Mungsing
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงานลักษณะของฟังก์ชั่นมีความรอบรัดสั้นกว่าแบบวนลูป.
คำสั่งควบคุมการทำงาน
Lecture 7 ฟังก์ชัน To do: Hand back assignments
การเขียนโปรแกรมภาษาซี
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ครูรัตติยา บุญเกิด.
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
วิชาคณิตศาสตร์พื้นฐาน รหัสวิชา ค ครูผู้สอน นางสาวสมใจ จันทรงกรด
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
Recursion การเรียกซ้ำ
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
กองซ้อน ยอดกองซ้อน (stack).
บทที่ 7 การวิเคราะห์งานและการโปรแกรม แบบมีโครงสร้าง
งานเทคโนโลยีสารสนเทศ โรงเรียนพนมเบญจา
การเขียนโปรแกรมคอมพิวเตอร์ 1
บทที่ 2 การวิเคราะห์อัลกอริทึม
Recursive Method.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Function ธนวัฒน์ แซ่ เอียบ. What is a function ฟังก์ชันในภาษา C เป็นโปรแกรมที่ถูกออกแบบมาเพื่อ ใช้แก้ปัญหางานใดงานหนึ่งโดยเฉพาะ ฟังก์ชันจะเปลี่ยน input.
การแบ่งแยกและเอาชนะ Divide & Conquer
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
Problem Analysis and Algorithm in Programming (การวิเคราะห์ปัญหา และการจำลองความคิดในการเขียนโปรแกรมคอมฯ)
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
หน่วยที่ 5 การเวียนเกิด
ใบสำเนางานนำเสนอ:

Lecture 13: ฟังก์ชันเรียกตัวเอง 886201 หลักการโปรแกรม 1 Lecture 13: ฟังก์ชันเรียกตัวเอง

Recursive function คือ ฟังก์ชันที่เรียกตัวเอง void solveIt(the-Problem) { . . . solveIt(the-Problem-a-bit-reduced); }

Recursive Function นิยามแบบเรียกตัวเองมีองค์ประกอบสองอย่างคือ base case และ general case base case ซึ่งเป็นขั้นตอนที่สามารถหาคำตอบได้โดยตรง และ general case ซึ่งได้แก่ขั้นตอนส่วนที่เหลือซึ่งยังไม่สามารถแก้ปัญหาโดยตรงได้ ต้องทำการลดขนาดปัญหาและเรียกตัวเองซ้ำ

Factorial นิยามของ Factorial n! = 1 if n = 0 or n = 1 <base-case> n x (n-1)! if n > 1 <general-case> {

ฟังก์ชันสำหรับหาค่า factorial ของ n ชนิดเรียกตัวเองซ้ำ int fact ( int n ) { if ( n == 0 || n == 1 ) // นิยามพื้นฐาน return 1; else return n * fact (n-1); // เรียกตัวเองซ้ำ }

Fibonacci นิยามของอนุกรม Fibonacci f(n) = 1 if n = 0 or n = 1 <base-case> f(n - 1) + f(n - 2) if n > 1 <general-case> {

ฟังก์ชันสำหรับหาค่า fibonacci ของ n ชนิดเรียกตัวเองซ้ำ int fib ( int n ) { if ( n == 0 || n == 1 ) // base-case return 1; else return fib (n-1) + fib (n-2); // เรียกตัวเองซ้ำ }

Fibonacci

แบบฝึกหัด กำหนดให้ f(x) = | 3 * x if x < 5 | 2 * f(x - 5) + 7 if x ≥ 5 1. จงหาค่าของ f(4), f(10) และ f(12) 2. จงเขียนฟังก์ชัน f ตามนิยาม และทำการ Run ทดสอบด้วยข้อมูล 4, 10 และ 12

แบบฝึกหัด กำหนดฟังก์ชัน g ดังนี้ int g ( int x, int y ) { if ( x < y ) return -3; else return g(x - y, y + 3) + y; } จงหาค่าที่ฟังก์ชัน g คืนให้แก่ผู้เรียก เมื่อถูกเรียกใช้ดังนี้คือ g(2, 7), g(5, 3) และ g(15, 3)

แบบฝึกหัด กำหนดฟังก์ชัน h ดังนี้ int h ( int x, int y ) { if ( x > y ) return -1; else if ( x == y ) return 1; else return x * h(x + 1, y); } จงหาค่าที่ฟังก์ชัน h คืนให้แก่ผู้เรียก เมื่อถูกเรียกใช้ดังนี้คือ h(10, 4), h(4, 3), h(4, 7) และ h(0, 0)