|
Các hàm có thể gọi chính nó. Điều này có thể có ích với một số tác vụ như là một số phương pháp sắp xếp hay tính giai thừa của một số. Ví dụ, để tính giai thừa của một số (n), công thức toán học của nó như sau: n! = n * (n-1) * (n-2) * (n-3) ... * 1 và một hàm đệ quy để tính toán sẽ như sau:
Chú ý trong hàm factorial chúng ta có thể lệnh gọi chính nó nhưng chỉ khi tham số lớn hơn 1, nếu không thì hàm sẽ thực hiện một vòng lặp vô hạn vì sau khi đến 0 nó sẽ tiếp tục nhân cả những số âm. Hàm này có một hạn chế là kiểu dữ liệu mà nó dùng (long) không cho phép tính giai thừa quá 12!. Khai báo mẫu cho hàm. Cho đến giờ chúng ta hoàn toàn phải định nghĩa hàm trước lệnh gọi đầu tiên đến nó, mà thường là trong main, vì vậy hàm main luôn phải nằm cuối chương trình. Nếu bạn thử lặp lại một vài ví dụ về hàm trước đây nhưng thử đặt hàm main trước bất kì một hàm được gọi từ nó, bạn gần như chắc chắn sẽ nhận được thông báo lỗi. Nguyên nhân là một hàm phải được khai báo trước khi nó được gọi như những gì chúng ta đã làm trong tất cả các ví dụ. Nhưng có một cách khác để tránh phải viết tất cả mã chương trình trước khi chúng có thể được dùng trong main hay bất kì một hàm nào khác. Đó chính là khai báo mẫu cho hàm. Cách này bao gồm việc khai báo hàm một cách ngắn gọn nhưng đủ để cho trình dịch có thể biết các tham số và kiểu dữ liệu trả về của hàm. Dạng của nó như sau: type name ( argument_type1, argument_type2, ...); Đây chính là phần đầu của định nghĩa hàm, ngoại trừ:
Ví dụ:
Ví dụ này rõ ràng không phải là một ví dụ về sự hiệu quả. Tôi chắc chắn rằng các bạn có thể nhận được kết quả như trên chỉ với một nửa số dòng lệnh. Tuy nhiên nó giúp cho chúng ta thấy được việc khai báo mẫu các hàm là như thế nào. Hơn nữa, trong ví dụ này việc khai báo mẫu ít nhất một hàm là bắt buộc. Đầu tiên chúng ta thấy khai báo mẫu của hai hàm odd và even: void odd (int a); cho phép hai hàm này có thể được sử dụng trước khi chúng được định nghĩa hoàn chỉnh. Tuy nhiên lý do đặc biệt giải thích tại sao chương trình này lại cần ít nhất một hàm phải được khi báo mẫu là trong odd có một lời gọi đến even và trong even có một lời gọi đến odd. Vì vậy nếu không có hàm nào được khai báo trước thì lỗi chắc chắn sẽ xảy ra. Rất nhiều lập trình viên kinh nghiệm khuyên rằng tất cảcác hàm nên được khai báo mẫu. Đó cũng là lời khuyên của tôi, nhất là trong trường hợp có nhiều hàm hoặc chúng rất dài, khi đó việc khai báo tất cả các hàm ở cùng một chỗ cho phép chúng ta biết phải gọi các hàm như thế nào, vì vậy tiết kiệm được thời gian. (Theo OurViet Netwok) Phần sau: Mảng
|
|||||||||||
Bạn có thể gửi nhận xét, góp ý hay liên hệ về bài viết Tự học C++: Đệ quy bằng cách gửi thư điện tử tới Lien He Bao Viet Nam. Xin bao gồm tên bài viết Tu hoc C De quy ở dạng tiếng Việt không dấu. Hoặc Tự học C++: Đệ quy ở dạng có dấu. Bài viết trong chuyên đề Kinh Nghiệm của chuyên mục Công Nghệ.
study C + +: Recursive
a, declared, possibly, self-study , parameters, factorial, function, call, Int, Odd, computer
The function can call itself. This can be useful for some tasks as a method or factorial arrangement of a number. For example, to compute the factorial of a number (n), its mathematical formula as follows:.
EVN thông báo về sự cố mất điện toàn miền Nam; Sốc vì thu nhập "bèo" của các mại dâm nam; Trung Quốc "già mồm" đòi chủ quyền Trường Sa của Việt Nam; Xuất hiện "bút bi thần kì" lợi hại hơn "bút phù thủy"; Phố “trai gọi” chuyên phục vụ quý bà; "Rẻ" như "sao" Việt... là những tin tức nóng nhất trong ngày 23/05.
Sốc giá tối thiểu 3.000 USD "mua" một trinh nữ Việt; Vụ “nam giới bán dâm”: Có cả giáo viên tham gia!; Hàn Quốc: Mối đe dọa từ Triều Tiên “chưa từng có”; Ăn sữa chua mít: Tự đầu độc mình?; Phẫn nộ clip nhóm thiếu niên trêu chọc cụ già; Sự khác biệt thú vị giữa trẻ con ngày ấy và bây giờ... là những tin nóng nhất trong ngày 21/05.
Côn đồ truy sát nữ sinh: Dân lý giải chuyện đứng nhìn; Thu phí nhạc số: Không thành công cũng thành nhân; Vòi rồng khổng lồ san phẳng ngoại ô Mỹ, 51 người chết; Hàng ngàn người Hà Nội ăn nước phở bẩn mỗi sáng; Chuyện "đo đạc" thí sinh hoa hậu; Điệp khúc mất điện mùa nóng, chiêu tăng giá của EVN?... là những tin nóng nhất trong ngày 21/05
Thiết bị gián điệp tinh vi xuất hiện ở Hà Nội; M.U 5-5 West Brom: Sir Alex chia tay trong sự điên rồ; Hàn Quốc triển khai tên lửa sát biên giới Triều Tiên; Rùng rợn những cơn ghen mất tính người; Vi khuẩn “ăn thịt người” ở Việt Nam; “Sao” Việt dự LHP Cannes làm gì?; Một lít xăng đang cõng 4 loại thuế, 3 loại phí...là những tin nóng nhất trong ngày 20/05.
Phạt tù cựu sinh viên vì "tuyên truyền chống nhà nước"; Nữ "dị nhân" HN nói chuyện được với cụ rùa Hồ Gươm?; Beckham chính thức nói lời từ giã bóng đá; Đài Loan phớt lờ Trung Quốc, khuyến cáo Philippines; 20 cặp đồng tính linh đình diễu hành và tổ chức đám cưới... là những tin nóng nhất trong ngày 17/05.
Dính cáo buộc phá rừng từ Global Witness, bầu Đức không chỉ mất 300 tỷ đồng trong hai ngày mà thiệt hại còn có thể tiếp tục gia tăng.
Những hành vi ghen tuông dã man khiến nhiều người không khỏi rùng mình.
Chàng trai không tay chân Nick Vujicic bắt đầu chuyến giao lưu, nói chuyện tại Việt Nam từ ngày 22-5.
Các “thầy” có thể chữa được bách bệnh bằng những cách kỳ quái.
Nude để thiền dù chỉ mới được đăng tải nhưng một số bức ảnh khác trong bộ ảnh này nhanh chóng được cư dân mạng lùng sục.
Toàn cảnh thể thao từ 12/5 – 18/5
Hot: Angelina Jolie viết tâm thư trải lòng chuyện cắt bỏ ngực; Lý Nhã Kỳ: Từ "đại sứ du lịch" đến "bà trùm scandal";
Bàng hoàng vụ 4 học sinh chết đuối; CSGT bị tố ép doanh nghiệp trả tiền ăn nhậu; Bi hài chuyện kiều nữ "săn tình" ở bể bơi;
Kinh hoàng người cha "khâu miệng, dội nước sôi lên đầu" con gái; Con đường vào tù của một tiến sĩ kinh tế;
Việt Nam đang là nơi sản xuất smartphone hàng đầu thế giới, 10 virus máy tính nguy hiểm nhất mọi thời đại, A
Viết phản hồi