Table of Content
Important
Tham khảo
1. Giới thiệu về lập trình
Các bước tiếp cận một ngôn ngữ lập trình mới:
- Syntax:
- Chữ, số, kí hiệu
- Không viết số ở đầu
- Phân biệt chữ hoa/thường hay không
- Built-in data types
- Variable, constant, biểu thức
- Variable:
- Cách khai báo
- Local/Global variable
- Life cycle
- Constant:
- Hằng số bình thường: Ví dụ: Ta khai báo
x = 5 - Hằng số đại diện: Ví dụ: Ta khai báo pi =
3.14
- Hằng số bình thường: Ví dụ: Ta khai báo
- Biểu thức (functions):
- Hàm biến đổi kiểu
- Variable:
- Nhập xuất từ console
- Statement, control structures
- UDF (User Defined Function):
- Truyền tham số:
Ngôn ngữ biên dịch và thông dịch (compiler/interpreter)
Compiler:
-
Source code → Compiler → File
.exe/.bin→ Hệ điều hành chạy trực tiếp -
Ví dụ: C, C++, C#, Java (biên dịch sang bytecode trước khi chạy)
-
Ưu điểm:
- Chạy nhanh do mã máy đã được tạo sẵn.
- Tối ưu hiệu suất trong quá trình biên dịch.
-
Nhược điểm:
- Mất thời gian chờ biên dịch.
- Phải biên dịch lại mỗi khi thay đổi mã nguồn. Interpreter:
-
Là chương trình đọc và thực thi mã nguồn trực tiếp, không tạo file thực thi riêng.
-
Nó sẽ dịch từng dòng hoặc từng khối lệnh sang mã máy và chạy ngay lập tức.
-
Ví dụ: Python, JavaScript, Ruby, PHP
Nhập xuất dữ liệu với console:
Console = Bàn phím và màn hình → Vậy tức là nhập/xuất từ bàn phím và màn hình.
Các cấu trúc lập trình:
- Rẽ nhánh:
- Rẽ nhánh theo điều kiện logic:
- Rẽ một nhánh
- Rẽ hai nhánh
- Rẽ nhiều nhánh
- Rẽ nhánh theo giá trị của biến
- Rẽ nhánh theo điều kiện logic:
- Vòng lặp:
- Vòng lặp được điều khiển theo điều kiện
- Thực hiện trước, kiểm tra sau
- Kiểm tra trước, thực hiện sau
- Vòng lặp được lặp theo số lần
- Vòng lặp được điều khiển theo điều kiện
- Nhảy
Thủ tục
Truyền tham số:
- Truyền giá trị → chỉ nhận giá trị, không thay đổi giá trị tại địa chỉ gốc
- Truyền địa chỉ → thay đổi luôn biến Python chỉ có kiểu object mới truyền theo tham chiếu được. Đọc thêm: M01W3.2_Variables and Addresses in Python
- Phụ thuộc hàm (Functional Dependency) – Cơ sở dữ liệu
-
Khái niệm: Trong mô hình quan hệ (database), phụ thuộc hàm là mối quan hệ giữa hai tập thuộc tính của một bảng, thể hiện rằng giá trị của thuộc tính A quyết định duy nhất giá trị của thuộc tính B.
-
Ký hiệu: (A xác định B).
-
Ví dụ: Trong bảng
SinhVien(MSSV, HoTen, Lop)MSSV → HoTennghĩa là mỗi MSSV chỉ có một họ tên duy nhất.
-
Ý nghĩa kỹ thuật:
- Dùng trong chuẩn hóa dữ liệu để tránh dư thừa và bất thường (anomaly).
- Là cơ sở xác định khóa chính và khóa ứng viên.
- Phụ thuộc đa trị (Multivalued Dependency) – Cơ sở dữ liệu
-
Khái niệm: Là một dạng phụ thuộc giữa các thuộc tính, trong đó một thuộc tính có thể xác định nhiều giá trị độc lập của thuộc tính khác.
-
Ký hiệu: (A xác định đa trị B).
-
Ví dụ: Trong bảng
GiaoVien(MaGV, MonDay, NgoaiNgu)MaGV ⇒ MonDayvàMaGV ⇒ NgoaiNgunếu môn dạy và ngoại ngữ độc lập với nhau.
-
Ý nghĩa kỹ thuật:
- Xuất hiện khi dữ liệu lặp lại không cần thiết → cần chuẩn hóa lên dạng chuẩn 4 (4NF).
- Hàm (Function) – Toán & Lập trình
- Toán học:
-
Hàm là ánh xạ từ mỗi phần tử của tập X tới duy nhất một phần tử của tập Y.
-
Điều kiện: Một đầu vào → chỉ một đầu ra.
-
- Lập trình:
-
Khối mã nhận đầu vào (input) → xử lý → trả về giá trị (output).
-
Ví dụ Python:
def binh_phuong(x): return x * x
-
Tuy nhiên hàm Python có thể trả về nhiều giá trị
- Ánh xạ (Mapping) – Toán & Kỹ thuật
- Toán học:
- Là khái niệm tổng quát hơn hàm: mỗi phần tử của tập nguồn được gán (map) tới một hoặc nhiều phần tử của tập đích.
- Nếu mỗi phần tử nguồn → duy nhất một phần tử đích → ánh xạ đó chính là hàm.
- Nếu một phần tử nguồn → nhiều phần tử đích → quan hệ đa trị.
- Kỹ thuật lập trình:
-
Mapping là việc tạo quan hệ tương ứng giữa 2 tập dữ liệu.
-
Ví dụ Python:
# Ánh xạ tên -> tuổi mapping = {"An": 20, "Bình": 21} print(mapping["An"]) # 20
-