Tư duy Thuật toán & Kỹ năng Trace Code
Quảng cáo • Advertisement
📢 Sponsor Ad
Google AdSense
lesson.content.title
lesson.content.subtitle
🎯 Mở đầu Phase 2: Chào mừng đến với "Chiến trường thực sự"
Nếu Phase 1 là "Chém gió" về quản lý và chiến lược, thì Phase 2 là nơi bạn phải dùng "Cơ bắp não bộ". Đây là phần thi quyết định sự sống còn trong bài thi FE Chiều (Exam B).
Kỹ năng quan trọng nhất không phải là học thuộc lòng code, mà là TRACE CODE (Chạy tay). Bạn phải biến mình thành một cái máy tính, thực hiện từng dòng lệnh trên giấy để tìm ra kết quả cuối cùng.
1. Trace Table (Bảng chạy tay) - Vũ khí tối thượng
Khi gặp một đoạn code có vòng lặp (Loop) hoặc biến đổi giá trị liên tục, ĐỪNG BAO GIỜ NHẨM TRONG ĐẦU. Bộ não của bạn không phải là thanh ghi (Register), bạn sẽ quên ngay giá trị i là 3 hay 4 chỉ sau 1 giây.
Giải pháp: Kẻ bảng "Trace Table".
Ví dụ 1: Vòng lặp cơ bản
// Đề bài: Tính tổng S
S = 0
For i = 1 to 3
S = S + i * 2
Next i
Print S
Bảng Trace chi tiết:
| Vòng lặp (Loop) | Biến i | Biến S (Trước khi tính) | Phép tính (S + i*2) | Biến S (Sau khi tính) | Ghi chú |
|---|---|---|---|---|---|
| Khởi tạo | - | 0 | - | 0 | Mới vào, S=0 |
| Vòng 1 | 1 | 0 | 0 + 1*2 = 2 | 2 | i chạy từ 1 |
| Vòng 2 | 2 | 2 | 2 + 2*2 = 6 | 6 | Lấy S cũ (2) ném vào |
| Vòng 3 | 3 | 6 | 6 + 3*2 = 12 | 12 | Vòng cuối cùng |
| Kết thúc | 4 | 12 | (Dừng vì i > 3) | 12 | In ra màn hình: 12 |
⚠️ Cạm bẫy thi cử:
Đề thi thường hỏi: "Khi vòng lặp kết thúc, giá trị của i là bao nhiêu?".
Rất nhiều bạn trả lời là 3. SAI!
Đáp án đúng là 4. Vì i phải tăng lên 4, kiểm tra thấy 4 > 3 (vi phạm điều kiện) thì mới thoát vòng lặp. Hãy cẩn thận!
2. Mẹo Debug thực tế: Console.log là bạn thân
Trong thực tế, chúng ta không kẻ bảng giấy mãi được. Hãy dùng console.log để in giá trị biến ra màn hình.
for (let i = 0; i < 5; i++) {
console.log("i hiện tại là:", i); // Dòng này cứu mạng bạn
// logic phức tạp...
}
Kinh nghiệm xương máu: Khi code chạy sai, đừng đoán mò. Hãy log hết các biến quan trọng ra.
2. Logic Điều kiện & Các ký hiệu Lưu đồ (Flowchart)
Trong đề thi FE, người ta không viết Code C++ hay Java, mà dùng Pseudo-code (Mã giả) hoặc Lưu đồ thuật toán.
| Hình dạng | Tên gọi | Chức năng | Ví dụ |
|---|---|---|---|
| Hình Chữ Nhật | Process | Thực hiện một hành động, tính toán. | x = x + 1, Calculate Total |
| Hình Thoi | Decision (Quyết định) | Rẽ nhánh. Luôn có 1 đường vào và 2 đường ra (Yes/No hoặc True/False). | i > 10?, Is User Login? |
| Hình Bình Hành | I/O (Input/Output) | Nhập dữ liệu từ bàn phím hoặc In ra màn hình. | Input N, Print Result |
| Hình Elip (Bo tròn) | Terminator | Bắt đầu hoặc Kết thúc chương trình. | Start, End |
| Hình Lục Giác | Preparation (Loop) | Khai báo vòng lặp (Biến đếm, Giá trị đầu, Giá trị cuối, Bước nhảy). | i: 1, 10, 1 (Chạy i từ 1 đến 10, mỗi bước tăng 1) |
3. Bài tập thực hành: Trace Loop lồng nhau (Nested Loop)
Đây là dạng bài "sát thủ" ngốn thời gian. Hãy bình tĩnh kẻ bảng.
Counter = 0
For x = 1 to 2
For y = 1 to 3
If (x + y) là số chẵn Then
Counter = Counter + 1
End If
Next y
Next x
Print Counter
Các bạn hãy lấy giấy bút ra kẻ bảng trước khi xem đáp án nhé!
👉 Xem Đáp án & Giải thích chi tiết
| Vòng x | Vòng y | x + y | Chẵn? | Counter (Cũ -> Mới) |
|---|---|---|---|---|
| 1 | 1 | 2 | Yes | 0 -> 1 |
| 1 | 2 | 3 | No | 1 -> 1 (Giữ nguyên) |
| 1 | 3 | 4 | Yes | 1 -> 2 |
| 2 | 1 | 3 | No | 2 -> 2 |
| 2 | 2 | 4 | Yes | 2 -> 3 |
| 2 | 3 | 5 | No | 3 -> 3 |
Kết quả cuối cùng: Counter = 3.
Quảng cáo • Advertisement
📢 Ad Space
Google AdSense