[Học lập trình C++] Chương 1: 1.1 Cấu trúc của một chương trình
1.1 Cấu
trúc của một chương trình
Một chương trình máy
tính là một chuỗi các chỉ thị thông báo với máy tính những gì cần phải làm.
Câu lệnh và biểu thức
Kiểu chung nhất của
những chỉ thị trong một chương trình là câu lệnh. Một câu lệnh trong C++ là
thành phần độc lập nhỏ nhất trong ngôn ngữ. Nó tương tự như một câu trong ngôn
ngữ của con người. Chúng ta viết một câu để truyền tải ý tưởng. Trong C++,
chúng ta viết câu lệnh để truyền tải đến máy tính rằng chúng ta muốn thực thi một
công việc. Câu lệnh trong C++ được kết thúc bằng dấu chấm phẩy (;).
Có nhiều loại câu lệnh
khác nhau trong C++. Dưới đây là một vài ví dụ:
1
2
3
|
int x;
x = 5;
std::cout << x;
|
Int x là một câu lệnh
khai báo. Nó nói cho trình biên dịch biết x là một biến. Bạn có thể nhớ biến
này trong toán học. Các biến thực hiện mục đích tương tự nhau: Cung cấp một cái
tên cho một giá trị có thể biến đổi. Tất cả các biến trong chương trình phải được
khai báo trước khi chúng được sử dụng. Chúng ta sẽ nói nhiều hơn về biến.
X=5 là một câu lệnh
gán. Nó gán một giá trị (5) vào một biến (x).
Std::cout<<x;
là một câu lệnh output. Nó xuất giá trị của x ra màn hình.
Trình biên dịch còn
có khả năng tính toán một biểu thức. Một biểu thức là các phép toán học để tính
giá trị. Ví dụ trong toán học, biểu thức 2+3 sẽ bằng 5. Biểu thức có thể chứa
giá trị (ví dụ 2), biến (x), hoặc toán tử (ví dụ +) và hàm (có thể trả về giá
trị dựa vào một số giá trị input). Chúng có thể là đơn lẻ hoặc phúc tạp.
Ví dụ, câu lệnh
x=2+3; là một câu lệnh gán hợp lệ. Biểu thức 2+3 tính ra kết quả là 5. Giá trị
này được gán vào x.
Hàm
Trong C++, câu lệnh
thông thường được nhóm vào một khối gọi là hàm. Một hàm là một tập hợp các câu
lệnh mà thực thi một cách trình tự. Với mỗi chương trình C++ phải chứa một hàm
đặc biệt gọi là main. Khi chương trình C++ chạy, nó sẽ thực thi câu lệnh hàm
main trước tiên. Hàm thông thường được viết để làm những công việc cụ thể. Ví dụm
hàm tên là “max” có thể chứa các câu lệnh tìm ra giá trị lớn nhất trong hai số.
Chương trình có tên “calculateGrade” có thể tính toán số học sinh tốt nghiệp.
Chúng ta sẽ nói nhiều về hàm ở phần sau.
Gợi ý hữu ích: Tốt nhất
là có một hàm main() nằm trong file .cpp mà file cpp đó cùng tên với project.
Thư viện và thư viện chuẩn của C++
Một thư viện là một tập
hợp các mã tiền xử lý (ví dụ hàm) mà đã được đóng gói lại để tái sử dụng trong
nhiều chương trình. Thư viện cung cấp một cách chung nhất để mở rộng những gì
chương trình của bạn có thể làm. Ví dụ, nếu bạn đang viết một trò chơi, bạn sẽ
có thể muốn include thư viện đồ họa hoặc âm thanh.
Ngôn ngữ cốt lõi C++
thực ra rất nhỏ và đơn giản (và bạn sẽ học được hầu hết chúng trong loạt bài hướng
dẫn này. Tuy nhiên C++ cũng có những thư viện chuẩn của nó, thư viện chuẩn C++
cung cấp thêm các hàm cho bạn sử dụng. Một trong những phần được sử dụng nhiều
nhất của thư viện chuẩn C++ là thư viện iostream, chứa đựng nhiều hàm viết cho
hiển thị và lấy dữ liệu từ console.
Hãy quan sát một chương trình mẫu
Bây giờ bạn đã hiểu một
các tóm tắt câu lệnh, hàm và thư viện là như thế nào, hãy quan sát một chương
trình “hello world” đơn giản sau:
2
3
4
5
6
7
|
#include <iostream>
int main()
{
std::cout <<
"Hello world!";
return 0;
}
|
Dòng 1 là một kiểu
câu lệnh đặc biệt gọi là chỉ thị tiền xử lí. Chỉ thị tiền xử lý thông báo với
trình biên dịch thực thi một nhiệm vụ đặc biệt. Trong trường hợp này, chúng ta
nói với trình biên dịch rằng chúng ta muốn thêm nội dung của header iostream
vào chương trình của chúng ta. Header iostream cho phép chúng ta truy nhập vào
những hàm trong thư viện iostream, nó sẽ cho phép chúng ta viết ra màn hình.
Dòng 2 không làm gì cả
và được bỏ qua bởi trình biên dịch.
Dòng 3 khai báo hàm
main(), hàm này bạn đã học ở trên, nó là bắt buộc. Mọi chương trình phải có một
hàm main().
Dòng 4 và dòng 7 nói
cho trình biên dịch biết những dòng nào là thuộc hàm main. Mọi thứ nằm giữa dấu
ngoặc đóng và ngoặc mở đều được coi là thành phần của hàm main().
Dòng 5 là câu lệnh đầu
tiên (bạn có thể nói đó là một câu lệnh bởi vì nó được kết thúc bởi dấu chấm phẩy),
và nó là câu lệnh xuất. std::cout là một đối tượng mà đại diện cho console hiển
thị. Kí tự << là một toán tử (cũng tương tự như dấu +) được gọi là toán tử
xuất. std::cout được hiểu rằng bất kì thứ gì truyền vào sẽ được in ra màn hình.
Trong trường hợp này, chúng ta đang truyền vào chuỗi “hello world”.
Dòng 6 là một kiểu
câu lệnh mới khác, được gọi là câu lệnh trả về. Khi một chương trình chạy xong,
hàm main() trả về giá trị cho hệ thống để cho thấy rằng nó có chạy thành công
hay không.
Thông thường sẽ trả về
giá trị là 0 cho hệ thống, điều này có nghĩa là “Mọi chuyện đều ổn!”. Giá trị
khác 0 thì được sử dụng để cho thấy rằng có điều gì đó không đúng, và chương
trình phải hủy bỏ. Chúng ta sẽ thảo luận về câu lệnh return chi tiết hơn khi thảo
luận về hàm.
Tất cả chương trình
chúng ta viết sẽ theo mẫu này hoặc sự thay đổi trên nó. Chúng ta sẽ thảo luận mỗi
dòng phía trên chi tiết hơn trong những phần kế tiếp.
Cú pháp và lỗi cú pháp
Trong tiếng anh, câu
được xây dựng theo những nguyên tắc ngữ pháp đặc biệt mà bạn có thể học trong một
lớp tiếng anh học trong trường. Ví dụ, câu bình thường kết thúc bởi một dấu chấm
câu. Nguyên tắc chi phối xây dựng câu như thế nào trong một ngôn ngữ gọi là cú pháp.
Nếu bạn quên dấu chấm câu và để hai câu cùng với nhau, điều này vi phạm cú pháp
của ngôn ngữ tiếng anh.
C++ cũng có cú pháp
như vậy: Nguyên tắc về làm thế nào mà chương trình phải xây dựng để được coi là
hợp lệ. Khi bạn biên dịch chương trình của bạn, trình biên dịch chịu trách nhiệm
để chắc chắn chương trình của bạn tuân theo những cú pháp cơ bản của ngôn ngữ
C++. Nếu bạn vi phạm luật, trình biên dịch sẽ thông báo khi bạn cố gắng biên dịch
chương trình của bạn, và vấn đề đó bạn gọi là một lỗi cú pháp.
Hãy xem chuyện gì xảy
ra nếu chúng ta bỏ sót dấu chấm phẩy trong chương trình dưới đây:
1
2
3
4
5
6
7
|
#include <iostream>
int main()
{
std::cout << "Hello world!"
return 0;
}
|
Visual studio sẽ xuất
hiện lỗi sau:
c:\users\apomeranz\documents\visual
studio 2013\projects\test1\test1\test1.cpp(6): error C2143: syntax error :
missing ';' before 'return'
Điều này nói với bạn
rằng bạn có một lỗi cú pháp trên dòng 6: Bạn đã quên dấu chấm phẩy trước lệnh
return. Trong trường hợp này thực ra lỗi nằm ở dòng số 5. Thông thường, trình
biên dịch sẽ in ra chính xác lỗi được phát hiện ở đâu cho bạn. Tuy nhiên, thỉnh
thoảng nó không được chú ý cho đến dòng kế tiếp.
Lỗi cú pháp là một điểm
chung khi viết một chương trình. May mắn thay, chúng thường rất dễ chỉnh sửa.
Chương trình có thể hoàn toàn được biên dịch một khi tất cả các lỗi cú pháp được
giải quyết.
Câu hỏi:
1) Sự khác nhau giữa một câu lệnh và một biểu thức
là gì?
2) Sự khác nhau giữa một hàm và một thư viện là
gì?
3) Kí tự nào mà một câu lệnh trong C++ kết thúc bởi
nó?
4) Lỗi cú pháp là gì?
Trả lời:
1) Một câu lệnh là một câu hoàn chỉnh nói với
trình biên dịch thực thi một nhiệm vụ cụ thể. Một biểu thức là một phép toán học
tính toán ra một giá trị. Biểu thức thường được sử dụng bên trong những câu lệnh.
2) Một hàm là một tập hợp các câu lệnh mà được thực
thi một cách tuần tự, thông thường được thiết kế để thực thi một công việc cụ
thể. Một thư viện là một tập hợp các hàm được đóng gói lại dùng trong nhiều
chương trình khác.
3) Dấu chấm phẩy
4) Một lỗi cú pháp là một lỗi trình biên dịch
phát hiện ra tại thời điểm biên dịch khi chương trình của bạn vi phạm nguyên tắc
ngữ pháp của ngôn ngữ C++.
nguồn: learncpp.com
Nhận xét
Đăng nhận xét