Nguyễn Nhật Phương
Giới thiệu về bản thân
Đầu vào: Số nguyên dương n.
Đầu ra: Tổng các số từ 1 đến n.
Bắt đầu thuật toán:
Bước 1. Khởi tạo biến tổng ← 0.
Bước 2. Khởi tạo biến i ← 1.
Bước 3. Trong khi i ≤ n:
tổng ← tổng + i
i ← i + 1
Bước 4. Trả về giá trị của biến tổng.
Kết thúc thuật toán.
1. Quy trình nấu ăn với các hướng dẫn mơ hồ
Ví dụ: "Cho một ít muối vào nồi, nêm nếm cho vừa miệng rồi đun cho đến khi thấy ngon."
Lý do: Các cụm từ như "một ít", "vừa miệng", "thấy ngon" mang tính cảm tính, không xác định rõ ràng. Mỗi người sẽ có cách hiểu khác nhau, dẫn đến kết quả khác nhau. Một thuật toán cần các đơn vị đo lường chính xác (ví dụ: 5g muối, đun trong 10 phút).
2. Quy trình "Đi thẳng cho đến khi thấy mệt thì dừng lại"
Ví dụ
: Bước 1: Bắt đầu đi bộ thẳng.
Bước 2: Nếu thấy mệt thì dừng lại, nếu chưa mệt thì quay lại
Bước 1. Lý do: Quy trình này thiếu tính hữu hạn. Một người có thể đi mãi mà không thấy mệt (về mặt lý thuyết), khiến quy trình không bao giờ kết thúc. Ngoài ra, cảm giác "mệt" cũng không phải là một điều kiện xác định chuẩn xác cho mọi đối tượng.
3. Quy trình tung đồng xu để chọn việc cần làm
Ví dụ: "Tung một đồng xu, nếu mặt ngửa thì đi học, nếu mặt sấp thì đi chơi."
Lý do: Kết quả của mỗi bước phụ thuộc vào sự ngẫu nhiên, không có tính xác định chắc chắn từ dữ liệu đầu vào. Thuật toán đòi hỏi cùng một đầu vào phải cho ra cùng một kết quả ở các bước thực hiện.
Trung tâm: Cấu trúc lặp
Định nghĩa:
+ Lặp lại một hoặc một nhóm câu lệnh nhiều lần.
+ Tiết kiệm thời gian và công sức khi viết code.
- Lặp với số lần biết trước.
+ Số lần lặp được xác định trước.
+ Sử dụng biến đếm để theo dõi số lần lặp.
- Lưu ý:
+ Tránh vòng lặp vô hạn (điều kiện luôn đúng).
+ Sử dụng vòng lặp phù hợp với từng bài toán.
+ Tối ưu hóa vòng lặp để tăng hiệu suất.