Bỏ qua

Banner Nhập Môn C++

Buổi 1: Nhập Môn C++

I. Lý Thuyết

1. C++ là gì?

C++ là ngôn ngữ lập trình đa năng, biên dịch được phát triển bởi Bjarne Stroustrup vào những năm 1980, dựa trên ngôn ngữ C. C++ được sử dụng rộng rãi trong:

  • Lập trình thi đấu (Competitive Programming)
  • Phát triển phần mềm hệ thống, game
  • Ứng dụng yêu cầu hiệu năng cao

2. Cấu Trúc Một Chương Trình C++ Đơn Giản

#include <iostream>   // (1) Thư viện chuẩn để dùng cout, cin
using namespace std;  // (2) Sử dụng không gian tên std

int main() {          // (3) Hàm chính – điểm bắt đầu của chương trình
    cout << "Hello, World!" << endl;  // (4) In ra màn hình
    return 0;         // (5) Kết thúc chương trình, trả về 0 = thành công
}

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

Dòng Ý nghĩa
#include <iostream> Nạp thư viện nhập/xuất chuẩn
using namespace std; Dùng không gian tên std để không phải viết std::cout
int main() Hàm main – mọi chương trình C++ đều bắt đầu từ đây
cout << ... In dữ liệu ra màn hình
endl Xuống dòng (tương đương \n)
return 0; Kết thúc hàm main, trả về 0 báo hiệu thành công

3. Cách In Ra Màn Hình với cout

cout << "Nội dung cần in";      // In không xuống dòng
cout << "Dòng 1" << endl;       // In và xuống dòng
cout << "Dòng 2" << "\n";       // In và xuống dòng (cách khác)
cout << "Tên: " << "An" << endl; // Nối nhiều giá trị bằng <<

4. Comment (Ghi chú) Trong Code

// Đây là comment một dòng

/*
   Đây là comment
   nhiều dòng
*/

int main() {
    // Dòng này sẽ không được thực thi
    cout << "Hello!" << endl;  // comment cuối dòng
    return 0;
}

5. Công Cụ Cần Cài Đặt

Công cụ Mục đích Link
VS Code Soạn thảo code code.visualstudio.com
MinGW-w64 (Windows) Trình biên dịch C++ (g++) winlibs.com
Xcode CLT (macOS) Trình biên dịch C++ (g++/clang++) Cài qua Terminal
Extension C/C++ Hỗ trợ C++ trong VS Code Cài trong VS Code Extensions

Quy trình biên dịch C++


Bước 1: Cài VS Code

  1. Truy cập code.visualstudio.com → tải bản Windows
  2. Chạy file .exe vừa tải → bấm NextInstall
  3. Tick chọn "Add to PATH" trong quá trình cài

Bước 2: Cài MinGW-w64 (trình biên dịch C++)

  1. Truy cập winlibs.com → tải bản GCC for Windows (UCRT runtime, 64-bit, Zip)
  2. Giải nén file .zip → đổi tên thư mục thành mingw64
  3. Di chuyển thư mục mingw64 vào ổ C:\ → đường dẫn: C:\mingw64
  4. Thêm vào PATH:
    • Nhấn Windows + S → tìm "Edit the system environment variables"
    • Bấm Environment Variables → chọn PathEdit
    • Bấm New → nhập C:\mingw64\binOK

Bước 3: Cài Extension C/C++ trong VS Code

  1. Mở VS Code → nhấn Ctrl + Shift + X
  2. Tìm "C/C++" (nhà xuất bản: Microsoft) → Install
  3. Tìm tiếp "Code Runner"Install (để chạy code nhanh bằng nút ▶)

Bước 1: Cài Xcode Command Line Tools (trình biên dịch C++)

Mở Terminal (Spotlight → gõ Terminal) và chạy lệnh:

xcode-select --install

Một hộp thoại sẽ xuất hiện → bấm Install → chờ khoảng 5–10 phút.

Bước 2: Cài VS Code

  1. Truy cập code.visualstudio.com → tải bản macOS
  2. Giải nén file .zip → kéo Visual Studio Code.app vào thư mục Applications
  3. Mở VS Code → nhấn Cmd + Shift + P → gõ shell command → chọn "Install 'code' command in PATH"

Bước 3: Cài Extension C/C++ trong VS Code

  1. Mở VS Code → nhấn Cmd + Shift + X
  2. Tìm "C/C++" (nhà xuất bản: Microsoft) → Install
  3. Tìm tiếp "Code Runner"Install

6. Kiểm Tra Cài Đặt

Sau khi cài xong, mở Terminal (macOS) hoặc Command Prompt / PowerShell (Windows) và chạy các lệnh sau:

g++ --version

Kết quả mong đợi (ví dụ):

g++ (MinGW-W64 x86_64) 13.2.0

