Chetan

New Member

Download miễn phí Ebook C++ Căn bản và nâng cao





Mục lục:
I. Cơ bản về C++ (2)
I. Cấu trúc của một trương trình C++ (2)
II. Các biến kiểu và hằng số (5)
III. Các toán tử (13)
IV. Giao tiếp với Console (19)
II. Các cấu trúc điều khiển và Hàm (22)
I. Cấu trúc dữ liệu điều khiển (22)
II. Hàm I (29)
III. Hàm II (34)
III. Dữ liệu nâng cao (41)
I. Mạng (41)
II. Sâu ký tự (48)
III. Con trỏ (54)
IV. Bộ nhớ động (65)
V. Các cấu trúc (69)
VI. Các kiểu dữ liệu do người dùng định nghĩa. (typedef,union, enum) (75)



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


truyền hai giá trị: 5 và 3 tương ứng với hai tham số int a và int b ñược khai báo cho
hàm addition.
Vào thời ñiểm hàm ñược gọi từ main, quyền ñiều khiển ñược chuyển sang cho hàm
addition. Giá trị của c hai tham số (5 và 3) ñược copy sang hai biến cục bộ int a và
int b bên trong hàm.
Dòng lệnh sau:
return (r);
kết thúc hàm addition, và trả lại quyền ñiều khiển cho hàm nào ñã gọi nó (main) và tiếp
tục chương trình ở cái ñiểm mà nó bị ngắt bởi lời gọi ñến addition. Nhưng thêm vào ñó,
giá trị ñược dùng với lệnh return (r) chính là giá trị ñược trả về của hàm.\
Giá trị trả về bởi một hàm chính là giá trị của hàm khi nó ñược tính toán. Vì vậy biến z sẽ
có có giá trị ñược trả về bởi addition (5, 3), ñó là 8.
Phạm vi hoạt ñộng của các biến [nhắc lại]
Bạn cần nhớ rằng phạm vi hoạt ñộng của các biến khai báo trong một hàm hay bất kì một
khối lệnh nào khác chỉ là hàm ñó hay khối lệnh ñó và không thể sử dụng bên ngoài
chúng. Ví dụ, trong chương trình ví dụ trên, bạn không thể sử dụng trực tiếp các biến a, b
hay r trong hàm main vì chúng là các biến cục bộ của hàm addition. Thêm vào ñó bạn
cũng không thể sử dụng biến z trực tiếp bên trong hàm addition vì nó làm biến cục bộ
của hàm main.
Tuy nhiên bạn có thể khai báo các biến toàn cục ñể có thể sử dụng chúng ở bất kì ñâu,
bên trong hay bên ngoài bất kì hàm nào. ðể làm việc này bạn cần khai báo chúng bên
ngoài mọi hàm hay các khối lệnh, có nghĩa là ngay trong thân chương trình.
ðây là một ví dụ khác về hàm:
// function example
#include
The first result is 5
The second result is 5
Updatesofts.com Ebooks Team
Trang 31
int subtraction (int a, int b)
{
int r;
r=a-b;
return (r);
}
int main ()
{
int x=5, y=3, z;
z = subtraction (7,2);
cout << "The first result is " <<
z << '\n';
cout << "The second result is "
<< subtraction (7,2) << '\n';
cout << "The third result is " <<
subtraction (x,y) << '\n';
z= 4 + subtraction (x,y);
cout << "The fourth result is "
<< z << '\n';
return 0;
}
The third result is 2
The fourth result is 6
Trong trường hợp này chúng ta tạo ra hàm subtraction. Chức năng của hàm này là lấy
hiệu của hai tham số rồi trả về kết quả.
Tuy nhiên, nếu phân tích hàm main các bạn sẽ thấy chương trình ñã vài lần gọi ñến hàm
subtraction. tui ñã sử dụng vài cách gọi khác nhau ñể các bạn thấy các cách khác nhau
mà một hàm có thể ñược gọi.
ðể có hiểu cặn kẽ ví dụ này bạn cần nhớ rằng một lời gọi ñến một hàm có thể hoàn toàn
ñược thay thế bởi giá trị của nó. Ví dụ trong lệnh gọi hàm ñầu tiên :
z = subtraction (7,2);
cout << "The first result is " << z;
Nếu chúng ta thay lời gọi hàm bằng giá trị của nó (ñó là 5), chúng ta sẽ có:
z = 5;
cout << "The first result is " << z;
Tương tự như vậy
cout << "The second result is " << subtraction (7,2);
cũng cho kết quả giống như hai dòng lệnh trên nhưng trong trường hợp này chúng ta gọi
hàm subtraction trực tiếp như là một tham số của cout. Chúng ta cũng có thể viết:
cout << "The second result is " << 5;
Updatesofts.com Ebooks Team
Trang 32
vì 5 là kết quả của subtraction (7,2).
Còn với lệnh
cout << "The third result is " << subtraction (x,y);
ðiều mới mẻ duy nhất ở ñây là các tham số của subtraction là các biến thay vì các
hằng. ðiều này là hoàn toàn hợp lệ. Trong trường hợp này giá trị ñược truyền cho hàm
subtraction là giá trị của x and y.
Trường hợp thứ tư cũng hoàn toàn tương tự. Thay vì viết
z = 4 + subtraction (x,y);
chúng ta có thể viết:
z = subtraction (x,y) + 4;
cũng hoàn toàn cho kết quả tương ñương. Chú ý rằng dấu chấm phẩy ñược ñặt ở cuối
biểu thức chứ không cần thiết phải ñặt ngay sau lời gọi hàm.
Các hàm không kiểu. Cách sử dụng void.
Nếu bạn còn nhớ cú pháp của một lời khai báo hàm:
type name ( argument1, argument2 ...) statement
bạn sẽ thấy rõ ràng rằng nó bắt ñầu với một tên kiểu, ñó là kiểu dữ liệu sẽ ñược hàm trả
về bởi lệnh return. Nhưng nếu chúng ta không muốn trả về giá trị nào thì sao ?
Hãy tưởng tượng rằng chúng ta muốn tạo ra một hàm chỉ ñể hiển thị một thông báo lên
màn hình. Nó không cần trả về một giá trị nào cả, hơn nữa cũng không cần nhận tham số
nào hết. Vì vậy người ta ñã nghĩ ra kiểu dữ liệu void trong ngôn ngữ C. Hãy xem xét
chương trình sau:
// void function example
#include
void dummyfunction (void)
{
cout << "I'm a function!";
}
int main ()
{
dummyfunction ();
return 0;
}
I'm a function!
Updatesofts.com Ebooks Team
Trang 33
Từ khoá void trong phần danh sách tham số có nghĩa là hàm này không nhận một tham
số nào. Tuy nhiên trong C++ không cần thiết phải sử dụng void ñể làm ñiều này. Bạn chỉ
ñơn giản sử dụng cặp ngoặc ñơn ( ) là xong.
Bởi vì hàm của chúng ta không có một tham số nào, vì vậy lời gọi hàm dummyfunction
sẽ là :
dummyfunction ();
Hai dấu ngoặc ñơn là cần thiết ñể cho trình dịch hiểu ñó là một lời gọi hàm chứ không
phải là một tên biến hay bất kì dấu hiệu nào khác.
Updatesofts.com Ebooks Team
Trang 34
Hàm (II).
Truyền tham số theo tham số giá trị hay tham số biến.
Cho ñến nay, trong tất cả các hàm chúng ta ñã biết, tất cả các tham số truyền cho hàm ñều
ñược truyền theo giá trị. ðiều này có nghĩa là khi chúng ta gọi hàm với các tham số,
những gì chúng ta truyền cho hàm là các giá trị chứ không phải bản thân các biến. Ví dụ,
giả sử chúng ta gọi hàm addition như sau:
int x=5, y=3, z;
z = addition ( x , y );
Trong trường hợp này khi chúng ta gọi hàm addition thì các giá trị 5 and 3 ñược truyền
cho hàm, không phải là bản thân các biến.
ðến ñây các bạn có thể hỏi tôi: Như vậy thì sao, có ảnh hưởng gì ñâu ? ðiều ñáng nói ở
ñây là khi các bạn thay ñổi giá trị của các biến a hay b bên trong hàm thì các biến x và y
vẫn không thay ñổi vì chúng ñâu có ñược truyền cho hàm chỉ có giá trị của chúng ñược
truyền mà thôi.
Hãy xét trường hợp bạn cần thao tác với một biến ngoài ở bên trong một hàm. Vì vậy bạn
sẽ phải truyền tham số dưới dạng tham số biến như ở trong hàm duplicate trong ví dụ
dưới ñây:
// passing parameters by reference
#include
void duplicate (int& a, int& b,
int& c)
{
a*=2;
b*=2;
c*=2;
}
int main ()
{
int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y
<< ", z=" << z;
return 0;
}
x=2, y=6, z=14
Updatesofts.com Ebooks Team
Trang 35
ðiều ñầu tiên làm bạn chú ý là trong khai báo của duplicate theo sau tên kiểu của mỗi
tham số ñều là dấu và (&), ñể báo hiệu rằng các tham số này ñược truyền theo tham số
biến chứ không phải tham số giá trị.
Khi truyền tham số dưới dạng tham số biến chúng ta ñang truyền bản thân biến ñó và bất
kì sự thay ñổi nào mà chúng ta thực hiện với tham số ñó bên trong hàm sẽ ảnh hưởng trực
tiếp ñến biến ñó.
Trong ví dụ trên, chúng ta ñã liên kết a, b và c với các tham số khi gọi hàm (x, y và z) và
mọi sự thay ñổi với a bên trong hàm sẽ ảnh hưởng ñến giá trị của x và hoàn toàn tương tự
với b và y, c và z.
Kiểu khai báo tham số theo dạng tham số biến sử dụng dấu và (&)...
 
Tags: ebook c++

Các chủ đề có liên quan khác

Top