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ĩa | Ví dụ |
|---|---|---|
| int | Số nguyên | 5 |
| float | Số thực | 3.14 |
| double | Số thực độ chính xác cao | 3.141592 |
| char | Ký tự | ‘A’ |
| bool | Đúng/Sai | true |
| string | Chuỗ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
18Output
Ten: Tan
Tuoi: 18CHƯƠ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 102. 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 + ... + nVí dụ:
Input
5Output
15CHƯƠ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ả:
8Bài tập
Viết hàm:
- Tính giai thừa n!
- Kiểm tra số nguyên tố.
- 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ỗiBài tập
Nhập một chuỗi.
- Đếm số ký tự.
- Đếm số chữ cái.
- Đếm số từ.
- Đả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:
privateInheritance (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:
- Thêm sinh viên
- Xóa sinh viên
- Sửa thông tin
- Tìm kiếm
- Sắp xếp theo điểm
- 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.