Qui (tt)

Một phần của tài liệu lap trinh can ban docx (Trang 44 - 48)

2. Truyền tham chiếu(call by reference):

6.1.7. qui (tt)

Cấu trúc chung của hàm đệ qui

if (trường hợp suy biến) {

trình bày cách giải // giả định đã có cách giải

}

else // trường hợp tổng quát

{

gọi lại hàm với tham đối "bé" hơn }

Chương 6: Hàm và con trỏ 45 6.1.7. Đệ qui (tt)

Đệ quy - Các ví dụ

Ví dụ: Tìm UCLN của 2 số a, b. Bài toán có thể được định nghĩa dưới dạng đệ qui như sau:

− nếu a = b thì UCLN = a

− nếu a > b thì UCLN(a, b) = UCLN(a-b, b) − nếu a < b thì UCLN(a, b) = UCLN(a, b-a)

6.1.7. Đệ qui (tt)

Ví dụ: Tính số hạng thứ n của dãy Fibonaci là dãy f(n) được định nghĩa: − f(0) = f(1) = 1

Chương 6: Hàm và con trỏ 47 6.1.9. Một số gợi ý khi thiết kế hàm

 Xác định rõ chức năng, nhiệm vụ của hàm.

 Chỉ nên thiết kế hàm theo phương châm “mỗi hàm chỉ thực hiện

một nhiệm vụ duy nhất”, và nên thiết kế sao cho có thể sử dụng lại hàm để hổ trợ cho các việc khác (reusable).

Đặt tên hàm sao cho có tính gợi nhớ (Mnemonic)

Nên đặt chú thích, ghi rõ các thông tin về hàm như chức năng, điều

kiện dữ liệu vào, xác định dữ liệu ra của hàm, . . .

Xác định trị trả về: hàm có cần trả về giá trị? Nếu có, xác định rỏ

kiểu trả về. Đối với các hàm có chức năng nhập/xuất dữ liệu, trị trả về thường là void. Còn đối với loại hàm kiểm tra một tính chất P nào đó, ta thường trả về giá trị 0 hoặc 1, i.e. trả về trị của một biểu thức logic.

Một phần của tài liệu lap trinh can ban docx (Trang 44 - 48)