Trong 07 bài học trước mới chỉ là những bài học nhập môn lập trình C++ mà thôi. Trước khi đi vào những bài học về C++ cơ bản thì chúng ta hãy tạm dừng một chút nhé. Bài viết này mình muốn trình bày tới bạn một công cụ để hỗ trợ bạn phân tích bài toán. Đó là sử dụng lưu đồ thuật toán hay còn gọi là flowchart. Và đây cũng là một trong những bí quyết để tập rèn luyện tư duy lập trình đó bạn ạ.


Lưu đồ thuật toán (flowchart) là gì


Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, mô tả nhập (input), dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học.

Lưu ý: Công cụ này rất thích hợp để bạn học cách tư duy phân tích bài toán. Thường thì các bạn sinh viên không thích làm lưu đồ thuật toán cho lắm. Thay vào đó thì các bạn ấy thích code ngay khi nhận được yêu cầu. Nhưng bạn ạ, đó là cách học nóng vội mà thôi, sẽ có ít người thành công với cách học như vậy. Một trong những bí quyết để học lập trình tốt chính là học cách tư duy và phân tích bài toán chứ không phải học chỉ chăm chăm vào học ngôn ngữ. Do đó bạn hãy học và sử dụng công cụ này để việc lập trình trở nên dễ dàng hơn.

Các ký hiệu

Để vẽ lưu đồ thuật toán, bạn cần nhớ và tuân thủ các ký hiệu sau đây:

Flow chartXem bảng ký hiệu này chắc bạn vẫn chưa hình dung được là vẽ sơ đồ thuật toán (flowchart) như thế nào đâu phải không. Hãy cứ bình tĩnh bạn nhé, mình sẽ hướng dẫn bạn vẽ bằng những ví dụ cụ thể. Nhưng trước tiên bạn cần lưu ý phương pháp để duyệt (đọc) lưu đồ thuật toán đã nhé.

Bạn duyệt lưu đồ thuật toán theo trình tự sau:

  • Duyệt từ trên xuống.
  • Duyệt từ trái sang phải.

Ví dụ minh hoạ

Để cho bạn dễ hình dung, mình sẽ xây dựng lưu đồ thuật toán cho 02 ví dụ sau:

Ví dụ 1

Cho số nguyên n. Hãy tính giá trị tuyệt đối của n.

Bài toán trên rất đơn giản phải không nào? Dù là đơn giản, nhưng mình hãy cứ thử phân tích một xíu nhé.

  • Đầu vào: một số nguyên n.
  • Đầu ra: giá trị tuyệt đối của số nguyên n.
  • Giải thuật: Mình dùng mã giả (Pseudocode), bạn mới chưa biết mã giả thì xem bằng ngôn ngữ tự nhiên cho dễ hiểu.
    Flow chart

Bản chất của bài toán này là bạn cần kiểm tra số nguyên n có nhỏ hơn 0 hay không. Nếu nhỏ hơn 0 thì bạn nhân giá trị của n cho -1 để chuyển thành số nguyên dương. Còn nếu n lớn hơn 0 thì bạn không cần làm gì cả. Sau cùng thì bạn in giá trị của n ra, đó cũng chính là giá trị tuyệt đối mà bạn cần.

Lưu đồ thuật toán (flowchart): Từ những phân tích trên, bạn sẽ có một lưu đồ thuật toán thế này.
Flow chartCó thể lần đầu vẽ bạn sẽ hơi bỡ ngỡ, không cần vội vàng gì cả bạn nhé. Bạn hãy xem lại và đọc từng ký hiệu một theo qui tắc thử xem nhé.

Ví dụ 2

Ví dụ này mình sẽ nâng cao hơn một chút nhé.

Giải và biện luận phương trình bậc nhất: ax + b = 0

Cũng như ví dụ 1, mình cũng sẽ phân tích bài toán thử đã nhé.

  • Đầu vào: hai số nguyên ab.
  • Đầu ra: nghiệm của phương trình.
  • Giải thuật: Ở ví dụ này thì mình sẽ minh hoạ bằng mã giả (Pseudocode) thôi nhé.
    Flow chart

Phương pháp giải phương trình bậc nhất thì bạn nào cũng biết phải không nào. Do đó mình sẽ không diễn giải lại nhé, mình tin rằng bạn đã có thể đọc hiểu được mã giả ở trên.

Lưu đồ thuật toán (flowchart): Từ những phân tích trên, bạn sẽ có một lưu đồ thuật toán thế này.
Flow chart


Công cụ vẽ lưu đồ thuật toán (flowchart)


Để vẽ lưu đồ thuật toán thì bạn có thể sử dụng bất kỳ phần mềm nào có khả năng vẽ. Hoặc đơn giản hơn là dùng Word, PowerPoint cũng được. Tuy nhiên để cho dễ dàng thì mình đề nghị 02 phần mềm sau đây:

  • Microsoft Visio: đây là phần mềm hỗ trợ vẽ kỹ thuật khá đa năng của Microsoft. Bạn có thể dùng phần mềm này để vẽ các dạng sơ đồ (bao gồm cả flowchart). Nhưng lưu ý là phần mềm này chỉ hỗ trợ bạn vẽ thôi, không hỗ trợ “chạy” thử trên sơ đồ bạn nhé.
  • Crocodile Clips ICT: đây là cũng là phần mềm hỗ trợ việc vẽ sơ đồ và nhiều cái khác nữa. Điểm hay của phần mềm này là cho phép bạn “chạy” thử từng bước trên sơ đồ. Nhờ đó mà bạn sẽ nắm được cách hoạt động của sơ đồ dễ dàng hơn. Do đó mình đề xuất sử dụng phần mềm này để xây dựng sơ đồ trong quá trình học. Bạn có thể download bằng link mình cung cấp ở cuối bài viết. Ngoài ra bạn có thể xem video đính kèm để biết cách sử dụng Crocodile Clips ICT.


Tổng kết


Lưu đồ thuật toán (flowchart) là công cụ rất đắc lực trong việc phân tích và thể hiện thuật giải cho bài toán. Hy vọng rằng bài viết này sẽ cung cấp thêm cho bạn một công cụ hữu ích trong việc học lập trình. Vì vậy hãy tận dụng nó thật tốt để việc học trở nên dễ dàng hơn bạn nhé.


Download


Đây là link download phần mềm Crocodile Clips ICT 6.0.5
➤ Download link: https://www.fshare.vn/file/O8POYLQMPCBA

Khu vực Thảo luận

3
Viết bình luận

avatar
2 Comment threads
1 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
TrúcNam TrungHữu Nhân Recent comment authors
mới nhất cũ nhất
Hữu Nhân
Guest
Hữu Nhân

anh cho em hỏi Crocodile ict 605 có giải quyết được bài toán xuất câu thông báo không? VD nhập vào số nguyên a, hỏi số vừa nhập là số chẵn hay số lẻ Em chỉ biết xuất giá trị, còn xuất câu thông báo thì em chưa biết làm. Mong hồi âm của anh.
cám ơn anh

Trúc
Guest
Trúc

Bài này vẽ sơ đồ ntn ạ “Nhập số x. Hãy in 10 số liên tiếp lớn hơn x . Vd x=8 thì 10 số cần tìm là: 9 11 13 15 17 19 21 23 25 27”