Skip to main content

1.7 — 6. Tư Duy Giải Bài Toán

Mục tiêu bài học

  • Nắm được ý chính của bài và mối liên hệ với module.
  • Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
  • Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.

Nội dung bài học

Trước khi viết bất kỳ dòng code nào, hãy hiểu rõ bài toánchia nhỏ nó ra.

1.7.1 — Quy trình 4 bước

Bước 1 — Hiểu đầu vào và đầu ra

Câu hỏi: "Tôi có gì? Tôi cần trả về gì?"

Bước 2 — Viết pseudocode (giả code bằng tiếng Việt)

Pseudocode là mô tả logic bằng ngôn ngữ tự nhiên, không cần cú pháp chính xác.

Bước 3 — Chuyển pseudocode thành code thật

Bước 4 — Test với các trường hợp biên (edge cases)

1.7.2 — Ví dụ thực tế: Phân loại lead theo doanh thu tiềm năng

Bài toán: Cho danh sách lead với doanh thu ước tính, phân loại thành Hot/Warm/Cold và trả về số lượng mỗi loại.

Bước 1 — Đầu vào/ra:

  • Đầu vào: danh sách số (doanh thu ước tính của từng lead)
  • Đầu ra: 3 con số (số lead Hot, Warm, Cold)

Bước 2 — Pseudocode:

đặt hot = 0, warm = 0, cold = 0
với mỗi lead trong danh sách:
nếu doanh thu >= 100 triệu: tăng hot
nếu doanh thu >= 20 triệu: tăng warm
còn lại: tăng cold
in kết quả

Bước 3 — Code C#:

void PhanLoaiLead(List<decimal> doanhThuList)
{
int hot = 0, warm = 0, cold = 0;

foreach (decimal doanhThu in doanhThuList)
{
if (doanhThu >= 100_000_000m)
hot++;
else if (doanhThu >= 20_000_000m)
warm++;
else
cold++;
}

Console.WriteLine($"Hot: {hot} | Warm: {warm} | Cold: {cold}");
}

// Test
var leads = new List<decimal> { 150_000_000m, 50_000_000m, 5_000_000m, 200_000_000m, 10_000_000m };
PhanLoaiLead(leads);
// Output: Hot: 2 | Warm: 1 | Cold: 2

Bước 4 — Edge cases cần test:

  • Danh sách rỗng → không crash, in "Hot: 0 | Warm: 0 | Cold: 0"
  • Doanh thu âm → xử lý thế nào? (CRM thực tế cần validate đầu vào)
  • Doanh thu đúng bằng ngưỡng (100 triệu) → phải vào Hot

Bài tập áp dụng

  1. Tóm tắt bài học bằng ngôn ngữ của bạn.
  2. Liên hệ nội dung với một tình huống thực tế trong dự án.
  3. Đề xuất một cải tiến cụ thể sau khi học bài này.

Tự kiểm tra

  • Bạn có thể giải thích lại nội dung chính trong 2 phút không?
  • Bạn có ví dụ áp dụng thực tế chưa?
  • Bạn biết bước tiếp theo cần học/triển khai là gì không?

Kết luận

Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.

Điều hướng