hoc-lap-trinh-11

C++ là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong nhiều lĩnh vực từ phát triển phần mềm hệ thống, trò chơi, đến các ứng dụng doanh nghiệp. Dưới đây là tổng hợp các kiến thức cơ bản về C++ dành cho người mới bắt đầu kèm theo ví dụ minh họa ngắn gọn và dễ hiểu.

1. Giới thiệu về C++

1.1 Lịch sử và đặc điểm của C++

C++ được phát triển bởi Bjarne Stroustrup vào đầu những năm 1980 như một phần mở rộng của ngôn ngữ C. Đặc điểm nổi bật của C++ bao gồm:

  • Hỗ trợ lập trình hướng đối tượng: Giúp tổ chức mã nguồn và quản lý các đối tượng trong chương trình.
  • Đa dạng tính năng: Kết hợp lập trình hướng đối tượng với lập trình thủ tục và lập trình tổng quát.
  • Hiệu suất cao: Cho phép tối ưu hóa mã nguồn để đạt được hiệu suất tốt nhất.

1.2 Cấu trúc cơ bản của một chương trình C++

Một chương trình C++ đơn giản thường bao gồm các phần sau:

  • Thư viện tiêu chuẩn: Sử dụng các thư viện để hỗ trợ các chức năng cơ bản.
  • Hàm main(): Điểm bắt đầu của chương trình.

Dưới đây là ví dụ về một chương trình C++ đơn giản:

#include <iostream>  // Thư viện cho việc nhập xuất

int main() {
    std::cout << "Hello, World!" << std::endl;  // In ra màn hình
    return 0;  // Trả về giá trị 0, báo hiệu chương trình kết thúc thành công
}

2. Biến và kiểu dữ liệu

2.1 Khai báo biến

Trong C++, biến là các vùng nhớ được đặt tên để lưu trữ dữ liệu. Cú pháp khai báo biến:

int x;  // Khai báo biến x kiểu số nguyên
x = 5;  // Gán giá trị 5 cho x

2.2 Các kiểu dữ liệu cơ bản

C++ hỗ trợ nhiều kiểu dữ liệu khác nhau:

  • int: Số nguyên (ví dụ: 1, 2, 3)
  • float: Số thực chính xác đơn (ví dụ: 3.14)
  • double: Số thực chính xác kép (ví dụ: 3.14159)
  • char: Ký tự đơn (ví dụ: ‘a’, ‘b’)
  • bool: Giá trị logic (true hoặc false)

Ví dụ:

int a = 10;
float b = 5.5;
double c = 9.99;
char d = 'A';
bool e = true;

3. Toán tử và biểu thức

3.1 Toán tử số học

C++ cung cấp các toán tử số học cơ bản:

  • + (cộng)
  • – (trừ)
  • * (nhân)
  • / (chia)
  • % (chia lấy dư)

Ví dụ:

int x = 10;
int y = 3;
int sum = x + y;  // 13
int diff = x - y; // 7
int product = x * y; // 30
int quotient = x / y; // 3
int remainder = x % y; // 1

3.2 Toán tử quan hệ và logic

Toán tử quan hệ so sánh hai giá trị và trả về kết quả dạng boolean:

  • == (bằng)
  • != (không bằng)
  • < (nhỏ hơn)
  • > (lớn hơn)
  • <= (nhỏ hơn hoặc bằng)
  • >= (lớn hơn hoặc bằng)

Toán tử logic dùng để kết hợp các biểu thức logic:

  • && (và)
  • || (hoặc)
  • ! (phủ định)

Ví dụ:

bool result1 = (x > y);  // true
bool result2 = (x < y);  // false
bool result3 = (x == y); // false
bool result4 = (x != y); // true
bool result5 = (x > 5 && y < 5); // true
bool result6 = (x > 5 || y < 2); // true

4. Cấu trúc điều khiển

4.1 Câu lệnh điều kiện if-else

Câu lệnh if-else được sử dụng để thực hiện các thao tác khác nhau dựa trên điều kiện.

if (x > y) {
    std::cout << "x lớn hơn y" << std::endl;
} else {
    std::cout << "x không lớn hơn y" << std::endl;
}

4.2 Vòng lặp for

Vòng lặp for được sử dụng để lặp lại một đoạn mã nhiều lần.

for (int i = 0; i < 5; i++) {
    std::cout << "i = " << i << std::endl;
}

4.3 Vòng lặp while

Vòng lặp while tiếp tục lặp lại đoạn mã cho đến khi điều kiện sai.

int i = 0;
while (i < 5) {
    std::cout << "i = " << i << std::endl;
    i++;
}

5. Hàm

5.1 Khai báo và định nghĩa hàm

Hàm là một khối mã có thể tái sử dụng, được xác định bởi tên hàm, kiểu trả về và các tham số.

int sum(int a, int b) {
    return a + b;
}

int main() {
    int result = sum(3, 4);
    std::cout << "Sum: " << result << std::endl;  // In ra Sum: 7
    return 0;
}

5.2 Hàm không trả về giá trị (hàm void)

Hàm không trả về giá trị có kiểu trả về là void.

void printHello() {
    std::cout << "Hello, World!" << std::endl;
}

int main() {
    printHello();
    return 0;
}
void printHello() {
    std::cout << "Hello, World!" << std::endl;
}

int main() {
    printHello();
    return 0;
}

6. Mảng

6.1 Khai báo và khởi tạo mảng

Mảng là một tập hợp các phần tử có cùng kiểu dữ liệu.

int arr[5] = {1, 2, 3, 4, 5};

for (int i = 0; i < 5; i++) {
    std::cout << "arr[" << i << "] = " << arr[i] << std::endl;
}

6.2 Mảng đa chiều

C++ cũng hỗ trợ mảng đa chiều, ví dụ mảng hai chiều.

int matrix[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << "matrix[" << i << "][" << j << "] = " << matrix[i][j] << std::endl;
    }
}

7. Lập trình hướng đối tượng

7.1 Khái niệm cơ bản

Lập trình hướng đối tượng là một phương pháp tổ chức mã nguồn bằng cách sử dụng các đối tượng. Một đối tượng là một thực thể có trạng thái (dữ liệu) và hành vi (phương thức).

7.2 Lớp và đối tượng

Lớp là một bản thiết kế cho các đối tượng. Dưới đây là ví dụ về khai báo lớp và tạo đối tượng:

class Person {
public:
    std::string name;
    int age;

    void introduce() {
        std::cout << "Hello, my name is " << name << " and I am " << age << " years old." << std::endl;
    }
};

int main() {
    Person person;
    person.name = "John";
    person.age = 30;
    person.introduce();  // In ra: Hello, my name is John and I am 30 years old.
    return 0;
}

8. Kết luận

C++ là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, phù hợp cho cả người mới bắt đầu và các lập trình viên có kinh nghiệm. Bằng cách nắm vững các khái niệm cơ bản như biến, kiểu dữ liệu, toán tử, cấu trúc điều khiển, hàm, mảng, và lập trình hướng đối tượng, bạn có thể bắt đầu xây dựng các ứng dụng C++ từ đơn giản đến phức tạp. Hãy thực hành thường xuyên và không ngừng học hỏi để nâng cao kỹ năng lập trình của mình.

By hoadv