Thẻ: 10 CHƯƠNG HƯỚNG DẪN HỌC LẬP TRÌNH C++ TỪ CƠ BẢN ĐẾN NÂNG CAO

10 CHƯƠNG HƯỚNG DẪN HỌC LẬP TRÌNH C++ TỪ CƠ BẢN ĐẾN NÂNG CAO

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

C++ là ngôn ngữ lập trình được phát triển bởi Bjarne Stroustrup vào năm 1985 dựa trên ngôn ngữ C. Đây là một trong những ngôn ngữ mạnh mẽ và phổ biến nhất hiện nay, được sử dụng để phát triển:

  • Phần mềm máy tính
  • Game
  • Hệ điều hành
  • Trí tuệ nhân tạo (AI)
  • Ứng dụng tài chính
  • Phần mềm nhúng

Ưu điểm của C++

  • Tốc độ xử lý nhanh.
  • Hỗ trợ lập trình hướng đối tượng (OOP).
  • Có thư viện phong phú.
  • Được sử dụng rộng rãi trong công nghiệp.

CHƯƠNG 1: LÀM QUEN VỚI C++

1. Cấu trúc chương trình C++

Ví dụ:

#include <iostream>
using namespace std;

int main() {
    cout << "Xin chao C++";
    return 0;
}

Giải thích

  • #include <iostream>: Thư viện nhập xuất.
  • using namespace std;: Sử dụng không gian tên chuẩn.
  • main(): Hàm chính của chương trình.
  • cout: Xuất dữ liệu ra màn hình.
  • return 0;: Kết thúc chương trình.

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

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

KiểuÝ nghĩaVí dụ
intSố nguyên5
floatSố thực3.14
doubleSố thực độ chính xác cao3.141592
charKý tự‘A’
boolĐúng/Saitrue
stringChuỗi ký tự“Hello”

Ví dụ

int age = 18;
float diem = 8.5;
char grade = 'A';
string name = "Tan";

Bài tập

Bài 1

Nhập tên và tuổi của một người rồi xuất ra màn hình.

Ví dụ

Input

Tan
18

Output

Ten: Tan
Tuoi: 18

CHƯƠNG 2: CÂU LỆNH ĐIỀU KIỆN

1. Câu lệnh if

if (dieu_kien)
{
    // câu lệnh
}

Ví dụ:

int a;

cin >> a;

if (a > 0)
{
    cout << "So duong";
}

2. Câu lệnh if…else

if(a % 2 == 0)
{
    cout << "So chan";
}
else
{
    cout << "So le";
}

3. Câu lệnh switch

switch(n)
{
    case 1:
        cout<<"Mot";
        break;

    case 2:
        cout<<"Hai";
        break;

    default:
        cout<<"Khong hop le";
}

Bài tập

Bài 2

Nhập số nguyên n.

  • Nếu n > 0 in “So duong”
  • Nếu n < 0 in “So am”
  • Nếu n = 0 in “So 0”

CHƯƠNG 3: VÒNG LẶP

1. Vòng lặp for

for(int i=1;i<=10;i++)
{
    cout<<i<<" ";
}

Kết quả:

1 2 3 4 5 6 7 8 9 10

2. Vòng lặp while

int i=1;

while(i<=5)
{
    cout<<i<<" ";
    i++;
}

Bài tập

Bài 3

Tính tổng:

S = 1 + 2 + 3 + ... + n

Ví dụ:

Input

5

Output

15

CHƯƠNG 4: HÀM (FUNCTION)

Hàm giúp chia chương trình thành các phần nhỏ.

Ví dụ:

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

int main()
{
    cout<<tong(3,5);

    return 0;
}

Kết quả:

8

Bài tập

Viết hàm:

  1. Tính giai thừa n!
  2. Kiểm tra số nguyên tố.
  3. Tính UCLN của hai số.

CHƯƠNG 5: MẢNG (ARRAY)

Khai báo

int a[100];

Nhập mảng

int n;

cin>>n;

for(int i=0;i<n;i++)
{
    cin>>a[i];
}

Xuất mảng

for(int i=0;i<n;i++)
{
    cout<<a[i]<<" ";
}

Bài tập

Cho mảng n số nguyên.

Hãy:

  • Tính tổng các phần tử.
  • Tìm số lớn nhất.
  • Tìm số nhỏ nhất.
  • Sắp xếp tăng dần.

CHƯƠNG 6: CHUỖI (STRING)

