Câu 2:
a) Khi lập trình, vì sao cần phải chạy thử chương trình?
Khi lập trình, việc chạy thử chương trình là một bước vô cùng quan trọng và cần thiết vì những lý do sau:
- Phát hiện và sửa lỗi (Debugging): Chạy thử chương trình cho phép lập trình viên kiểm tra xem chương trình có hoạt động đúng theo ý tưởng và yêu cầu đặt ra hay không. Trong quá trình chạy, các lỗi lập trình (bugs) như lỗi cú pháp, lỗi logic, lỗi thời gian chạy có thể xuất hiện. Việc phát hiện sớm các lỗi này giúp lập trình viên có thể sửa chữa kịp thời, đảm bảo chương trình hoạt động ổn định và chính xác.
- Kiểm tra tính đúng đắn của thuật toán: Chạy thử giúp xác minh xem thuật toán được triển khai trong chương trình có đúng đắn và hiệu quả hay không. Nó cho phép kiểm tra luồng thực thi của chương trình, các điều kiện rẽ nhánh, vòng lặp và các xử lý khác để đảm bảo chúng hoạt động như mong đợi.
- Đảm bảo yêu cầu người dùng: Chạy thử chương trình với các dữ liệu đầu vào khác nhau giúp đảm bảo chương trình đáp ứng đúng các yêu cầu chức năng và phi chức năng của người dùng. Nó giúp kiểm tra xem chương trình có xử lý đúng các trường hợp biên, các tình huống ngoại lệ hay không.
- Tối ưu hóa hiệu suất: Trong quá trình chạy thử, lập trình viên có thể theo dõi hiệu suất của chương trình, chẳng hạn như thời gian thực thi, mức sử dụng bộ nhớ. Nếu phát hiện các vấn đề về hiệu suất, họ có thể tiến hành tối ưu hóa mã nguồn để chương trình chạy nhanh hơn và hiệu quả hơn.
- Kiểm tra giao diện người dùng (nếu có): Đối với các chương trình có giao diện người dùng, việc chạy thử giúp kiểm tra xem giao diện có thân thiện, dễ sử dụng và hoạt động đúng như thiết kế hay không.
- Tạo sự tin tưởng vào chất lượng sản phẩm: Việc chạy thử kỹ lưỡng và sửa hết các lỗi giúp đảm bảo chất lượng của chương trình trước khi nó được triển khai hoặc bàn giao cho người dùng, từ đó tạo sự tin tưởng vào sản phẩm phần mềm.
c) Lỗi cú pháp xảy ra khi nào?
Lỗi cú pháp (syntax error) xảy ra khi người lập trình viết mã nguồn không tuân thủ đúng các quy tắc và cấu trúc ngôn ngữ lập trình đang sử dụng. Nói cách khác, trình biên dịch (compiler) hoặc trình thông dịch (interpreter) không thể hiểu được mã nguồn do nó chứa các lỗi về mặt ngữ pháp của ngôn ngữ.
Dưới đây là một số tình huống phổ biến gây ra lỗi cú pháp:
- Sai chính tả từ khóa: Viết sai tên các từ khóa (keywords) của ngôn ngữ lập trình (ví dụ: viết
whille
thay vì while
). - Thiếu hoặc thừa dấu câu: Quên dấu chấm phẩy (;), dấu ngoặc đơn (), dấu ngoặc kép "", dấu ngoặc nhọn {}, hoặc sử dụng chúng không đúng vị trí.
- Sử dụng toán tử không hợp lệ: Sử dụng các toán tử không tồn tại hoặc không phù hợp trong ngữ cảnh.
- Sai cấu trúc câu lệnh: Viết sai cấu trúc của các câu lệnh điều khiển (ví dụ:
if
, for
, while
), khai báo biến, định nghĩa hàm, lớp, v.v. - Không khớp cặp dấu: Thiếu dấu đóng cho dấu mở (ví dụ: thiếu dấu đóng ngoặc đơn sau dấu mở ngoặc đơn).
- Sử dụng biến chưa được khai báo (trong một số ngôn ngữ): Cố gắng sử dụng một biến mà chưa được định nghĩa trước đó.
- Vi phạm các quy tắc về thụt lề (trong một số ngôn ngữ như Python): Sử dụng thụt lề không nhất quán hoặc không đúng cấu trúc.