| TT | Kiểu dữ liệu | Mô tả | Ghi chú |
|---|---|---|---|
| 1 | int, long | -2147483648 tới 2147483647 | Số nguyên |
| 2 | unsigned int, long | 0 tới 4,294,967,295 | Số nguyên |
| 3 | float | Số thực | |
| 4 | double | Số thực | |
| 5 | long double | Số thực | |
| 6 | char | -127 tới 127 | Kí tự |
| 7 | unsigned char | 0 tới 255 | Kí tự |
| 8 | string | 255 kí tự, chỉ số từ 0 | Xâu kí tự |
| 9 | bool | true hoặc false | Logic |
| 10 | long long | -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 | Số nguyên |
| 11 | unsigned long long | 0 đến 18,446,744,073,709,551,615 | Số nguyên |
| 12 | short | -32768 tới 32767 | Số nguyên |
| 13 | unsigned short | 0 tới 65,535 | Số nguyên |
| 14 | pair | Lưu trữ dữ liệu theo cặp như phân số; có hai giá trị là first và second |
pair<kiểu 1, kiểu 2> p.first; p.second; |
| 15 | void | Kiểu không có giá trị |
Giải thích phạm vi của kiểu dữ liệu
Một bit trong lập trình có thể biểu diễn được 2 giá trị:
0 hoặc 1.
Do đó một bit có thể biểu diễn được 21 giá trị khác nhau.
Nếu có 2 bits thì ta có các giá trị:
00, 01, 10, 11.
Như vậy tổng cộng biểu diễn được 22 = 4 giá trị.
Tương tự, 1 byte = 8 bits nên có thể biểu diễn được 28 = 256 giá trị khác nhau.
Nói tổng quát, nếu có n bits thì số lượng giá trị có thể biểu diễn là: 2n
Máy tính lưu trữ dữ liệu dưới dạng nhị phân (chỉ gồm 0 và 1).
Ví dụ với 2 bits ta có:
00 = 0
01 = 1
10 = 2
11 = 3
Đối với 1 byte (8 bits), giá trị lớn nhất là:
11111111 =
27 + 26 + 25 + 24 +
23 + 22 + 21 + 20 = 255
11111111 = 28 − 1 = 255
Vì vậy kiểu unsigned char có phạm vi giá trị từ 0 đến 255.
Còn kiểu char phải biểu diễn cả số âm và số dương nên miền giá trị được chia đôi: -128 đến 127. Phần dương bị thiếu một giá trị vì cần dành một giá trị để biểu diễn số 0.
Phép gán là dấu =
Trong C++, phép gán được sử dụng để gán một giá trị cho biến. Ký hiệu của phép gán là dấu =.
Ví dụ:
int a = 5;
a = 10; // gán lại giá trị mới cho biến a
Trong ví dụ trên, biến a ban đầu có giá trị 5, sau đó được gán lại giá trị 10.
Hằng (constant)
Hằng là đại lượng có giá trị không thay đổi trong suốt quá trình thực hiện chương trình.
Trong C++, từ khóa dùng để khai báo hằng là const.
Cú pháp khai báo hằng:
const kiểu_dữ_liệu tên_hằng = giá_trị;
Ví dụ:
const double PI = 3.14159;
const int diem_thuong = 5;
Ngoài ra có thể viết từ khóa const sau kiểu dữ liệu:
kiểu_dữ_liệu const tên_hằng = giá_trị;
Ví dụ:
double const PI = 3.14159;
int const diem_thuong = 5;
Biến (variable)
Biến là đại lượng có giá trị có thể thay đổi trong quá trình thực hiện chương trình.
Cú pháp khai báo biến:
kiểu_dữ_liệu tên_biến = giá_trị;
kiểu_dữ_liệu tên_biến;
Có thể khai báo nhiều biến cùng kiểu dữ liệu trong một dòng:
kiểu_dữ_liệu danh_sách_tên_biến;
kiểu_dữ_liệu danh_sách_tên_biến = giá_trị;
Lưu ý: Các tên biến trong danh sách được ngăn cách bởi dấu phẩy (,).
Biến có thể được gán giá trị ban đầu hoặc không.
Ví dụ:
int a = 0, b = 20; // khai báo 2 biến kiểu số nguyên
float x = 20.8;
char c = 'A';
string s = "Thong bao";
Hoặc khai báo trước rồi mới gán giá trị:
int a, b; // khai báo 2 biến kiểu số nguyên
float x;
char c;
string s;
Ví dụ: cin>>a;
#include <bits/stdc++.h>
using namespace std;
const float pi = 3.14;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
float ban_kinh = 0, dien_tich,chu_vi=0;;
string tb_dien_tich = "Dien tich hinh tron la: ";
string tb_chu_vi = "Chu vi hinh tron la: ";
cout << "Nhap ban kinh = ";
cin>>ban_kinh;
dien_tich = pi*ban_kinh*ban_kinh;
chu_vi = 2*pi*ban_kinh;
cout << tb_dien_tich<
¶ 3.2) Nhập, xuất bằng đọc, ghi tệp (tỉnh Lào Cai đã bỏ cách này từ năm học 2023-2024)
- Sử dụng thư viện: #include <cstdio>
Cách dùng
Miêu tả
freopen("TENTEP.INP","r",stdin);
Trong code thi HSG, nộp chấm dùng cách này để sử dụng
cin và cout như nhập xuất chuẩn
(bàn phím, màn hình)
freopen("TENTEP.OUT","w",stdout);
Trong code thi HSG, nộp chấm dùng cách này để sử dụng
cin và cout như nhập xuất chuẩn
(bàn phím, màn hình)
Đọc, ghi tệp chuẩn trong thi học sinh giỏi, code chấm tự động
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
freopen("TENBAI.INP","r",stdin);
freopen("TENBAI.OUT","w",stdout);
// con lai code nhu nhap xuat ban phim va man hinh
return 0;
}
Ví dụ hoàn chỉnh:
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("Data.txt","r",stdin);
freopen("KQ.txt","w",stdout);
char Ten[100];
int tuoi;
cin.getline(Ten,100);
cin >> tuoi;
cout << "Ten cua ban: " << Ten << "\n";
cout << "Tuoi ban: " << tuoi;
return 0;
}
¶ 4) Luyện tập lại các phép toán số học.
Câu 1. Cho số nguyên N trong tệp BAI1.INP. Xuất ra BAI1 .OUT kết quả của N*N
BAI1.INP
BAI1.OUT
6
36
8
64
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("BAI1.INP","r",stdin);
freopen("BAI1.OUT","w",stdout);
int N;
cin >> N;
cout << "N*N = " << N * N;
return 0;
}
Câu 2. Cho hai số nguyên a và b trong tệp CAU2.INP, mỗi số một dòng. Xuất ra màn hình kết quả tích a và b ra CAU2.OUT.
CAU2.INP
CAU2.OUT
6
9
54
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("CAU2.INP","r",stdin);
freopen("CAU2.OUT","w",stdout);
int a, b;
cin >> a >> b;
int tich = a * b;
cout << tich;
return 0;
}
Câu 3. Cho hai số nguyên a và b trong tệp CAU3.INP, mỗi số một dòng. Ghi kết quả tính tổng và tích a và b ra tệp CAU3.OUT, mỗi kết quả ghi một dòng.
CAU3.INP
CAU3.OUT
6
9
15
54
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
freopen("Cau3.INP","r",stdin);
freopen("Cau3.OUT","w",stdout);
int a, b;
cin >> a >> b;
int Tong = a + b;
int Tich = a * b;
cout << Tong << "\n";
cout << Tich;
return 0;
}
¶ Liên kết nhanh
- Về trang mục lục: NGÔN NGỮ LẬP TRÌNH C++ DÀNH CHO NGƯỜI HỌC TỪ CON SỐ 0
- 🌐 Trang chấm bài: https://vnoj.io.vn
- 📩 Liên hệ hỗ trợ: admin@vnoj.io.vn