g++ --version

Kết quả mong đợi (ví dụ):

Apple clang version 15.0.0 (clang-1500.0.29.3)

Nếu Terminal báo lỗi "command not found": kiểm tra lại bước thêm PATH (Windows) hoặc cài lại Xcode CLT (macOS).

Kiểm tra bằng chương trình thực tế:

  1. Tạo file hello.cpp với nội dung:
#include <iostream>
using namespace std;
int main() {
    cout << "Cai dat thanh cong!" << endl;
    return 0;
}
  1. Biên dịch và chạy:
g++ -o hello hello.cpp
./hello          # macOS
hello.exe        # Windows
  1. Nếu màn hình hiện Cai dat thanh cong!cài đặt thành công!

Cách biên dịch và chạy chương trình (tổng quát):

g++ -o ten_chuong_trinh ten_file.cpp    # Biên dịch
./ten_chuong_trinh                       # Chạy (macOS)
ten_chuong_trinh.exe                     # Chạy (Windows)

II. Ví Dụ Minh Họa

Ví dụ 1: Chương trình Hello World

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, World!" << endl;
    return 0;
}
✅ Kết quả
Hello, World!

Ví dụ 2: In thông tin cá nhân

#include <iostream>
using namespace std;

int main() {
    cout << "=== THONG TIN HOC SINH ===" << endl;
    cout << "Ten: Nguyen Van An" << endl;
    cout << "Lop: 10A1" << endl;
    cout << "Truong: THPT Nguyen Du" << endl;
    return 0;
}
✅ Kết quả
=== THONG TIN HOC SINH ===
Ten: Nguyen Van An
Lop: 10A1
Truong: THPT Nguyen Du

Ví dụ 3: In nhiều dòng với ký tự đặc biệt

#include <iostream>
using namespace std;

int main() {
    cout << "Chao mung den voi C++!" << endl;
    cout << "Day la dong thu 2" << endl;
    cout << "Tab:\tSau tab" << endl;   // \t = tab
    cout << "Ngoac kep: \"Hello\"" << endl; // \" = dấu "
    return 0;
}
✅ Kết quả
Chao mung den voi C++!
Day la dong thu 2
Tab:    Sau tab
Ngoac kep: "Hello"

III. Bài Tập Thực Hành Tại Lớp

Bài 1: In tên của bạn

Đề bài: Viết chương trình in ra tên đầy đủ của bạn.

Phân tích đề

Yêu cầu: Dùng cout để in một chuỗi ký tự ra màn hình.

Output mẫu:

Ho va ten: Nguyen Van An

Gợi ý code
#include <iostream>
using namespace std;

int main() {
    cout << "Ho va ten: Nguyen Van An" << endl;
    return 0;
}

Bài 2: In thông tin học sinh

Đề bài: Viết chương trình in ra thông tin cá nhân gồm: họ tên, lớp, trường, môn học yêu thích.

Phân tích đề

Yêu cầu: In nhiều dòng thông tin, mỗi dòng một trường thông tin.

Output mẫu:

=== THONG TIN ===
Ho ten : Tran Thi Bich
Lop    : 9A2
Truong : THCS Le Loi
Mon yeu thich: Toan

Gợi ý code
#include <iostream>
using namespace std;

int main() {
    cout << "=== THONG TIN ===" << endl;
    cout << "Ho ten : Tran Thi Bich" << endl;
    cout << "Lop    : 9A2" << endl;
    cout << "Truong : THCS Le Loi" << endl;
    cout << "Mon yeu thich: Toan" << endl;
    return 0;
}

Bài 3: Vẽ khung bằng dấu *

Đề bài: Viết chương trình in ra hình chữ nhật bằng dấu * như sau:

*********
*       *
*       *
*********
Phân tích đề

Yêu cầu: Dùng nhiều lệnh cout để vẽ từng dòng của hình chữ nhật.

Gợi ý code
#include <iostream>
using namespace std;

int main() {
    cout << "*********" << endl;
    cout << "*       *" << endl;
    cout << "*       *" << endl;
    cout << "*********" << endl;
    return 0;
}

Bài 4: In bảng thời khóa biểu

Đề bài: Viết chương trình in ra thời khóa biểu của một ngày học (tự thiết kế theo lịch thực tế của bạn).

Phân tích đề

Các bước thực hiện:

  1. Xác định tên ngày và số tiết cần in
  2. In dòng tiêu đề dạng ===== THOI KHOA BIEU - THU N =====
  3. In từng tiết học theo định dạng: Tiet X-Y: Ten mon
  4. In dòng kẻ cuối để đóng khung

Output mẫu:

===== THOI KHOA BIEU - THU 2 =====
Tiet 1-2: Toan
Tiet 3-4: Van
Tiet 5  : The duc
===================================

Gợi ý code
#include <iostream>
using namespace std;

int main() {
    cout << "===== THOI KHOA BIEU - THU 2 =====" << endl;
    cout << "Tiet 1-2: Toan" << endl;
    cout << "Tiet 3-4: Van" << endl;
    cout << "Tiet 5  : The duc" << endl;
    cout << "===================================" << endl;
    return 0;
}

IV. Bài Tập Về Nhà

Bài 1: Thiệp chào mừng

Đề bài: Viết chương trình in ra thiệp chào mừng sinh nhật cho một người bạn. Thiệp phải có khung trang trí bằng dấu * hoặc -, tên người nhận và lời chúc.

Phân tích đề

Các bước thực hiện:

  1. Xác định chiều rộng của thiệp (ví dụ 34 ký tự)
  2. In dòng đầu và cuối là chuỗi * lặp lại
  3. Mỗi dòng nội dung bắt đầu và kết thúc bằng *, giữa là khoảng trắng và nội dung
  4. Căn chỉnh nội dung sao cho đều và đẹp

Output mẫu:

**********************************
*  Chuc mung sinh nhat!          *
*  Gui: Nguyen Van An            *
*  Chuc ban luon vui ve, manh    *
*  khoe va hoc gioi!             *
**********************************


Bài 2: Bảng cửu chương dạng tĩnh

Đề bài: Viết chương trình in ra bảng cửu chương của số 2 (từ 2×1 đến 2×10) chỉ dùng cout, không dùng vòng lặp.

Phân tích đề

Các bước thực hiện:

  1. Viết 10 lệnh cout tương ứng với 10 dòng kết quả
  2. Mỗi dòng theo định dạng: 2 x N = KQ
  3. Tự tính nhẩm kết quả từng dòng (hoặc để C++ tính: cout << 2*1)

Output mẫu:

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20


Bài 3: Menu nhà hàng

Đề bài: Viết chương trình in ra menu của một nhà hàng với ít nhất 5 món ăn, có tên món và giá tiền. Thiết kế menu trông đẹp và có tiêu đề.

Phân tích đề

Các bước thực hiện:

  1. In dòng trang trí đầu (chuỗi = hoặc -)
  2. In tên nhà hàng ở giữa (căn chỉnh bằng khoảng trắng)
  3. In dòng trang trí thứ hai
  4. In từng món ăn theo định dạng: STT. Ten mon GIA VND
  5. In dòng trang trí cuối để đóng khung

Output mẫu:

============================
     NHA HANG HAPPY MEAL
============================
1. Com suon       25,000 VND
2. Pho bo         35,000 VND
3. Bun bo         30,000 VND
4. Mi quang       28,000 VND
5. Banh mi        15,000 VND
============================


Bài 4: Giới thiệu bản thân bằng tiếng Anh

Đề bài: Viết chương trình in ra đoạn giới thiệu bản thân bằng tiếng Anh, gồm ít nhất 5 thông tin (tên, tuổi, trường, sở thích, ước mơ).

Phân tích đề

Các bước thực hiện:

  1. Lên kế hoạch trước: viết ra 5 thông tin cần in
  2. Mỗi thông tin dùng một lệnh cout riêng
  3. Có thể thêm dòng tiêu đề và đường kẻ trang trí để trông chuyên nghiệp

Output mẫu:

=== ABOUT ME ===
Name   : Nguyen Van An
Age    : 15
School : Le Loi High School
Hobby  : Reading and coding
Dream  : To become a software engineer
================


V. Ghi Chú Quan Trọng

Lỗi hay gặp

Lỗi Nguyên nhân Cách sửa
'cout' was not declared Thiếu #include <iostream> Thêm dòng #include <iostream>
expected ';' Quên dấu ; cuối câu lệnh Thêm ; sau mỗi câu lệnh
undefined reference to 'main' Thiếu hàm main Thêm hàm int main() { }
Chương trình biên dịch được nhưng không chạy Thiếu return 0; hoặc lỗi logic Kiểm tra lại toàn bộ code

Quy tắc viết code chuẩn

  • Mỗi câu lệnh kết thúc bằng dấu chấm phẩy ;
  • Code bên trong main() phải được thụt đầu dòng (indent) 4 dấu cách hoặc 1 tab
  • Tên file nên đặt không dấu, không khoảng trắng (ví dụ: bai1.cpp)
  • Dùng comment để giải thích những đoạn code phức tạp

Ký tự đặc biệt trong chuỗi

Ký tự Ý nghĩa
\n Xuống dòng
\t Tab (căn lề)
\\ In dấu \
\" In dấu ngoặc kép "

VI. Ôn Tập Trắc Nghiệm

Kiểm tra kiến thức buổi học qua 15 câu trắc nghiệm:

Làm bài trắc nghiệm Buổi 1