Bài 5: Cấu trúc chung của chương trình C++


Hàm main

Trong một chương trình C++ có thể có nhiều hàm/thủ tục hoặc nhiều lớp. Chúng ta có thể kiểm tra hoạt động riêng lẻ của các hàm này.
Nhưng với bất kỳ một chương trình C++ thì bắt buộc phải có duy nhất chỉ một hàm main(). Hàm main() được ví như bộ não trung tâm điều khiển vì tất cả các câu lệnh trong hàm main() sẽ được chạy đầu tiên cho dù ta đặt hàm main() ở đầu hay ở cuối hay ở giữa chương trình đi chăng nữa.

Cấu trúc hàm main trong C++

Cấu trúc hàm main trong C++

  • Dòng đầu tiên của hàm int main() là dòng tiêu đề hàm. Bao gồm kiểu dữ liệu trả về của hàm, tên hàm và cặp dấu ngoặc tròn
  • Từ khoá đứng trước tên hàm là kiểu dữ liệu. Nó xác định kiểu dữ liệu mà hàm trả về là gì. Ví dụ, từ khoá int có nghĩa là hàm trả về giá trị có kiểu dữ liệu là số nguyên.
  • Cặp dấu ngoặc tròn phía sau tên hàm nơi chứa các tham số của hàm. Trong hàm main() thì danh sách này là rỗng, có nghĩa là không có dữ liệu nào được truyền vào khi hàm được chạy.
  • Cặp dấu ngoặc móc phía dưới dòng tên hàm xác định vị trí bắt đầu và kết thúc thân hàm. Trong thân hàm chứa các câu lệnh, mỗi câu lệnh được kết thúc bằng dấu chấm phẩy.
  • Mỗi một hàm thực thi một nhiệm vụ/hành động cụ thể.

Lệnh cout

Một trong những câu lệnh có tần suất xuất hiện nhiều nhất trong chương trình C++ là lệnh cout. Lệnh cout là một đối tượng xuất, được dùng để hiển thị dữ liệu trên thiết bị chuẩn (thường là màn hình máy tính).
Để hiện thị đoạn văn bản “Hello World!” ra ngoài màn hình, ta có câu lệnh với cout như sau:

cout << "Hello World!";

Xét lại chương trình đầu tiên được nhắc đến trong Bài 4: Chương trình C++ đầu tiên với Code::Blocks:

// Author: Hoang Van Tuan
// Website: timoday.edu.vn

#include <iostream>

using namespace std;

// ===chuong trinh chinh===
int main()
{
    cout << "Hello World!";

    cout << endl;
    return 0;
}
// ===dinh nghia ham===

Xét dòng lệnh #include <iostream>

Dòng lệnh này là một tiền xử lý, bắt đầu bằng ký tự #, được sử dụng để khai báo thư viện của chương trình, ví dụ như thư viện iostream. iostream là một thư viện tiêu chuẩn gồm hai lớp: istreamostream. Hai lớp này cung cấp các khai báo dữ liệu và phương thức nhập, xuất dữ liệu. Trong chương trình trên, lệnh cout được tạo ra từ lớp ostream. Các tiền chỉ thị không kết thúc bằng dấu chấm phẩy do đây là các lệnh ảo.

Xét dòng lệnh using namespace std;

Một namespace trong C++ được sử dụng như là thông tin bổ sung để trình biên dịch phân biệt các hàm, lớp, biến số, … cùng tên có sẵn trong các thư viện khác nhau. Vì iostream được chứa trong một namespace có tên là std (standard library), trình biên dịch sẽ tự động sử dụng câu lệnh cout của dòng iostream từ namespace khi nó được gọi.

Chú thích

Chú thích là những lời giải thích, chú giải, giải thích ý nghĩa cho các lệnh hoặc đoạn chương, hay đơn giản là ghi chú thông tin về chương trình. Chú thích không phải là câu lệnh nên nó sẽ không được trình biên dịch biên dịch chúng. C++ hỗ trợ hai loại chú thích.

  • Chú thích trên một dòng: Chú thích trên một dòng được bắt đầu bằng hai dấu gạch chéo (//). Ký hiệu // được xác định như điểm bắt đầu của chú thích. Hiệu lực chú thích bởi ký hiệu // chỉ có tác dụng trên một dòng.
  • Chú thích trên nhiều dòng: Chú thích trên nhiều dòng được bắt đầu bởi ký hiệu /* và kết thúc bởi ký hiệu */. Khi sử dụng cặp ký hiệu này, ta viết được chú thích trên nhiều dòng, miễn sao đảm bảo nội dung cần chú thích nằm giữa cặp ký tự này.

Chú ý: các chú thích không được phép lồng nhau.
Ví dụ về chú thích trên nhiều dòng:

// Author: Hoang Van Tuan
// Website: timoday.edu.vn

#include <iostream>

using namespace std;

// ===Khai báo hàm===
/*
* Hàm tính đệ quy giai thừa của một số nguyên
* @param Nhận vào là một số nguyên dương
* Returns Giá trị trả về là một số nguyên
*/
int fact(int n);

// ===Chương trình chính===
int main()
{
    int z = fact(5);
    cout<<z;

    return 0;
}
// ===Xây dựng hàm===
int fact(int n)
{
    if(n==1)
    {
        return 1;
    }
    return n*fact(n-1);
}
//---------------------------

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese