Nhớ hồi đi học đại học, thời đó lần đầu tiên được học 1 môn gọi là Java, bên châu Âu bọn nó chuộng cái ngôn ngữ lập trình này lắm bởi vì nó dùng để xây dựng những hệ thống lớn thật lớn, rất là to.
—
Trong lúc đang học, mặc dù biết kha khá về cú pháp rồi nhưng trong lúc học có 1 bài toán mà hồi đó đầu óc non trẻ không hiểu được làm sao để giải quyết đó là có 2 biến a và b, a = 3 và b = 4 làm sao để đổi lại được a = 4 và b = 3?
—
Thế là lúc đó ông thầy mới gợi ý là giờ có 2 bình nước: bình A đựng 3 lít, bình B đựng 4 lít, giờ làm sao để đổ nước trong bình A sang bình B và đổ nước từ bình B sang bình A?
Thế là nghĩ ra liền vì hồi cấp 1 hay chơi trò đổ nước:
1. lấy bình C có thể tích ít nhất là 4 lít ra.
2. Đổ nước trong bình A vào bình C, giờ bình A rỗng
3. Đổ nước từ bình B vào bình A, giờ bình B rỗng
4. Đổ nước từ bình C vào bình B, giờ nước ở 2 bình A và B đã được đổi cho nhau.
—
Ví dụ về bình chứa nước còn có thể thể hiện được một số concept khác khi làm việc với biến, bộ nhớ trong máy tính:
– 1 biến có kiểu double được gán giá trị to cỡ 2e10 thì không thể “đổi giá trị” với 1 biến kiểu Integer to cỡ 2e2 được. Vì bình có dung tích 1000L đang đựng 100 lít mà đổ sang bình có dung tích 10 lít thì sẽ bị tràn (tiếng anh: integer overflow)
– Ngược lại thì bình nhỏ đổ sang bình to thì OK
– Cách sử dụng bình C làm trung gian ở trên gọi là thuật toán.
>>> nhiều người đã dùng Excel, các hàm biết hết rồi mà không tự giải quyết được vấn đề đó là vì “không biết cách giải quyết” – thiếu thuật toán, bắt đầu đi học đổ nước để luyện thuật toán nhé.