Bài giảng kỹ thuật lập trình nâng cao chương 3 lập trình đệ qui

14 407 0
Bài giảng kỹ thuật lập trình nâng cao   chương 3    lập trình đệ qui

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƢỜNG CAO ĐẲNG CNTT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN KỸ THUẬT LẬP TRÌNH NÂNG CAO Chƣơng LẬP TRÌNH ĐỆ QUI Giảng Viên: ThS Dƣơng Thành Phết Email: phetcm@gmail.com Website: http://www.thayphet.net Tel: 0918158670 – facebook.com/DuongThanhPhet KHÁI NIỆM  Một hàm được gọi có tính đệ qui nếu thân của hàm đó có lệnh gọi lại chính nó một cách tường minh hay tiềm ẩn  Phân loại đệ qui  Đệ qui tuyến tính  Đệ qui nhị phân  Đệ qui phi tuyến  Đệ qui hỗ tương 2 ĐỆ QUI TUYẾN TÍNH Trong thân hàm có nhất một lời gọi hàm gọi lại chính nó một cách tường minh TenHam () { if (điều kiện dừng) //Trả về giá trị hay kết thúc công việc //Thực hiện một số công việc (nếu có) …TenHam (); //Thực hiện một số công việc (nếu có) } ĐỆ QUI TUYẾN TÍNH Ví dụ: Tính S (n)       n - Điều kiện dừng: S(0) = - Qui tắc (công thức) tính: S(n) = S(n-1) + n long TongS (int n) { if(n==0) return 0; return ( TongS(n-1) + n ); } ĐỆ QUI NHỊ PHÂN Trong thân của hàm có hai lời gọi hàm gọi lại chính nó một cách tường minh TenHam () { if (điều kiện dừng) //Trả về giá trị hay kết thúc công việc //Thực hiện một số công việc (nếu có) ….TenHam (); //Thực hiện một số công việc (nếu có) TenHam (); //Giải quyết vấn đề còn lại //Thực hiện một số công việc (nếu có) } ĐỆ QUI NHỊ PHÂN Ví dụ: Tính số hạng thứ n của dãy Fibonaci được định nghĩa sau: f1 = f0 =1 ; fn = fn-1 + fn-2 ; (n>1) Điều kiện dừng: f(0) = f(1) = long Fibonaci (int n) { if(n==0 || n==1) return 1; return Fibonaci(n-1) + Fibonaci(n-2); } ĐỆ QUI PHI TUYẾN Trong thân của hàm có lời gọi hàm gọi lại chính nó được đặt bên vòng lặp TenHam () { for (int i = 1; i0) Điều kiện dừng:X(0) = Y(0) = 11 ĐỆ QUI TƢƠNG HỖ long TinhYn(int n); long TinhXn (int n) { if(n==0) return 1; return TinhXn(n-1) + TinhYn(n-1); } long TinhYn (int n) { if(n==0) return 1; return n*n*TinhXn(n-1) + TinhYn(n-1); } 12 CÁCH HOẠT ĐỘNG HÀM ĐỆ QUI Ví dụ: tính n! với n=5 main() n 13 GiaiThua(5) 120 n GiaiThua(4) 24 n GiaiThua(3) n GiaiThua(2) GiaiThua(1) 2 n 1 n The End 14 ... đệ qui nếu thân của hàm đó có lệnh gọi lại chính nó một cách tường minh hay tiềm ẩn  Phân loại đệ qui  Đệ qui tuyến tính  Đệ qui nhị phân  Đệ qui phi tuyến  Đệ qui. .. TinhXn(n-i); return s; } ĐỆ QUI TƢƠNG HỖ Trong thân của hàm này có lời gọi hàm đến hàm và thân của hàm có lời gọi hàm tới hàm này g() f() f() f() g() h() ĐỆ QUI TƢƠNG HỖ

Ngày đăng: 22/04/2016, 09:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan