Thuật toán là gì? Các phương pháp biểu diễn thuật toán

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:

Các tính chất của thuật toán

Các tính chất của thuật toán

– 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 đồ:

Quy ước ký hiệu lưu đồ

Quy ướ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.

Chọn lựa điều kiện của lưu đồ

Chọn lựa điều kiện của lưu đồ

Xử lý công việc: sử dụng hình chữ nhật, bên trong chứa nội dung xử lý.

Xử lý công việc của lưu đồ

Xử lý công việc của lưu đồ

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.

Quá trình thực hiện của lưu đồ

Quá trình thực hiện của lưu đồ

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.

Lưu đồ biểu diễn thuật toán cộng 2 số

Lưu đồ biểu diễn thuật toán cộng 2 số

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)

Lưu đồ biểu diễn thuật toán giải phương trình bậc nhất

Lưu đồ biểu diễn thuật toán giải phương trình bậc nhất

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.

Có thể bạn muốn đọc
Clean code là gì? Tại sao phải Clean code?

Chào các bạn, trong bài viết này mình xin được chia sẻ một số kiến thức về clean code mình tổng hợp được. Hãy cùng mình tìm hiểu Clean code là gì và tại sao phải sử dụng chúng nhé.

Học Code Cơ Bản Và Một Số Lưu Ý Cho Người Mới Bắt Đầu

Coding đã bùng nổ trong những năm gần đây, bắt đầu từ thứ được sử dụng trong trò chơi máy tính và thiết bị điện tử thành thứ định hình cách chúng ta sống trong thế giới hiện đại. Điều này có nghĩa bây giờ chính là thời điểm tuyệt vời để học cách viết Code cho người mới bắt đầu. Vậy học Code cơ bản gồm những bước như thế nào? Đâu là ngôn ngữ lập trình phù hợp để bắt đầu? Hãy cùng Glints tìm hiểu một số lưu ý dành cho người mới bắt đầu thông qua bài viết dưới đây nhé!

17 kỹ năng cần thiết để trở thành một hacker

Để trở thành một hacker chuyên nghiệp bạn cần có nhiều kiến thức cả về kỹ thuật và công nghệ thông tin.

Thủ thuật tìm kiếm trên Google

Trong quá trình làm việc và giảng dạy của mình, tôi nhận thấy hầu hết các bạn đang còn thiếu một kỹ năng rất quan trọng trong thời đại thông tin số bùng nổ như hiện nay, đó chính là kỹ năng ứng dụng các thủ thuật tìm kiếm trên Google. Hiện nay Google đang chiếm khoảng ~85% lượng người dùng tìm kiếm thông tin trên toàn thế giới (*), có khoảng ~95% người dùng tìm kiếm trên Google ở Việt Nam (**). Những con số trên cho ta thấy sự bành trướng của gã khổng lồ Google, ta cũng không thể phủ nhận những tiện ích, thông tin mà Google mang lại cho chúng ta. – Nếu bạn là học sinh, sinh viên: hàng ngày bạn phải dùng Google để tìm kiếm thông tin phục vụ cho quá trình học tập của mình. – Nếu bạn là người đi làm: hàng ngày bạn dùng Google để tìm kiếm thông tin đối tác, khách hàng… – Nếu bạn là dân SEO: hàng ngày bạn dùng Google để tìm website để building link, tìm tài liệu… – Dù bạn là ai thì tôi chắc chắn bạn đã dùng Google để tìm kiếm thông tin (nhất là khi bạn đang đọc bài viết này bằng các tìm kiếm trên Google).

Khắc phục lỗi Error: MySQL shutdown unexpected làm bạn không khởi động được MySQL trên XAMPP

Error: MySQL shutdown unexpectedly. This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdown by another method. Press the Logs button to view error logs and check the Windows Event Viewer for more clues. If you need more help, copy and post this entire log window on the forums.

Cách hiển thị hiệu quả các bảng dữ liệu lớn: Tối ưu hóa hiệu suất từ 12 phút đến 300 mili giây

Chuyện là thời gian vừa rồi mình có quay trở lại làm việc với 1 dự án sử dụng CSDL dạng SQL (PostgreSQL, MySQL). Và 1 lần nữa lại dính ngay bài toán tối ưu hệ thống bằng cách tối ưu câu query. Có chủ đề để viết cho các bạn đọc rồi đây. Cũng khoảng 2-3 bài cho phần này theo những gì mình làm nhé. Nào bắt đầu thôi.