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 nggx gì chúng taọ ư ư
đã làm trng 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 : ầ ầ ủ ị ạ ừ
• Nó không có b t kì l nh nào cho hàm. Đi u này có nghĩa là nó không bao g mấ ệ ề ồ
thân hàm v i t t c các l nh thớ ấ ả ệ ường được b c trong c p ngo c nh n ọ ặ ặ ọ { }. • Nó k t thúc b ng d u ch m ph y (ế ằ ấ ấ ẩ ;).
• Trong ph n li t kê các tham s ch c n vi t ki u c a chúng là đ . Vi c vi t tênầ ệ ố ỉ ầ ế ể ủ ủ ệ ế
c a các tham s trong ph n khai báo m u là không b t bu c. ủ ố ầ ẫ ắ ộ
Ví d :ụ
// prototyping
#include <iostream.h> void odd (int a); void even (int a); int main ()
{
int i;
Type a number (0 to exit): 9
Number is odd.
Type a number (0 to exit): 6
Number is even.
Type a number (0 to exit): 1030
Number is even.
Type a number (0 to exit): 0
do {
cout << "Type a number: (0 to exit)"; cin >> i; odd (i); } while (i!=0); return 0; }
void odd (int a) {
if ((a%2)!=0) cout << "Number is odd.\n";
else even (a); }
void even (int a) {
if ((a%2)==0) cout << "Number is even.\n";
else odd (a); }
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);
void even (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. ẽ ẩ
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 3pt solid"> 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. ờ Bài 7 : M ngả
M ng là m t dãy các ph n t có cùng ki u đả ộ ầ ử ể ược đ t liên ti p trong b nh và có thặ ế ộ ớ ể
truy xu t đ n t ng ph n t b ng cách thêm m t ch s vào sau tên c a m ng.ấ ế ừ ầ ử ằ ộ ỉ ố ủ ả
Đi u này có nghĩa là, ví d , chúng ta có th l u 5 giá tr ki u ề ụ ể ư ị ể int mà không c n ph iầ ả
khai báo 5 bi n khác nhau.Ví d , m t m ng ch a 5 giá tr nguyên ki u ế ụ ộ ả ứ ị ể int có tên là
billy có th để ược bi u di n nh sau: ể ễ ư
trong đó m i m t ô tr ng bi u di n m t ph n t c a m ng, trong trỗ ộ ố ể ễ ộ ầ ử ủ ả ường h p này làợ
các giá tr nguyên ki u ị ể int. Chúng được đánh s t ố ừ0 đ n ế 4 vì ph n t đ u tiên c aầ ử ầ ủ
m ng luôn là ả 0 b t k đ dài c a nó là bao nhiêu. ấ ể ộ ủ
Nh b t kì bi n nào khác, m t m ng ph i đư ấ ế ộ ả ả ược khai báo trước khi có th s d ng.ể ử ụ
M t khai báo đi n hình cho m t m ng trong C++ nh sau: ộ ể ộ ả ư
type name [elements];
trong đó type là m t ki u d li u h p l (ộ ể ữ ệ ợ ệ int, float...), name là m t tên bi n h p l vàộ ế ợ ệ
trường elements ch đ nh m ng đó s ch a bao nhiêu ph n t ỉ ị ả ẽ ứ ầ ử
Vì v y, đ khai báo ậ ể billy nh đã trình bày trên chúng ta ch c n m t dòng đ n gi nư ở ỉ ầ ộ ơ ả
nh sau: ư
int billy [5];
Chú ý: Trường elements bên trong c p ngo c ặ ặ [] ph i là m t giá tr h ng khi khai báoả ộ ị ằ
m t m ng, vì m ng là m t kh i nh tĩnh có kích c xác đ nh và trình biên d ch ph i cóộ ả ả ộ ố ớ ỡ ị ị ả
kh năng xác đ nh xem c n bao nhiêu b nh đ c p phát cho m ng trả ị ầ ộ ớ ể ấ ả ước khi các l nhệ
có th để ược th c hi n.ự ệ