Bỏ qua

Banner Biến, Hằng và Kiểu Dữ Liệu

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ụ:

int tuoi = 15;
float diem = 9.5f;
char lopHoc = 'A';
bool ketQua = true;

2. Các Kiểu Dữ Liệu Cơ Bản

Các kiểu dữ liệu trong C++

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ị float cầ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:

const float PI = 3.14159f;
const int SO_NGAY_TRONG_TUAN = 7;
const char DIEM_TOT = 'A';

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 tuoiTuoiTUOI
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ả
Tuoi      : 15
Diem      : 8.75
So PI     : 3.14159
Xep loai  : B
Dat yeu cau: 1

Lưu ý: bool khi in ra sẽ hiện 1 (true) hoặc 0 (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;
}
✅ Kết quả
Ban kinh : 5
Chu vi   : 31.4159
Dien tich: 78.5397

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;
}
✅ Kết quả
Diem ban dau    : 7
Diem sau khi sua: 9
Diem sau khi +1 : 10

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:

=== THE HOC SINH ===
Ho ten  : Nguyen Van An
Tuoi    : 15
Diem TB : 8.5
Xep loai: B
====================

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:

Canh hinh vuong: 8
Chu vi         : 32
Dien tich      : 64

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

int main() {
    int canh = 8;
    int chuVi    = 4 * canh;
    int dienTich = canh * canh;

    cout << "Canh hinh vuong: " << canh     << endl;
    cout << "Chu vi         : " << chuVi    << endl;
    cout << "Dien tich      : " << dienTich << endl;

    return 0;
}

Bài 3: Hằng số PI và tính hình tròn

Đề bài: Khai báo const float PI = 3.14ffloat 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:

Ban kinh : 7
Chu vi   : 43.96
Dien tich: 153.86

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:

Truoc khi doi: a = 10, b = 20
Sau khi doi  : a = 20, b = 10

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

int main() {
    int a = 10, b = 20;
    cout << "Truoc khi doi: a = " << a << ", b = " << b << endl;

    int tam = a;
    a = b;
    b = tam;

    cout << "Sau khi doi  : a = " << a << ", b = " << b << endl;

    return 0;
}

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 soLuongdonGia 2. Tính tongTien = soLuong * donGia 3. In kết quả theo định dạng đẹp

Output mẫu:

So luong : 5
Don gia  : 25000
Tong tien: 125000


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:

Thoi gian   : 2 gio 30 phut 15 giay
Tong so giay: 9015


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:

Toan: 8.5  Van: 7.5  Anh: 9
Diem TB  : 8.33333
Xep loai : K


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:

===========================
   THONG TIN SAN PHAM
===========================
Ten     : But bi Thien Long
So luong: 150
Gia ban : 5000
Con hang: 1
===========================


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ọn double để 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:

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