
Buổi 2: Biến, Hằng và Kiểu Dữ Liệu¶
I. Lý Thuyết¶
1. Biến (Variable) là gì?¶
Biến là một ô nhớ trong máy tính, dùng để lưu trữ một giá trị có thể thay đổi trong quá trình chương trình chạy.
Hãy tưởng tượng biến như một chiếc hộp có nhãn tên:
- Nhãn tên → tên biến (ví dụ:
tuoi,diem) - Bên trong hộp → giá trị (ví dụ:
15,9.5) - Kích thước hộp → kiểu dữ liệu (ví dụ:
int,float)
Cú pháp khai báo:
KieuDuLieu tenBien; // Khai báo chưa có giá trị
KieuDuLieu tenBien = giaTri; // Khai báo và gán giá trị ngay
Ví dụ:
2. Các Kiểu Dữ Liệu Cơ Bản¶

| Kiểu | Ý nghĩa | Ví dụ giá trị | Bộ nhớ | Dùng khi nào |
|---|---|---|---|---|
int |
Số nguyên | 0, 15, -100 |
4 bytes | Tuổi, đếm, chỉ số |
float |
Số thực | 9.5f, 3.14f |
4 bytes | Điểm, giá tiền (độ chính xác thấp) |
double |
Số thực (cao) | 3.14159265 |
8 bytes | Tính toán khoa học |
char |
Ký tự đơn | 'A', 'z', '3' |
1 byte | Lưu 1 ký tự, xếp loại |
bool |
Đúng/Sai | true, false |
1 byte | Điều kiện logic |
Lưu ý: Giá trị
floatcần hậu tốf(ví dụ:3.14f). Không cóf→ C++ hiểu làdouble.
3. Hằng Số (Constant)¶
Hằng số là giá trị không thay đổi trong suốt chương trình. Dùng từ khóa const:
Khi nào dùng const?
- Giá trị mang ý nghĩa cố định (PI, tốc độ ánh sáng, số ngày trong tuần...)
- Ngăn vô tình thay đổi giá trị quan trọng
Quy ước: Tên hằng số viết HOA_TOÀN_BỘ và dùng
_giữa các từ.
4. Quy Tắc Đặt Tên Biến¶
| Quy tắc | Đúng | Sai |
|---|---|---|
Bắt đầu bằng chữ cái hoặc _ |
tuoi, _dem |
1tuoi, @diem |
Chỉ dùng chữ, số, dấu _ |
diem_toan |
diem-toan, học sinh |
| Phân biệt HOA/thường | tuoi ≠ Tuoi ≠ TUOI |
|
| Không trùng từ khóa C++ | giaoDien |
int, return, main |
| Đặt tên có ý nghĩa | diemTrungBinh |
x, abc, a1 |
Quy ước camelCase:
int tuoiHocSinh = 15; // chữ đầu thường, các từ tiếp theo viết hoa
float diemTrungBinh = 8.5f;
bool daHoanThanh = false;
5. In Giá Trị Biến Bằng cout¶
int tuoi = 15;
float diem = 9.5f;
char loai = 'A';
cout << tuoi << endl; // In: 15
cout << "Tuoi: " << tuoi << endl; // In: Tuoi: 15
cout << "Diem: " << diem << ", Loai: " << loai << endl;
II. Ví Dụ Minh Họa¶
Ví dụ 1: Khai báo và in các loại biến¶
#include <iostream>
using namespace std;
int main() {
int tuoi = 15;
float diem = 8.75f;
double soPI = 3.14159265;
char xepLoai = 'B';
bool datYeuCau = true;
cout << "Tuoi : " << tuoi << endl;
cout << "Diem : " << diem << endl;
cout << "So PI : " << soPI << endl;
cout << "Xep loai : " << xepLoai << endl;
cout << "Dat yeu cau: " << datYeuCau << endl;
return 0;
}
✅ Kết quả
Lưu ý:
boolkhi in ra sẽ hiện1(true) hoặc0(false).
Ví dụ 2: Sử dụng hằng số const¶
#include <iostream>
using namespace std;
int main() {
const float PI = 3.14159f;
float banKinh = 5.0f;
float chuVi = 2 * PI * banKinh;
float dienTich = PI * banKinh * banKinh;
cout << "Ban kinh : " << banKinh << endl;
cout << "Chu vi : " << chuVi << endl;
cout << "Dien tich: " << dienTich << endl;
return 0;
}
Ví dụ 3: Thay đổi giá trị biến¶
#include <iostream>
using namespace std;
int main() {
int diem = 7;
cout << "Diem ban dau : " << diem << endl; // 7
diem = 9;
cout << "Diem sau khi sua: " << diem << endl; // 9
diem = diem + 1;
cout << "Diem sau khi +1 : " << diem << endl; // 10
return 0;
}
III. Bài Tập Thực Hành Tại Lớp¶
Bài 1: Thẻ thông tin học sinh¶
Đề bài: Dùng biến để lưu thông tin cá nhân (tuổi int, điểm float, xếp loại char) rồi in ra màn hình.
Phân tích đề
Yêu cầu:
- int tuoi cho tuổi
- float diemTB cho điểm trung bình
- char xepLoai cho xếp loại
Output mẫu:
Gợi ý code
#include <iostream>
using namespace std;
int main() {
int tuoi = 15;
float diemTB = 8.5f;
char xepLoai = 'B';
cout << "=== THE HOC SINH ===" << endl;
cout << "Ho ten : Nguyen Van An" << endl;
cout << "Tuoi : " << tuoi << endl;
cout << "Diem TB : " << diemTB << endl;
cout << "Xep loai: " << xepLoai << endl;
cout << "====================" << endl;
return 0;
}
Bài 2: Tính chu vi và diện tích hình vuông¶
Đề bài: Khai báo int canh = 8. Tính và in chu vi, diện tích hình vuông.
Phân tích đề
Công thức: - Chu vi = 4 × cạnh - Diện tích = cạnh × cạnh
Output mẫu:
Gợi ý code
Bài 3: Hằng số PI và tính hình tròn¶
Đề bài: Khai báo const float PI = 3.14f và float banKinh = 7.0f. Tính và in chu vi, diện tích hình tròn.
Phân tích đề
Công thức: - Chu vi = 2 × PI × bán kính - Diện tích = PI × bán kính × bán kính
Output mẫu:
Gợi ý code
#include <iostream>
using namespace std;
int main() {
const float PI = 3.14f;
float banKinh = 7.0f;
float chuVi = 2 * PI * banKinh;
float dienTich = PI * banKinh * banKinh;
cout << "Ban kinh : " << banKinh << endl;
cout << "Chu vi : " << chuVi << endl;
cout << "Dien tich: " << dienTich << endl;
return 0;
}
Bài 4: Hoán đổi hai biến¶
Đề bài: Cho a = 10, b = 20. Hoán đổi giá trị hai biến bằng biến trung gian tam, in kết quả trước và sau.
Phân tích đề
Ý tưởng (giống đổi nước giữa 2 cốc bằng cốc thứ 3):
1. tam = a (lưu a tạm)
2. a = b (a nhận giá trị của b)
3. b = tam (b nhận giá trị cũ của a)
Output mẫu:
Gợi ý code
IV. Bài Tập Về Nhà¶
Bài 1: Tính tiền mua hàng¶
Đề bài: Khai báo int soLuong = 5, float donGia = 25000.0f. Tính và in tổng tiền.
Phân tích đề
Các bước thực hiện:
1. Khai báo soLuong và donGia
2. Tính tongTien = soLuong * donGia
3. In kết quả theo định dạng đẹp
Output mẫu:
Bài 2: Đổi giờ ra giây¶
Đề bài: Khai báo int gio = 2, phut = 30, giay = 15. Tính tổng số giây.
Phân tích đề
Công thức: Tổng giây = gio × 3600 + phut × 60 + giay
Output mẫu:
Bài 3: Tính điểm trung bình 3 môn¶
Đề bài: Khai báo điểm 3 môn Toán, Văn, Anh (kiểu float). Tính điểm TB và xếp loại (gán cứng char xepLoai dựa vào điểm tính được).
Phân tích đề
Các bước thực hiện:
1. Khai báo float diemToan = 8.5f, diemVan = 7.5f, diemAnh = 9.0f
2. Tính diemTB = (diemToan + diemVan + diemAnh) / 3.0f
3. Dựa vào kết quả, tự gán char xepLoai = 'G' hoặc 'K'...
4. In ra đầy đủ
Output mẫu:
Bài 4: Thông tin sản phẩm¶
Đề bài: Tạo chương trình hiển thị thông tin một sản phẩm: tên (in cứng), số lượng tồn (int), giá bán (float), còn hàng (bool). In ra dạng thẻ có khung trang trí.
Phân tích đề
Các bước thực hiện:
1. Tự chọn sản phẩm bất kỳ (bút, sách, bánh...)
2. Khai báo đủ các biến với kiểu phù hợp
3. In ra dạng thẻ có khung ===
Output mẫu:
V. Ghi Chú Quan Trọng¶
Lỗi hay gặp¶
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
'tuoi' was not declared |
Dùng biến trước khi khai báo | Khai báo biến trước khi sử dụng |
Kết quả chia bị cắt ngắn (7/2 = 3) |
Chia số nguyên cho số nguyên | Dùng 7.0f / 2 hoặc (float)7 / 2 |
Gán sai kiểu: int x = 3.5 → x = 3 |
Phần thập phân bị cắt bỏ | Dùng float x = 3.5f |
Thay đổi hằng số: PI = 4 → Lỗi |
const không thể gán lại |
Đây là tính năng đúng, không sửa |
Khi nào dùng float vs double?¶
float: Đủ dùng cho điểm số, giá tiền đơn giản. Tiết kiệm bộ nhớ.double: Dùng khi cần tính toán khoa học, tài chính. Mặc định nên chọndoubleđể an toàn.
Tóm Tắt Cú Pháp¶
// Khai báo biến
int tuoi = 15;
float diem = 8.5f;
double soPI = 3.14159265358979;
char xepLoai = 'A';
bool datGiai = true;
// Khai báo hằng số
const float PI = 3.14159f;
const int SO_NGAY = 7;
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: