📗 BASIC A - CHUYÊN ĐỀ 1: CÚ PHÁP, KIỂU DỮ LIỆU VÀ NHẬP XUẤT
1. Kiểu dữ liệu số nguyên (Cái "hộp" đựng số)
Trong lập trình, mỗi loại số cần một cái hộp có kích thước khác nhau. Chọn sai hộp là số bị "tràn" ra ngoài ngay!
| Kiểu dữ liệu | Số chữ số tối đa | Giới hạn chính xác | Lưu ý |
|---|---|---|---|
int |
~9 chữ số | \(-2 \cdot 10^9\) đến \(2 \cdot 10^9\) | Dùng cho số nhỏ (số lượng, chỉ số mảng). |
long long |
~18-19 chữ số | \(-9 \cdot 10^{18}\) đến \(9 \cdot 10^{18}\) | Luôn dùng khi tính tổng, tích hoặc số lớn. |
Kinh nghiệm xương máu: Nếu đề bài bảo số nhập vào đến 10⁹, nhưng yêu cầu tính tổng của chúng, thì biến tổng phải là
long longnhé Huy!
2. Nhập và Xuất (Giao tiếp với máy tính)
- Khai báo biến:
kiểu_dữ_liệu tên_biến;(Ví dụ:int n;) - Nhập (
cin): Đọc dữ liệu từ bàn phím.cin >> n; - Xuất (
cout): In dữ liệu ra màn hình.cout << n;
3. Các phép toán cơ bản
Giống hệt toán học nhưng có vài ký hiệu cần nhớ:
+,-,*: Cộng, trừ, nhân./: Chia lấy phần nguyên (Ví dụ:5 / 2 = 2).%: Chia lấy phần dư (Ví dụ:5 % 2 = 1).
4. Định dạng đầu ra (In sao cho đẹp)
- In chuỗi: Bỏ trong dấu ngoặc kép:
cout << "Chao Huy"; - In dấu cách:
cout << " ";hoặccout << a << " " << b; - Xuống dòng: Dùng
endlhoặc"\n".
5. Số thực (double) và làm tròn
Khi cần tính diện tích, trung bình cộng, ông phải dùng double.
Để làm tròn số sau dấu phẩy, ông cần thư viện #include <iomanip>.
- Làm tròn 1 chữ số:
cout << fixed << setprecision(1) << x; - Làm tròn 2 chữ số:
cout << fixed << setprecision(2) << x;
6. Mẹo xử lý chữ số (Cực kỳ quan trọng)
Đây là kỹ thuật "vỡ lòng" để xử lý các bài toán về số tự nhiên:
- Lấy chữ số cuối:
n % 10 - Xóa chữ số cuối:
n / 10
Ví dụ: n = 123
n % 10 = 3(lấy được số 3).n / 10 = 12(mất số 3, còn lại 12).
7. Code minh họa tổng hợp
Bài toán: Nhập 2 số nguyên \(a, b\). Tính tổng và in ra trung bình cộng làm tròn 2 chữ số.
C++
#include <iostream>
#include <iomanip> // Thư viện để dùng setprecision
using namespace std;
int main() {
long long a, b;
cin >> a >> b;
long long tong = a + b;
double trungBinh = (double)tong / 2; // Ép kiểu để chia ra số thập phân
cout << "Tong la: " << tong << endl;
cout << "Trung binh la: " << fixed << setprecision(2) << trungBinh << endl;
return 0;
}
8. Độ phức tạp (Complexity)
- Thời gian: \(O(1)\) (Hằng số). Các phép toán nhập xuất và cộng trừ nhân chia cơ bản diễn ra cực nhanh, gần như tức thời.
- Bộ nhớ: \(O(1)\). Chỉ tốn vài byte để lưu biến.
Bình luận