Ví dụ:

string s;

getline(cin,s);

cout<<s;

Một số hàm thường dùng

s.length();      // độ dài
s.substr(0,3);   // cắt chuỗi
s.find("abc");   // tìm chuỗi

Bài tập

Nhập một chuỗi.

  1. Đếm số ký tự.
  2. Đếm số chữ cái.
  3. Đếm số từ.
  4. Đảo ngược chuỗi.

CHƯƠNG 7: CON TRỎ

Con trỏ là biến lưu địa chỉ của biến khác.

Ví dụ:

int a=10;

int *p=&a;

cout<<a<<endl;
cout<<&a<<endl;
cout<<p<<endl;
cout<<*p<<endl;

CHƯƠNG 8: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP)

1. Class

class Student
{
public:

    string name;
    int age;

    void display()
    {
        cout<<name<<" "<<age;
    }
};

2. Tạo đối tượng

Student s;

s.name="Tan";

s.age=18;

s.display();

Các khái niệm OOP quan trọng

Encapsulation (Đóng gói)

Ẩn dữ liệu bằng từ khóa:

private

Inheritance (Kế thừa)

class Animal
{
};

class Dog : public Animal
{
};

Polymorphism (Đa hình)

Cho phép cùng tên hàm nhưng hoạt động khác nhau.

Abstraction (Trừu tượng)

Ẩn chi tiết cài đặt và chỉ cung cấp chức năng cần thiết.


CHƯƠNG 9: THƯ VIỆN STL

STL (Standard Template Library) là thư viện cực kỳ quan trọng trong C++.

Vector

vector<int> a;

a.push_back(10);

a.push_back(20);

cout<<a.size();

Stack

stack<int> st;

st.push(1);

st.push(2);

st.pop();

Queue

queue<int> q;

q.push(5);

q.push(10);

q.pop();

Map

map<string,int> mp;

mp["Tan"]=18;

cout<<mp["Tan"];

CHƯƠNG 10: THUẬT TOÁN NÂNG CAO

Sau khi học xong C++ cơ bản, bạn nên học:

1. Đệ quy (Recursion)

Ví dụ tính giai thừa:

int gt(int n)
{
    if(n==0)
        return 1;

    return n*gt(n-1);
}

2. Sắp xếp

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Quick Sort

3. Tìm kiếm

  • Linear Search
  • Binary Search

4. Quy hoạch động (Dynamic Programming)

Ví dụ:

  • Dãy Fibonacci
  • Balo 0/1
  • Đường đi ngắn nhất

BÀI TẬP TỔNG HỢP

Bài 1

Nhập n.

Tính:

S = 1² + 2² + 3² + ... + n²

Bài 2

Nhập mảng n số nguyên.

In ra:

  • Số lớn nhất
  • Số nhỏ nhất
  • Trung bình cộng
  • Mảng sau khi sắp xếp

Bài 3

Viết chương trình quản lý sinh viên gồm:

  • Mã sinh viên
  • Họ tên
  • Tuổi
  • Điểm trung bình

Chức năng:

  1. Thêm sinh viên
  2. Xóa sinh viên
  3. Sửa thông tin
  4. Tìm kiếm
  5. Sắp xếp theo điểm
  6. Lưu dữ liệu ra file

LỘ TRÌNH HỌC C++ ĐỀ XUẤT

Tuần 1

  • Biến
  • Kiểu dữ liệu
  • if, switch
  • for, while

Tuần 2

  • Hàm
  • Mảng
  • Chuỗi
  • Con trỏ

Tuần 3

  • Struct
  • Class
  • OOP

Tuần 4

  • Vector
  • Stack
  • Queue
  • Map
  • Thuật toán cơ bản

Tuần 5 trở đi

  • Đệ quy
  • Thuật toán nâng cao
  • Quy hoạch động
  • Giải bài tập trên các trang OJ như Codeforces, LeetCode, VNOI.

Kết luận

C++ là ngôn ngữ mạnh mẽ, phù hợp cho cả người mới bắt đầu và lập trình viên chuyên nghiệp. Hãy học theo thứ tự:

Cơ bản → Hàm → Mảng → Chuỗi → Con trỏ → OOP → STL → Thuật toán → Dự án thực tế

Kiên trì luyện tập mỗi ngày sẽ giúp bạn thành thạo C++ và có nền tảng tốt để học các lĩnh vực như AI, lập trình game, phát triển phần mềm và thi lập trình cạnh tranh.