1. Thuật toán (algorithm) là gì?
Ví dụ, có phương trình bậc nhất có dạng: ax + b = 0, làm thế nào để giải phương trình này? Không thể thế từng giá trị x vào để tìm nghiệm. Cần phải có cách giải quyết khoa học hơn.
Đó là, ta có: phương trình bậc nhất: ax + b = 0, với a, b là các số thực. Vậy, đầu vào: a, b thuộc R, đầu ra: nghiệm phương trình ax + b = 0. Xét các trường hợp:
Nếu a = 0:
- b = 0 thì phương trình có nghiệm bất kì.
- b ≠ 0 thì phương trình vô nghiệm.
Nếu a ≠ 0: Phương trình có nghiệm duy nhất x = -b/a
Các bước xét nghiệm của phương trình như thế là ví dụ của thuật toán.
Thuật toán (algorithm) là tập hợp hữu hạn các thao tác được định nghĩa rõ ràng nhằm giải quyết một bài toán cụ thể nào đó.
Thuật toán phải đảm bảo 5 tính chất sau:
– Tính chính xác: quá trình tính toán hay các thao tác máy tính thực hiện là chính xác.
– Tính rõ ràng: các câu lệnh minh bạch được sắp xếp theo thứ tự nhất định.
– Tính khách quan: được viết bởi nhiều người trên máy tính nhưng kết quả phải như nhau.
– Tính phổ dụng: có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau.
– Tính kết thúc: hữu hạn các bước tính toán.
2. Các phương pháp biểu diễn thuật toán
2.1. Sử dụng ngôn ngữ tự nhiên
Sử dụng ngôn ngữ giao tiếp hàng ngày để diễn đạt các bước thực hiện của thuật toán.
Ví dụ: Sử dụng ngôn ngữ tự nhiên để biểu diễn thuật toán tính tổng hai số nguyên a, b.
– Đầu vào: 2 số nguyên a, b
– Đẩu ra: Tổng của 2 số nguyên a, b.
– Thuật toán:
- Bước 1: Nhập giá trị của a, b.
- Bước 2: Tính Tổng = a + b.
- Bước 3: Thông báo kết quả Tổng
- Bước 4: Kết thúc.
Sinh viên thử dùng ngôn ngữ tự nhiên để biểu diễn thuật toán giải phương trình bậc nhất ax+b=0.
2.2. Sử dụng lưu đồ (flow chart)
Lưu đồ được sử dụng để trình bày các bước giải quyết vấn đề qua các hình khối khác nhau.
Một số qui ước ký hiệu lưu đồ:
Chọn lựa điều kiện: sử dụng hình thoi, bên trong chứa biểu thức điều kiện. Sử dụng thêm các nhãn: Đ/Đúng,Y/Yes hoặc S/Sai,N/No.
Xử lý công việc: sử dụng hình chữ nhật, bên trong chứa nội dung xử lý.
Quá trình thực hiện các thao tác: dùng mũi tên để nối các thao tác.
Ví dụ 1: Sử dụng lưu đồ để biểu diễn thuật toán tính tổng hai số nguyên a, b.
Ví dụ 2: Sử dụng lưu đồ để biểu diễn thuật toán giải phương trình bậc nhất ax + b = 0 (a, b thuộc R)
2.3. Sử dụng mã giả (pseudo-code)
Mã giả là một ngôn ngữ hình thức giúp các lập trình viên phát triển thuật toán. Mã giả thường vay mượn cú pháp của một ngôn ngữ nào đó để biểu diễn thuật toán.
Chương trình mã giả thì không thực thi được trên máy tính. Chúng chỉ giúp bạn phát thảo ra một thuật toán và biểu diễn thuật toán đó một cách dễ hiểu trước khi viết nó bằng một ngôn ngữ lập trình nào đó.
Ví dụ: Sử dụng mã giả để biểu diễn thuật toán giải phương trình bậc nhất ax + b = 0 (a, b thuộc R).
Đầu vào: 2 số thực a, b
Đầu ra: Nghiệm của phương trình bậc nhất ax + b = 0
If a = 0 Then
Begin
If b = 0 Then
Xuất “Phương trình vô số nghiệm”
Else
Xuất “Phương trình vô nghiệm”
End
Else
Xuất “Phương trình có nghiệm x = -b/a”
Vậy là thông thường, chúng ta có 3 cách biểu diễn thuật toán. Đây là những cách mà các bạn nên sử dụng để phát thảo ra một thuật toán khi trong đầu lóe lên những ý tưởng hay ho nhé!
Nên nhớ: Các phương pháp biểu diễn thuật toán chỉ tập trung thể hiện ý tưởng thuật toán, không quan trọng quá về cú pháp.