[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

Bài đăng phổ biến